I want to be moved to the same folder as the executables.
How do I do that in CMake?

At configuration time:

CONFIGURE_FILE(<path>/<to>/input.txt ${EXECUTABLE_OUTPUT_PATH} COPYONLY)

Note that the destination directory, i.e. the EXECUTABLE_OUTPUT_PATH,
possibly must already exist, and refer to the EXECUTABLE_OUTPUT_PATH
variable only after it has received its value. BTW, this variable is
obsolete, use [CMAKE_]RUNTIME_OUTPUT_DIRECTORY[_<CONFIG>] variable/
properties instead.

At build time:

ADD_CUSTOM_TARGET(input ${CMAKE_COMMAND} -E copy_if_different
     <path>/<to>/input.txt ${EXECUTABLE_OUTPUT_PATH})
ADD_DEPENDENCIES(OneOfYourExecutables input)
ADD_DEPENDENCIES(AnotherExecutable input)

or

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.
Thanks. Great feedback!

Totte
--

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

Reply via email to