简而言之:我知道如何在CMake生成的构建系统中向目标添加依赖项.但我想将依赖项添加到生成的构建系统本身.
更长的问题:在CMake生成的cgal构建过程中,我们希望CMake在修改某些文件时自动重新运行配置步骤.不需要的细节隐藏在下面:
事实上,我们使用CMake生成CGAL库/ examples/demos的构建系统,同时也为我们的Doxygen生成的文档构建系统.它
Doxyfile是由多个文件生成的.
当CMake生成器为" Makefile"时,在Makefile命名中有一个特殊目标rebuild_cache,但该目标(在Makefile级别)不是CMake目标.无论如何,我寻找一个跨平台的解决方案,即:可用于所有CMake生成器.我的印象是我想要的东西还不能用于CMake.您能否确认一下,以便我可以填写有记录的功能请求?
从CMake 3.0开始,您可以将这样的文件添加到directory属性中CMAKE_CONFIGURE_DEPENDS.该属性包含文件列表; 如果其中任何一个发生变化,CMake将触发重新配置.
这是一个小例子.假设你Doxyfile是从产生Doxyfile.in.1,并Doxyfile.in.2在电流源目录,该属性可以使用这样的:
set_property(
DIRECTORY
APPEND
PROPERTY CMAKE_CONFIGURE_DEPENDS
Doxyfile.in.1
Doxyfile.in.2
)
Run Code Online (Sandbox Code Playgroud)
如果您使用的是CMake 2.x,则该属性CMAKE_CONFIGURE_DEPENDS不可用,但您可以使用以下技巧:
传递文件configure_file(),即使您只是COPYONLY在某处并且不使用生成的副本.configure_file()准确介绍您正在寻找的构建系统依赖项.
这有效,但它增加了复制文件的开销.
(注意:这个技巧也是这个答案的原始内容,因为我CMAKE_CONFIGURE_DEPENDS在回答的时候并不知道).
| 归档时间: |
|
| 查看次数: |
564 次 |
| 最近记录: |