mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-23 23:18:38 -06:00
Extend the documentation added by commit 96a7040107 (project: Define
variables indicating whether project is top level, 2021-03-24,
v3.21.0-rc1~443^2) to give some examples of how the variables are set in
each context.
32 lines
875 B
ReStructuredText
32 lines
875 B
ReStructuredText
PROJECT_IS_TOP_LEVEL
|
|
--------------------
|
|
|
|
.. versionadded:: 3.21
|
|
|
|
A boolean variable indicating whether :command:`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 :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`
|