mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-06 13:51:33 -06:00
project: Define variables indicating whether project is top level
Define `PROJECT_IS_TOP_LEVEL` and `<PROJECT-NAME>_IS_TOP_LEVEL`. The latter is a STATIC cache entry just like other `<PROJECT-NAME>_*` variables so that it is globally scoped. Issue: #20310 Fixes: #21961
This commit is contained in:
21
Help/variable/PROJECT_IS_TOP_LEVEL.rst
Normal file
21
Help/variable/PROJECT_IS_TOP_LEVEL.rst
Normal file
@@ -0,0 +1,21 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user