diff options
author | Robert Maynard <rmaynard@nvidia.com> | 2024-08-27 15:59:46 (GMT) |
---|---|---|
committer | Robert Maynard <rmaynard@nvidia.com> | 2024-08-27 16:37:07 (GMT) |
commit | c1ece78d113d39cdfb3c875d726e296c15abe4a8 (patch) | |
tree | 8b983201b5ec195cec84b8e6bc149ca2933e38d1 | |
parent | 0e217de3437699cb1133a04fb1670489378e22dd (diff) | |
download | CMake-c1ece78d113d39cdfb3c875d726e296c15abe4a8.zip CMake-c1ece78d113d39cdfb3c875d726e296c15abe4a8.tar.gz CMake-c1ece78d113d39cdfb3c875d726e296c15abe4a8.tar.bz2 |
project: non cache <project> prefix variables are also created
Fixes #26243, #25714
-rw-r--r-- | Source/cmProjectCommand.cxx | 7 | ||||
-rw-r--r-- | Tests/RunCMake/project/ProjectCMP0126.cmake | 11 | ||||
-rw-r--r-- | Tests/RunCMake/project/RunCMakeTest.cmake | 1 |
3 files changed, 19 insertions, 0 deletions
diff --git a/Source/cmProjectCommand.cxx b/Source/cmProjectCommand.cxx index 53166c1..13070dd 100644 --- a/Source/cmProjectCommand.cxx +++ b/Source/cmProjectCommand.cxx @@ -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 diff --git a/Tests/RunCMake/project/ProjectCMP0126.cmake b/Tests/RunCMake/project/ProjectCMP0126.cmake new file mode 100644 index 0000000..65e3982 --- /dev/null +++ b/Tests/RunCMake/project/ProjectCMP0126.cmake @@ -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() diff --git a/Tests/RunCMake/project/RunCMakeTest.cmake b/Tests/RunCMake/project/RunCMakeTest.cmake index 16f10be..9c49281 100644 --- a/Tests/RunCMake/project/RunCMakeTest.cmake +++ b/Tests/RunCMake/project/RunCMakeTest.cmake @@ -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) |