PROJECT_IS_TOP_LEVEL

在版本 3.21 中添加。

布尔变量指示当前作用域或更高版本中最近调用的 project() 命令是否是顶级 CMakeLists.txt 文件。

某些模块只应作为顶级 CMakeLists.txt 文件的一部分进行包含,以避免在构建树中造成意外的副作用,此变量可用于有条件地执行此类代码。例如,考虑 CTest 模块,它可创建目标和选项

project(MyProject)
...
if(PROJECT_IS_TOP_LEVEL)
  include(CTest)
endif()

此变量值将在下列位置变为 true

此变量值将在下列位置变为 false