【问题标题】:CMake Configure File Build RuleCMake 配置文件构建规则
【发布时间】:2011-04-01 23:16:23
【问题描述】:

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

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

它还将始终重新配置文件,即使它正在覆盖的文件较新。我希望它像自定义目标一样。

我认为我可以使用 add_custom_command 执行此操作,但我认为我不能从 add_custom_command 运行 CMake 命令。那么有没有办法复制 configure_file 在 CMake 中的行为呢?

【问题讨论】:

    标签: cmake


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      1. 要在输入更改时触发 cmake 重新运行,您可以使输入文件依赖于 CMakeLists.txt

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-05-26
        • 1970-01-01
        • 1970-01-01
        • 2020-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多