PROJECT_IS_TOP_LEVELΒΆ

New in version 3.21.

A boolean variable indicating whether the most recently called project() command in the current scope or above was in the top level CMakeLists.txt file.

Some modules should only be included as part of the top level CMakeLists.txt file to not cause unintended side effects in the build tree, and this variable can be used to conditionally execute such code. For example, consider the CTest module, which creates targets and options:

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

The variable value will be true in:

  • the top-level directory of the project

  • the top-level directory of an external project added by ExternalProject

The variable value will be false in: