PROJECT_IS_TOP_LEVEL
New in version 3.21.
A boolean variable indicating whether project()
was called in a 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:
- a directory added by
add_subdirectory()
- a directory added by
FetchContent
© 2000–2021 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.21/variable/PROJECT_IS_TOP_LEVEL.html