Merge topic 'project_ensure_non_cache_variables' into release-3.30

c1ece78d11 project: non cache <project> prefix variables are also created

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Merge-request: !9779
This commit is contained in:
Brad King 2024-08-29 12:26:20 +00:00 committed by Kitware Robot
commit 90db124cdf
3 changed files with 19 additions and 0 deletions

View File

@ -59,9 +59,14 @@ bool cmProjectCommand(std::vector<std::string> const& args,
mf.AddCacheDefinition(projectName + "_BINARY_DIR",
mf.GetCurrentBinaryDirectory(),
"Value Computed by CMake", cmStateEnums::STATIC);
mf.AddDefinition(projectName + "_BINARY_DIR",
mf.GetCurrentBinaryDirectory());
mf.AddCacheDefinition(projectName + "_SOURCE_DIR",
mf.GetCurrentSourceDirectory(),
"Value Computed by CMake", cmStateEnums::STATIC);
mf.AddDefinition(projectName + "_SOURCE_DIR",
mf.GetCurrentSourceDirectory());
mf.AddDefinition("PROJECT_BINARY_DIR", mf.GetCurrentBinaryDirectory());
mf.AddDefinition("PROJECT_SOURCE_DIR", mf.GetCurrentSourceDirectory());
@ -72,6 +77,8 @@ bool cmProjectCommand(std::vector<std::string> const& args,
mf.AddCacheDefinition(projectName + "_IS_TOP_LEVEL",
mf.IsRootMakefile() ? "ON" : "OFF",
"Value Computed by CMake", cmStateEnums::STATIC);
mf.AddDefinition(projectName + "_IS_TOP_LEVEL",
mf.IsRootMakefile() ? "ON" : "OFF");
// Set the CMAKE_PROJECT_NAME variable to be the highest-level
// project name in the tree. If there are two project commands

View File

@ -0,0 +1,11 @@
cmake_policy(SET CMP0126 NEW)
set(example_SOURCE_DIR "bad/path")
set(example_BINARY_DIR "bad/path")
project(example LANGUAGES)
if(NOT "${example_SOURCE_DIR}" STREQUAL "${PROJECT_SOURCE_DIR}")
message(FATAL_ERROR "example_SOURCE_DIR not set to expected value")
endif()
if(NOT "${example_BINARY_DIR}" STREQUAL "${PROJECT_BINARY_DIR}")
message(FATAL_ERROR "example_BINARY_DIR not set to expected value")
endif()

View File

@ -33,6 +33,7 @@ run_cmake(LanguagesUnordered)
if(RunCMake_GENERATOR MATCHES "Make|Ninja")
run_cmake(LanguagesUsedButNotEnabled)
endif()
run_cmake(ProjectCMP0126)
run_cmake(ProjectDescription)
run_cmake(ProjectDescription2)
run_cmake(ProjectDescriptionNoArg)