فهرست منبع

project: Do not issue CMP0048 warnings on injected call

Fixes: #18202
Brad King 7 سال پیش
والد
کامیت
6646771b0f
3فایلهای تغییر یافته به همراه9 افزوده شده و 14 حذف شده
  1. 2 0
      Source/cmMakefile.cxx
  2. 7 2
      Source/cmProjectCommand.cxx
  3. 0 12
      Tests/RunCMake/project_injected/CMP0048-WARN-stderr.txt

+ 2 - 0
Source/cmMakefile.cxx

@@ -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);
     }
   }

+ 7 - 2
Source/cmProjectCommand.cxx

@@ -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, "");
         }

+ 0 - 12
Tests/RunCMake/project_injected/CMP0048-WARN-stderr.txt

@@ -1,12 +0,0 @@
-^CMake Warning \(dev\) in CMakeLists.txt:
-  Policy CMP0048 is not set: project\(\) command manages VERSION variables.
-  Run "cmake --help-policy CMP0048" for policy details.  Use the cmake_policy
-  command to set the policy and suppress this warning.
-
-  The following variable\(s\) would be set to empty:
-
-    CMAKE_PROJECT_VERSION
-    CMAKE_PROJECT_VERSION_MAJOR
-    CMAKE_PROJECT_VERSION_MINOR
-    CMAKE_PROJECT_VERSION_PATCH
-This warning is for project developers.  Use -Wno-dev to suppress it.$