Help/variable/PROJECT_IS_TOP_LEVEL.rst
.. versionadded:: 3.21
A boolean variable indicating whether the most recently called
:command: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 :module:CTest module, which creates targets and
options:
.. code-block:: cmake
project(MyProject) ... if(PROJECT_IS_TOP_LEVEL) include(CTest) endif()
The variable value will be true in:
ExternalProjectadd_subdirectory that does not also contain
a :command:project callFetchContent_MakeAvailable,
if the fetched content does not contain a :command:project callThe variable value will be false in:
add_subdirectory that also contains
a :command:project callFetchContent_MakeAvailable,
if the fetched content contains a :command:project call