Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cmake 如何将文件(读取…)添加为配置_文件(…)的依赖项?_Cmake - Fatal编程技术网

Cmake 如何将文件(读取…)添加为配置_文件(…)的依赖项?

Cmake 如何将文件(读取…)添加为配置_文件(…)的依赖项?,cmake,Cmake,我在CMakeLists.txt中有类似以下的代码片段: file(READ api.yaml API_YAML) configure_file(schemautil.h.in schemautil.h) 变量${API_YAML}用于schemautil.h.in 当我开始构建时,当我更改api.yaml时,配置的文件schemautil.h不会重新生成 如何更新api.yaml触发configure\u文件行 另外,如果有更好的方法来完成我在这里所做的工作——即在编译时将api.yaml填

我在CMakeLists.txt中有类似以下的代码片段:

file(READ api.yaml API_YAML)
configure_file(schemautil.h.in schemautil.h)
变量
${API_YAML}
用于
schemautil.h.in

当我开始构建时,当我更改
api.yaml
时,配置的文件
schemautil.h
不会重新生成

如何更新
api.yaml
触发
configure\u文件


另外,如果有更好的方法来完成我在这里所做的工作——即在编译时将
api.yaml
填充到源代码中,我很感兴趣。

您可以通过添加

set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS api.yaml)

请参阅CMake文档中的。

除了答案中发布的解决方案,您还可以将此代码移动到CMake脚本文件中,并使用
add_custom_命令
执行该脚本,该脚本允许您指定依赖项和输出。这对于需要一些时间(重新)配置的项目可能会更好。。。