我在源文件旁边的 config
目录中有一些配置文件(xml、ini、...)。每次制作工程时,如何将config目录下的所有文件复制到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>)
这会在您每次构建 MyTarget
时执行并将“/config”的内容复制到目标 exe/lib 将结束的目录中。
作为Mark Lakata在下面的评论中指出,替换 PRE_BUILD
与 POST_BUILD
在add_custom_command
确保只有在构建成功时才会发生复制。
说明
-
${CMAKE_COMMAND}
是CMake的路径 -
-E
让 CMake 运行命令而不是构建 -
copy_directory
是 Command-Line Tool -
config
是目录(位于项目的根目录下),其内容将被复制到构建目标中 -
$<TARGET_FILE_DIR:MyTarget>
是一个生成器表达式,在add_custom_command
中描述文档。
关于c++ - 使用CMake制作后如何将目录内容复制到构建目录中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33779442/