diff options
author | friendlyanon <friendlyanon_@hotmail.com> | 2021-03-24 19:59:14 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2021-03-26 13:35:34 (GMT) |
commit | 96a704010713833e9ec17fa78495df3e0852bbf5 (patch) | |
tree | 81dcf4a132a5461584c773a2ad34532f5977a3b0 /Source/cmProjectCommand.cxx | |
parent | 3706e9c97cef2ad8097adfd4ed2f04ff08398787 (diff) | |
download | CMake-96a704010713833e9ec17fa78495df3e0852bbf5.zip CMake-96a704010713833e9ec17fa78495df3e0852bbf5.tar.gz CMake-96a704010713833e9ec17fa78495df3e0852bbf5.tar.bz2 |
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
Diffstat (limited to 'Source/cmProjectCommand.cxx')
-rw-r--r-- | Source/cmProjectCommand.cxx | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/Source/cmProjectCommand.cxx b/Source/cmProjectCommand.cxx index ed32de9..acdb09f 100644 --- a/Source/cmProjectCommand.cxx +++ b/Source/cmProjectCommand.cxx @@ -59,6 +59,11 @@ bool cmProjectCommand(std::vector<std::string> const& args, mf.AddDefinition("PROJECT_NAME", projectName); + mf.AddDefinitionBool("PROJECT_IS_TOP_LEVEL", mf.IsRootMakefile()); + mf.AddCacheDefinition(projectName + "_IS_TOP_LEVEL", + mf.IsRootMakefile() ? "ON" : "OFF", + "Value Computed by CMake", cmStateEnums::STATIC); + // Set the CMAKE_PROJECT_NAME variable to be the highest-level // project name in the tree. If there are two project commands // in the same CMakeLists.txt file, and it is the top level |