CMake缓存变量与全局属性:使用变量值的简单语法



要使值在子目录中可用于整个CMake环境,可以使用set(VARIABLE_NAME Value CACHE INTERNAL "")语法设置缓存变量,或者使用set_property(GLOBAL PROPERTY VARIABLE_NAME Value)语法设置全局属性(另请参阅关于CMake中变量的这个非常好的答案)。

使用后者的优点是,您不会因为CMake缓存不是为其设计的而"污染"它,并且在不使用FORCE参数时,您不依赖于要删除的缓存。

但是,使用变量值的语法并不那么用户友好,因为您必须使用get_property而不是简单地使用${...}表示法来检索值。

有没有一种更简单的语法可以代替get_property(某种语法糖)?

让我们总结一下这些评论。

对于我的实际问题:使用get_property没有特定的快捷方式。

有用的评论:

  • 正如CACHE INTERNAL所暗示的FORCE,使用缓存的变量使变量全局可访问是可以的
  • 启动CMake文件时,最好显式清除/设置内部缓存变量,以避免重复运行时出现不可预测的行为

相关内容

  • 没有找到相关文章

最新更新