cmake:如何制作脚本来复制我程序附带的数据文件

And*_*asT 8 build-automation visual-studio-2005 cmake

我正在尝试使用cmake自动化我的构建过程.目前只有一个问题:

在cmake的哲学中(如果有的话),放在复制数据文件的最佳位置.

我有一个图书馆和一些例子.这些例子需要数据.

我目前正在做以下事情:

我在每个示例的CMakeLists.txt中使用自定义命令将所有数据复制到 CMAKE_CURRENT_BINARY_DIR后构建步骤中.我在调试工作流程中使用它,因此尚未执行安装目标.

这很有效,但有一些缺点:

  1. 每次构建项目时都会进行复制.对于VS 2005,即使不是新建的,有时也会出现这种情况.由于数据文件夹很大,复制需要时间,而且有点烦人.
  2. 我确信这是一种非常笨拙的方式.

我想将这些目录复制到可执行路径,所以我不需要提示如何设置调试工作目录

复制这些目录的最佳时间是cmake配置/生成时间,至少我是这么认为的.我应该这样做,我该怎么做?

ric*_*chq 12

正如最近在此问题中看到的,您可以使用configure_file将文件复制到构建目录:

configure_file(${CMAKE_CURRENT_SOURCE_DIR}/input.txt
    ${CMAKE_CURRENT_BINARY_DIR}/output.txt COPYONLY)
Run Code Online (Sandbox Code Playgroud)

这只在构建时执行一次,并且仅在需要时执行.

  • 谢谢!我很惊讶这个问题答案很少.CMake现在被广泛使用,但仍然记录不完整.很少有人真的很喜欢cmake. (2认同)
  • `cmake --help-full`FTW!:-) (2认同)