CMake配置文件构建规则

时间:2010-08-21 04:38:50

标签: cmake

我正在使用CMake构建系统,在项目中,我们将有一堆配置文件。其中一些只需要复制,有些需要在每台计算机上进行修改。我目前正在使用CMake的“configure_file”命令来复制/替换部分文件。这很好用,我喜欢在配置例程中如何使用CMake中的任何变量。

但是如果您更改原始文件,CMake将不会选择此文件,您必须重新运行cmake才能配置目录。当我运行“make”时,我希望它接收我已经更改了文件并重新运行configure。

它也将始终重新配置文件,即使它覆盖的文件更新。我希望它像一个自定义目标。

我想我可以使用add_custom_command执行此操作,但我认为我不能从add_custom_command运行CMake命令。那么无论如何都要复制configure_file在CMake中的行为吗?

2 个答案:

答案 0 :(得分:1)

我最近升级到了CMake 2.8。它似乎自动具有我想要的确切行为。

答案 1 :(得分:0)

我认为这不是一个简单的答案。我看到两个选择:

  1. 如果输入发生变化,要触发重新运行cmake,您可以使输入文件取决于CMakeLists.txt

  2. 要在cmake的一部分中运行add_custom_command命令,会有变量${CMAKE_COMMAND},它会为您提供正在运行的cmake的路径。作为配置步骤的一部分,您可以生成使用configure_file选项调用的CMake代码片段(调用-P)。使用-D在命令行上传递替换,或将它们写入CMake片段。