要使值从子目录中可用于整个CMake环境,可以使用set(VARIABLE_NAME Value CACHE INTERNAL "")
语法设置缓存变量或使用语法设置全局属性set_property(GLOBAL PROPERTY VARIABLE_NAME Value)
(另请参阅关于CMake中变量的非常好的答案).
使用后者的优点是,您不会为CMake缓存"污染"它未设计的内容,并且在不使用FORCE
参数时您不依赖于被删除的缓存.
但是使用变量值的语法不是用户友好的,因为您必须使用get_property
而不是简单地使用${...}
表示法来检索值.
是否有更简单的语法来代替get_property
(某种语法糖)?