PROJECT_IS_TOP_LEVEL¶
在版本 3.21 中添加。
布尔变量指示当前作用域或更高版本中最近调用的 project()
命令是否是顶级 CMakeLists.txt
文件。
某些模块只应作为顶级 CMakeLists.txt
文件的一部分进行包含,以避免在构建树中造成意外的副作用,此变量可用于有条件地执行此类代码。例如,考虑 CTest
模块,它可创建目标和选项
project(MyProject)
...
if(PROJECT_IS_TOP_LEVEL)
include(CTest)
endif()
此变量值将在下列位置变为 true
项目的顶级目录
由
ExternalProject
添加的外部项目的顶级目录由
add_subdirectory()
添加但未包含project()
调用的目录如果获取的内容不包含
project()
调用,则由FetchContent_MakeAvailable()
添加的目录
此变量值将在下列位置变为 false
由
add_subdirectory()
添加但包含project()
调用的目录如果获取的内容包含
project()
调用,则由FetchContent_MakeAvailable()
添加的目录