CMake:make后如何将目录的内容复制到build目录下
我在源文件旁边的“config”目录中有一些configuration文件(xml,ini,…)。 每次我创build项目时,如何将configuration目录中的所有文件复制到构build目录(可执行文件旁边)?
你可以使用add_custom_command
。
假设你的目标被称为MyTarget
,你可以这样做:
add_custom_command(TARGET MyTarget PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/config $<TARGET_FILE_DIR:MyTarget>)
这会在您每次构buildMyTarget
时执行,并将“/ config”的内容复制到目标exe / lib将最终结束的目录中。
正如Mark Lakata在下面的评论中指出的那样,在PRE_BUILD
中用POST_BUILD
replaceadd_custom_command
确保只有在构build成功时才会进行复制。
CMake支持一个shelltypes的文件副本。 这个链接应该对你有帮助 – 如何将目录从源码树复制到二叉树?
在我的项目中,我使用INSTALL在CMake中指定了什么和在哪里移动我的二进制文件的conf文件。 执行cmake后,使用“make install”。