On 12/12/2011 04:29 PM, Totte Karlsson wrote:
>>
>> At build time:
>>
>
>> ADD_CUSTOM_COMMAND(TARGET OneOfYourExecutables
>> COMMAND ${CMAKE_COMMAND} -E copy_if_different
>> <path>/<to>/input.txt $<TARGET_FILE_DIR:OneOfYourExecutables>)
>> ADD_CUSTOM_COMMAND(TARGET AnotherExecutable
>> COMMAND ${CMAKE_COMMAND} -E copy_if_different
>> <path>/<to>/input.txt $<TARGET_FILE_DIR:AnotherExecutable>)
>>
>> Personally, I'd prefer the latter as it's clean and quite flexible.
>
> I decided to use
> ADD_CUSTOM_COMMAND(
> TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E
> copy_if_different
> "P:/mtkLib/Examples/${PROJECT_NAME}/ball.mtk"
> $<TARGET_FILE_DIR:${PROJECT_NAME}>
> )
>
> It works fine. But I have a few more questions:
> 1) How can I get rid of the absolute path in the expression for the
> source file?
Use the ${PROJECT_SOURCE_DIR} variable. It points to the directory
containing the CMakeLists.txt file with the last project() call.
> 2) when doing make clean, the file in the target file dir is not
> deleted. How to add it to 'clean'?
See the ADDITIONAL_MAKE_CLEAN_FILES directory property. However, this is
going to be somewhat tricky since you are using $<TARGET_FILE_DIR:...>
in your custom command, and AFAIK the set_directory_property command is
not aware of this notation. Do you really need ball.mtk to be in the
same directory as your output file?
Michael
--
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake