[CMake] How to copy dependent files
Tron Thomas
tron.thomas at verizon.net
Sat Dec 13 13:31:45 EST 2008
I have tried a different approach that has been more successful:
add_custom_target(CopyXML ${CMAKE_COMMAND} -E copy_directory
${CMAKE_CURRENT_SOURCE_DIR}/XML ${EXECUTABLE_OUTPUT_PATH}
add_dependencies(UnitTest CopyXML)
This will always copy the files whether they need to be updated or
not, however I cannot think of anything else that will cause the file
to get copied.
Another problem is that when I build this target from an IDE like
Apple's Xcode, the file are copied to ${EXECUTABLE_OUTPUT_PATH},
however the built executable is copied to ${EXECUTABLE_OUTPUT_PATH}/
Debug when building the debug version the application.
How can I get the copied files and built executable to appear in the
same directory.
On Dec 11, 2008, at 8:44 o'clock, Tron Thomas wrote:
> I have a project configured with CMake that needs to have set of
> XML files copied to the directory where executables are built so
> that a unit test that relies on these files can execute.
>
> I tried to create a custom command that should copy the files and
> tried to set that command up as dependency of the unit test
> application. However when the application builds the files are not
> copied to the needed directory.
>
> Here is the gist of how I tried to perform the copy:
>
> file(GLOB SourceXMLFiles RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/XML
> XML/*.xml)
>
> foreach(File ${SourceXMLFiles})
> set(XMLFiles "${XMLFiles} ${EXECUTABLE_OUTPUT_PATH}/${File}")
> endforeach(File)
>
> add_custom_command(OUTPUT ${XMLFiles}
> COMMAND ${CMAKE_COMMAND} ARGS -E copy_directory
> ${CMAKE_CURRENT_SOURCE_DIR}/XML ${EXECUTABLE_OUTPUT_PATH}
> DEPENDS ${SourceXMLFiles})
>
> add_dependencies(UnitTest ${XMLFiles})
>
> What can be done to copy the needed files to the unit test directory?
>
More information about the CMake
mailing list