PROJECT_IS_TOP_LEVEL

在 3.21 版本加入.

一个布尔变量,指示在当前范围或更高范围内最近调用的 project() 命令是否在顶级 CMakeLists.txt 文件中。

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

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

变量值将在以下情况下为真:

变量值在以下情况下将为假: