我已经使用CMake
在add_subdirectory
中添加了一个子目录。如何在不通过将set
与PARENT_SCOPE
结合使用来显式设置变量的情况下,从该子目录的范围访问变量?
set(BOX2D_BUILD_STATIC 1)
set(BOX2D_BUILD_EXAMPLES 0)
set(BOX2D_INSTALL_BY_DEFAULT 0)
add_subdirectory(Box2D_v2.2.1)
message(STATUS "Using Box2D version ${BOX2D_VERSION}")
# how to get ${BOX2D_VERSION} variable without modifying CMakeLists.txt in Box2D_v2.2.1?
这可能吗?
最佳答案
如果变量是普通变量(而不是高速缓存变量),则无法从父作用域访问它。
可以访问高速缓存变量(使用set(... CACHE ...)
设置的变量),而不必考虑范围,全局属性(set_property(GLOBAL ...)
)也可以访问。
关于cmake - CMake:如何从子目录访问变量,而无需在父作用域中显式设置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15517221/