+-
c – 如何在使用CMake后将目录内容复制到构建目录中?
我在源文件旁边的config目录中有一些配置文件(xml,ini,…).如何在每次创建项目时将config目录中的所有文件复制到构建目录(可执行文件旁边)?
最佳答案
你可以使用 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在下面的评论中指出的那样,在add_custom_command中用POST_BUILD替换PRE_BUILD可确保只有在构建成功时才会进行复制.

说明

> ${CMAKE_COMMAND}是CMake的路径
> -E使CMake运行命令而不是构建
> copy_directory是Command-Line Tool
> config是目录(属于项目的根目录),其内容将被复制到构建目标中
> $< TARGET_FILE_DIR:MyTarget>是add_custom_command文档中描述的生成器表达式.

点击查看更多相关文章

转载注明原文:c – 如何在使用CMake后将目录内容复制到构建目录中? - 乐贴网