如何进行CMake重新配置取决于自定义文件?

Net*_*rix 8 code-generation cmake

我在CMake下有一个项目,其中一些文件是从XML文件生成的python生成器.我无法在CMakeLists.txt中指定此生成器生成的所有文件,因此我使用文件globbing.

问题是当我更新我的XML文件或生成器源(它们在同一个存储库中)时,我希望重新配置我的构建系统,以便在重建代码时考虑更改的文件(例如通过make).

是否有可能使CMake处理一些文件,比如它处理CMakeLists.txt文件并使它在更改这些文件时重新生成构建系统?

roo*_*ebo 16

它不需要任何类型的解决方法.标准方法是使用CMAKE_CONFIGURE_DEPENDS属性:

set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS <filename>)
Run Code Online (Sandbox Code Playgroud)


Rei*_*ica 2

是的,您应该能够通过 (ab)using 来做到这一点configure_file()。配置文件会使源成为 CMake 运行的依赖项,因此其中的任何更改都会导致重新配置。简单地像这样:

configure_file(MyInputFile.xml DummyOutput.xml)
Run Code Online (Sandbox Code Playgroud)