在CMake中如何在配置时创建所需的文件?

时间:2017-10-16 15:36:34

标签: cmake code-generation configure

编辑:我的问题针对的是早期配置阶段,其中CMake输入文件仍在被解析,因此必须在调用include()之前出现。所以答案在这里找到:Force CMake to generate configure_file target every build not 解决了我的问题,因为它在 include()语句被解释后生成文件

我有CMakeLists.txt 包含 configure 阶段生成的文件:

execute_process(COMMAND "my-generator -o generated.cmake")
include(generated.cmake)

除了这种方法感觉不对(不说优雅)之外,我现在需要在每次构建之前重新生成该文件 my-generator生成包含的输出当前时间)。

我的假设是我无法使用add_custom_command()add_custom_target(),因为该文件将在编译时生成,但在配置步骤中需要。

This非常古老的帖子向touch建议输入文件,所以我这样做了:

execute_process(
    COMMAND "my-generator -o generated.cmake"
    COMMAND cmake -E touch "${CMAKE_CURRENT_LIST_FILE}")

..这不会产生错误,但多次调用make将不会多次运行配置步骤。

我做错了什么?有更好的方法吗?

0 个答案:

没有答案