You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
933 B
33 lines
933 B
3 years ago
|
PROJECT_IS_TOP_LEVEL
|
||
|
--------------------
|
||
|
|
||
|
.. 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:
|
||
|
|
||
|
* the top-level directory of the project
|
||
|
* the top-level directory of an external project added by :module:`ExternalProject`
|
||
|
|
||
|
The variable value will be false in:
|
||
|
|
||
|
* a directory added by :command:`add_subdirectory`
|
||
|
* a directory added by :module:`FetchContent`
|