Commit 50412988 authored by Craig Scott's avatar Craig Scott
Browse files

Merge branch 'project-injected-no-cmp0048' into release-3.12

parents b5061e02 6646771b
......@@ -1511,6 +1511,8 @@ void cmMakefile::Configure()
project.Name.Lower = "project";
project.Arguments.emplace_back("Project", cmListFileArgument::Unquoted,
0);
project.Arguments.emplace_back("__CMAKE_INJECTED_PROJECT_COMMAND__",
cmListFileArgument::Unquoted, 0);
listFile.Functions.insert(listFile.Functions.begin(), project);
}
}
......
......@@ -69,6 +69,7 @@ bool cmProjectCommand::InitialPass(std::vector<std::string> const& args,
bool haveLanguages = false;
bool haveDescription = false;
bool haveHomepage = false;
bool injectedProjectCommand = false;
std::string version;
std::string description;
std::string homepage;
......@@ -160,6 +161,8 @@ bool cmProjectCommand::InitialPass(std::vector<std::string> const& args,
"by a value that expanded to nothing.");
resetReporter();
};
} else if (i == 1 && args[i] == "__CMAKE_INJECTED_PROJECT_COMMAND__") {
injectedProjectCommand = true;
} else if (doing == DoingVersion) {
doing = DoingLanguages;
version = args[i];
......@@ -280,8 +283,10 @@ bool cmProjectCommand::InitialPass(std::vector<std::string> const& args,
const char* v = this->Makefile->GetDefinition(i);
if (v && *v) {
if (cmp0048 == cmPolicies::WARN) {
vw += "\n ";
vw += i;
if (!injectedProjectCommand) {
vw += "\n ";
vw += i;
}
} else {
this->Makefile->AddDefinition(i, "");
}
......
......@@ -240,6 +240,7 @@ add_RunCMake_test(include_guard)
add_RunCMake_test(list)
add_RunCMake_test(message)
add_RunCMake_test(project -DCMake_TEST_RESOURCES=${CMake_TEST_RESOURCES})
add_RunCMake_test(project_injected)
add_RunCMake_test(return)
add_RunCMake_test(separate_arguments)
add_RunCMake_test(set_property)
......
cmake_minimum_required(VERSION 2.8.12.2) # old enough to not set CMP0048
# no project(${RunCMake_TEST} NONE)
include(${RunCMake_TEST}.cmake)
include(RunCMake)
set(RunCMake_TEST_OPTIONS
# Simulate a previous CMake run that used `project(... VERSION ...)`
# in a non-injected call site.
-DCMAKE_PROJECT_VERSION:STATIC=1.2.3
-DCMAKE_PROJECT_VERSION_MAJOR:STATIC=1
-DCMAKE_PROJECT_VERSION_MINOR:STATIC=2
-DCMAKE_PROJECT_VERSION_PATCH:STATIC=3
)
run_cmake(CMP0048-WARN)
unset(RunCMake_TEST_OPTIONS)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment