gpt4 book ai didi

c++ - 使用CMake制作后如何将目录内容复制到构建目录中?

转载 作者:太空宇宙 更新时间:2023-11-04 04:33:13 24 4
gpt4 key购买 nike

我在源文件旁边的 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_BUILDPOST_BUILDadd_custom_command确保只有在构建成功时才会发生复制。

说明

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

关于c++ - 使用CMake制作后如何将目录内容复制到构建目录中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33779442/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com