8

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

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

我有一个图书馆和一些例子。示例需要数据。

我目前执行以下操作:

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

这工作得很好,但有一些缺点:

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

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

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

4

1 回答 1

12

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

configure_file(${CMAKE_CURRENT_SOURCE_DIR}/input.txt
    ${CMAKE_CURRENT_BINARY_DIR}/output.txt COPYONLY)

这会在构建时执行一次,并且仅在需要时执行。

于 2009-10-21T14:07:43.297 回答