听起来你想要类似于此的东西:
add_custom_command(OUTPUT B
COMMAND ${CMAKE_COMMAND} -Dinput=A -P script_that_generates_B.cmake
DEPENDS A
)
Run Code Online (Sandbox Code Playgroud)
其中"B"是输出文件的完整路径,"A"是某个输入文件的完整路径,并且该命令是在构建时运行以在A发生更改时生成B.
为了使生成B的规则在构建时执行,其他东西也必须依赖于B. 它应该作为add_custom_target的DEPENDS出现在"all"中,或者作为add_library或add_executable命令的源文件来触发命令运行.
编辑:
你也可以使用
if(file1 IS_NEWER_THAN file2)
Run Code Online (Sandbox Code Playgroud)
如有必要,在CMake配置时构造.IF命令的文档相当冗长,但在此页面上搜索IS_NEWER_THAN会产生这个块:
"如果file1比file2更新,或者如果两个文件中的一个不存在,则为True.行为仅针对完整路径定义良好."
归档时间: |
|
查看次数: |
1722 次 |
最近记录: |