Преглед на файлове

Merge topic 'fix_policy_diagnostics'

77b581c2 Policies: omit warnings about unset policies when they are actually set to NEW
Brad King преди 11 години
родител
ревизия
f70b2253f6

+ 3 - 3
Source/cmAddCustomTargetCommand.cxx

@@ -165,10 +165,13 @@ bool cmAddCustomTargetCommand
   if (!nameOk)
     {
     cmake::MessageType messageType = cmake::AUTHOR_WARNING;
+    cmOStringStream e;
     bool issueMessage = false;
     switch(this->Makefile->GetPolicyStatus(cmPolicies::CMP0037))
       {
       case cmPolicies::WARN:
+        e << (this->Makefile->GetPolicies()
+          ->GetPolicyWarning(cmPolicies::CMP0037)) << "\n";
         issueMessage = true;
       case cmPolicies::OLD:
         break;
@@ -180,9 +183,6 @@ bool cmAddCustomTargetCommand
       }
     if (issueMessage)
       {
-      cmOStringStream e;
-      e << (this->Makefile->GetPolicies()
-           ->GetPolicyWarning(cmPolicies::CMP0037)) << "\n";
       e << "The target name \"" << targetName <<
           "\" is reserved or not valid for certain "
           "CMake features, such as generator expressions, and may result "

+ 3 - 3
Source/cmAddExecutableCommand.cxx

@@ -79,10 +79,13 @@ bool cmAddExecutableCommand
   if (!nameOk)
     {
     cmake::MessageType messageType = cmake::AUTHOR_WARNING;
+    cmOStringStream e;
     bool issueMessage = false;
     switch(this->Makefile->GetPolicyStatus(cmPolicies::CMP0037))
       {
       case cmPolicies::WARN:
+        e << (this->Makefile->GetPolicies()
+          ->GetPolicyWarning(cmPolicies::CMP0037)) << "\n";
         issueMessage = true;
       case cmPolicies::OLD:
         break;
@@ -94,9 +97,6 @@ bool cmAddExecutableCommand
       }
     if (issueMessage)
       {
-      cmOStringStream e;
-      e << (this->Makefile->GetPolicies()
-            ->GetPolicyWarning(cmPolicies::CMP0037)) << "\n";
       e << "The target name \"" << exename <<
           "\" is reserved or not valid for certain "
           "CMake features, such as generator expressions, and may result "

+ 7 - 4
Source/cmAddLibraryCommand.cxx

@@ -214,11 +214,17 @@ bool cmAddLibraryCommand
   if (!nameOk)
     {
     cmake::MessageType messageType = cmake::AUTHOR_WARNING;
+    cmOStringStream e;
     bool issueMessage = false;
     switch(this->Makefile->GetPolicyStatus(cmPolicies::CMP0037))
       {
       case cmPolicies::WARN:
-        issueMessage = type != cmTarget::INTERFACE_LIBRARY;
+        if(type != cmTarget::INTERFACE_LIBRARY)
+          {
+          e << (this->Makefile->GetPolicies()
+            ->GetPolicyWarning(cmPolicies::CMP0037)) << "\n";
+          issueMessage = true;
+          }
       case cmPolicies::OLD:
         break;
       case cmPolicies::NEW:
@@ -229,9 +235,6 @@ bool cmAddLibraryCommand
       }
     if (issueMessage)
       {
-      cmOStringStream e;
-      e << (this->Makefile->GetPolicies()
-            ->GetPolicyWarning(cmPolicies::CMP0037)) << "\n";
       e << "The target name \"" << libName <<
           "\" is reserved or not valid for certain "
           "CMake features, such as generator expressions, and may result "

+ 4 - 3
Source/cmComputeTargetDepends.cxx

@@ -349,9 +349,12 @@ void cmComputeTargetDepends::AddTargetDepend(int depender_index,
     cmMakefile *makefile = depender->GetMakefile();
     cmake::MessageType messageType = cmake::AUTHOR_WARNING;
     bool issueMessage = false;
+    cmOStringStream e;
     switch(depender->GetPolicyStatusCMP0046())
       {
       case cmPolicies::WARN:
+        e << (makefile->GetPolicies()
+          ->GetPolicyWarning(cmPolicies::CMP0046)) << "\n";
         issueMessage = true;
       case cmPolicies::OLD:
         break;
@@ -364,9 +367,7 @@ void cmComputeTargetDepends::AddTargetDepend(int depender_index,
     if(issueMessage)
       {
       cmake* cm = this->GlobalGenerator->GetCMakeInstance();
-      cmOStringStream e;
-      e << (makefile->GetPolicies()
-        ->GetPolicyWarning(cmPolicies::CMP0046)) << "\n";
+
       e << "The dependency target \"" <<  dependee_name
         << "\" of target \"" << depender->GetName() << "\" does not exist.";
 

+ 3 - 3
Source/cmIncludeCommand.cxx

@@ -98,11 +98,14 @@ bool cmIncludeCommand
   if (gg->IsExportedTargetsFile(fname_abs))
     {
     const char *modal = 0;
+    cmOStringStream e;
     cmake::MessageType messageType = cmake::AUTHOR_WARNING;
 
     switch(this->Makefile->GetPolicyStatus(cmPolicies::CMP0024))
       {
       case cmPolicies::WARN:
+        e << (this->Makefile->GetPolicies()
+          ->GetPolicyWarning(cmPolicies::CMP0024)) << "\n";
         modal = "should";
       case cmPolicies::OLD:
         break;
@@ -114,9 +117,6 @@ bool cmIncludeCommand
       }
     if (modal)
       {
-      cmOStringStream e;
-      e << (this->Makefile->GetPolicies()
-            ->GetPolicyWarning(cmPolicies::CMP0024)) << "\n";
       e << "The file\n  " << fname_abs << "\nwas generated by the export() "
         "command.  It " << modal << " not be used as the argument to the "
         "include() command.  Use ALIAS targets instead to refer to targets "

+ 3 - 3
Source/cmMakefile.cxx

@@ -893,9 +893,12 @@ cmMakefile::AddCustomCommandToTarget(const std::string& target,
     {
     cmake::MessageType messageType = cmake::AUTHOR_WARNING;
     bool issueMessage = false;
+    cmOStringStream e;
     switch(this->GetPolicyStatus(cmPolicies::CMP0040))
       {
       case cmPolicies::WARN:
+        e << (this->GetPolicies()
+          ->GetPolicyWarning(cmPolicies::CMP0040)) << "\n";
         issueMessage = true;
       case cmPolicies::OLD:
         break;
@@ -908,9 +911,6 @@ cmMakefile::AddCustomCommandToTarget(const std::string& target,
 
     if(issueMessage)
       {
-      cmOStringStream e;
-      e << (this->GetPolicies()
-        ->GetPolicyWarning(cmPolicies::CMP0040)) << "\n";
       e << "The target name \"" << target << "\" is unknown in this context.";
       IssueMessage(messageType, e.str());
       }

+ 3 - 3
Source/cmTarget.cxx

@@ -2581,11 +2581,14 @@ bool cmTarget::HandleLocationPropertyPolicy() const
     {
     return true;
     }
+  cmOStringStream e;
   const char *modal = 0;
   cmake::MessageType messageType = cmake::AUTHOR_WARNING;
   switch (this->Makefile->GetPolicyStatus(cmPolicies::CMP0026))
     {
     case cmPolicies::WARN:
+      e << (this->Makefile->GetPolicies()
+        ->GetPolicyWarning(cmPolicies::CMP0026)) << "\n";
       modal = "should";
     case cmPolicies::OLD:
       break;
@@ -2598,9 +2601,6 @@ bool cmTarget::HandleLocationPropertyPolicy() const
 
   if (modal)
     {
-    cmOStringStream e;
-    e << (this->Makefile->GetPolicies()
-          ->GetPolicyWarning(cmPolicies::CMP0026)) << "\n";
     e << "The LOCATION property " << modal << " not be read from target \""
       << this->GetName() << "\".  Use the target name directly with "
       "add_custom_command, or use the generator expression $<TARGET_FILE>, "

+ 8 - 6
Source/cmTargetLinkLibrariesCommand.cxx

@@ -103,11 +103,14 @@ bool cmTargetLinkLibrariesCommand
 
   if (this->Target->GetType() == cmTarget::UTILITY)
     {
+    cmOStringStream e;
     const char *modal = 0;
     cmake::MessageType messageType = cmake::AUTHOR_WARNING;
     switch(this->Makefile->GetPolicyStatus(cmPolicies::CMP0039))
       {
       case cmPolicies::WARN:
+        e << this->Makefile->GetPolicies()
+          ->GetPolicyWarning(cmPolicies::CMP0039) << "\n";
         modal = "should";
       case cmPolicies::OLD:
         break;
@@ -119,9 +122,7 @@ bool cmTargetLinkLibrariesCommand
       }
     if (modal)
       {
-      cmOStringStream e;
-      e << this->Makefile->GetPolicies()
-                            ->GetPolicyWarning(cmPolicies::CMP0039) << "\n"
+      e <<
         "Utility target \"" << this->Target->GetName() << "\" " << modal
         << " not be used as the target of a target_link_libraries call.";
       this->Makefile->IssueMessage(messageType, e.str());
@@ -373,11 +374,14 @@ cmTargetLinkLibrariesCommand::HandleLibrary(const std::string& lib,
         ? cmTarget::KeywordTLLSignature : cmTarget::PlainTLLSignature;
   if (!this->Target->PushTLLCommandTrace(sig))
     {
+    cmOStringStream e;
     const char *modal = 0;
     cmake::MessageType messageType = cmake::AUTHOR_WARNING;
     switch(this->Makefile->GetPolicyStatus(cmPolicies::CMP0023))
       {
       case cmPolicies::WARN:
+        e << this->Makefile->GetPolicies()
+          ->GetPolicyWarning(cmPolicies::CMP0023) << "\n";
         modal = "should";
       case cmPolicies::OLD:
         break;
@@ -390,14 +394,12 @@ cmTargetLinkLibrariesCommand::HandleLibrary(const std::string& lib,
 
       if(modal)
         {
-        cmOStringStream e;
         // If the sig is a keyword form and there is a conflict, the existing
         // form must be the plain form.
         const char *existingSig
                     = (sig == cmTarget::KeywordTLLSignature ? "plain"
                                                             : "keyword");
-        e << this->Makefile->GetPolicies()
-                              ->GetPolicyWarning(cmPolicies::CMP0023) << "\n"
+          e <<
             "The " << existingSig << " signature for target_link_libraries "
             "has already been used with the target \""
           << this->Target->GetName() << "\".  All uses of "

+ 0 - 4
Tests/RunCMake/CMP0026/CMP0026-CONFIG-LOCATION-NEW-stderr.txt

@@ -1,8 +1,4 @@
 CMake Error at CMP0026-CONFIG-LOCATION-NEW.cmake:7 \(get_target_property\):
-  Policy CMP0026 is not set: Disallow use of the LOCATION target property.
-  Run "cmake --help-policy CMP0026" for policy details.  Use the cmake_policy
-  command to set the policy and suppress this warning.
-
   The LOCATION property may not be read from target "somelib".  Use the
   target name directly with add_custom_command, or use the generator
   expression \$<TARGET_FILE>, as appropriate.

+ 0 - 4
Tests/RunCMake/CMP0026/CMP0026-LOCATION-CONFIG-NEW-stderr.txt

@@ -1,8 +1,4 @@
 CMake Error at CMP0026-LOCATION-CONFIG-NEW.cmake:7 \(get_target_property\):
-  Policy CMP0026 is not set: Disallow use of the LOCATION target property.
-  Run "cmake --help-policy CMP0026" for policy details.  Use the cmake_policy
-  command to set the policy and suppress this warning.
-
   The LOCATION property may not be read from target "somelib".  Use the
   target name directly with add_custom_command, or use the generator
   expression \$<TARGET_FILE>, as appropriate.

+ 0 - 4
Tests/RunCMake/CMP0026/CMP0026-NEW-stderr.txt

@@ -1,8 +1,4 @@
 CMake Error at CMP0026-NEW.cmake:7 \(get_target_property\):
-  Policy CMP0026 is not set: Disallow use of the LOCATION target property.
-  Run "cmake --help-policy CMP0026" for policy details.  Use the cmake_policy
-  command to set the policy and suppress this warning.
-
   The LOCATION property may not be read from target "somelib".  Use the
   target name directly with add_custom_command, or use the generator
   expression \$<TARGET_FILE>, as appropriate.

+ 0 - 15
Tests/RunCMake/CMP0037/CMP0037-NEW-colon-stderr.txt

@@ -1,9 +1,4 @@
 CMake Error at CMP0037-NEW-colon.cmake:4 \(add_library\):
-  Policy CMP0037 is not set: Target names should not be reserved and should
-  match a validity pattern.  Run "cmake --help-policy CMP0037" for policy
-  details.  Use the cmake_policy command to set the policy and suppress this
-  warning.
-
   The target name "lib:colon" is reserved or not valid for certain CMake
   features, such as generator expressions, and may result in undefined
   behavior.
@@ -11,11 +6,6 @@ Call Stack \(most recent call first\):
   CMakeLists.txt:3 \(include\)
 +
 CMake Error at CMP0037-NEW-colon.cmake:5 \(add_executable\):
-  Policy CMP0037 is not set: Target names should not be reserved and should
-  match a validity pattern.  Run "cmake --help-policy CMP0037" for policy
-  details.  Use the cmake_policy command to set the policy and suppress this
-  warning.
-
   The target name "exe:colon" is reserved or not valid for certain CMake
   features, such as generator expressions, and may result in undefined
   behavior.
@@ -23,11 +13,6 @@ Call Stack \(most recent call first\):
   CMakeLists.txt:3 \(include\)
 +
 CMake Error at CMP0037-NEW-colon.cmake:6 \(add_custom_target\):
-  Policy CMP0037 is not set: Target names should not be reserved and should
-  match a validity pattern.  Run "cmake --help-policy CMP0037" for policy
-  details.  Use the cmake_policy command to set the policy and suppress this
-  warning.
-
   The target name "custom:colon" is reserved or not valid for certain CMake
   features, such as generator expressions, and may result in undefined
   behavior.

+ 0 - 15
Tests/RunCMake/CMP0037/CMP0037-NEW-reserved-stderr.txt

@@ -1,20 +1,10 @@
 CMake Error at CMP0037-NEW-reserved.cmake:4 \(add_library\):
-  Policy CMP0037 is not set: Target names should not be reserved and should
-  match a validity pattern.  Run "cmake --help-policy CMP0037" for policy
-  details.  Use the cmake_policy command to set the policy and suppress this
-  warning.
-
   The target name "all" is reserved or not valid for certain CMake features,
   such as generator expressions, and may result in undefined behavior.
 Call Stack \(most recent call first\):
   CMakeLists.txt:3 \(include\)
 +
 CMake Error at CMP0037-NEW-reserved.cmake:5 \(add_executable\):
-  Policy CMP0037 is not set: Target names should not be reserved and should
-  match a validity pattern.  Run "cmake --help-policy CMP0037" for policy
-  details.  Use the cmake_policy command to set the policy and suppress this
-  warning.
-
   The target name "clean" is reserved or not valid for certain CMake
   features, such as generator expressions, and may result in undefined
   behavior.
@@ -22,11 +12,6 @@ Call Stack \(most recent call first\):
   CMakeLists.txt:3 \(include\)
 +
 CMake Error at CMP0037-NEW-reserved.cmake:6 \(add_custom_target\):
-  Policy CMP0037 is not set: Target names should not be reserved and should
-  match a validity pattern.  Run "cmake --help-policy CMP0037" for policy
-  details.  Use the cmake_policy command to set the policy and suppress this
-  warning.
-
   The target name "help" is reserved or not valid for certain CMake features,
   such as generator expressions, and may result in undefined behavior.
 Call Stack \(most recent call first\):

+ 0 - 15
Tests/RunCMake/CMP0037/CMP0037-NEW-space-stderr.txt

@@ -1,9 +1,4 @@
 CMake Error at CMP0037-NEW-space.cmake:4 \(add_library\):
-  Policy CMP0037 is not set: Target names should not be reserved and should
-  match a validity pattern.  Run "cmake --help-policy CMP0037" for policy
-  details.  Use the cmake_policy command to set the policy and suppress this
-  warning.
-
   The target name "lib with spaces" is reserved or not valid for certain
   CMake features, such as generator expressions, and may result in undefined
   behavior.
@@ -11,11 +6,6 @@ Call Stack \(most recent call first\):
   CMakeLists.txt:3 \(include\)
 +
 CMake Error at CMP0037-NEW-space.cmake:5 \(add_executable\):
-  Policy CMP0037 is not set: Target names should not be reserved and should
-  match a validity pattern.  Run "cmake --help-policy CMP0037" for policy
-  details.  Use the cmake_policy command to set the policy and suppress this
-  warning.
-
   The target name "exe with spaces" is reserved or not valid for certain
   CMake features, such as generator expressions, and may result in undefined
   behavior.
@@ -23,11 +13,6 @@ Call Stack \(most recent call first\):
   CMakeLists.txt:3 \(include\)
 +
 CMake Error at CMP0037-NEW-space.cmake:6 \(add_custom_target\):
-  Policy CMP0037 is not set: Target names should not be reserved and should
-  match a validity pattern.  Run "cmake --help-policy CMP0037" for policy
-  details.  Use the cmake_policy command to set the policy and suppress this
-  warning.
-
   The target name "custom with spaces" is reserved or not valid for certain
   CMake features, such as generator expressions, and may result in undefined
   behavior.

+ 0 - 4
Tests/RunCMake/CMP0039/CMP0039-NEW-stderr.txt

@@ -1,8 +1,4 @@
 CMake Error at CMP0039-NEW.cmake:7 \(target_link_libraries\):
-  Policy CMP0039 is not set: Utility targets may not have link dependencies.
-  Run "cmake --help-policy CMP0039" for policy details.  Use the cmake_policy
-  command to set the policy and suppress this warning.
-
   Utility target "utility" must not be used as the target of a
   target_link_libraries call.
 Call Stack \(most recent call first\):

+ 0 - 5
Tests/RunCMake/CMP0040/CMP0040-NEW-missing-target-stderr.txt

@@ -1,9 +1,4 @@
 CMake Error at CMP0040-NEW-missing-target.cmake:3 \(add_custom_command\):
-  Policy CMP0040 is not set: The target in the TARGET signature of
-  add_custom_command\(\) must exist.  Run "cmake --help-policy CMP0040" for
-  policy details.  Use the cmake_policy command to set the policy and
-  suppress this warning.
-+
   The target name "foobar" is unknown in this context.
 Call Stack \(most recent call first\):
   CMakeLists.txt:3 \(include\)

+ 0 - 4
Tests/RunCMake/CMP0046/CMP0046-NEW-missing-dependency-stderr.txt

@@ -1,8 +1,4 @@
 CMake Error at CMP0046-NEW-missing-dependency.cmake:4 \(add_dependencies\):
-  Policy CMP0046 is not set: Error on non-existent dependency in
-  add_dependencies.  Run "cmake --help-policy CMP0046" for policy details.
-  Use the cmake_policy command to set the policy and suppress this warning.
-+
   The dependency target "bar" of target "foo" does not exist.
 Call Stack \(most recent call first\):
   CMakeLists.txt:3 \(include\)

+ 0 - 4
Tests/RunCMake/include/CMP0024-NEW-stderr.txt

@@ -1,8 +1,4 @@
 CMake Error at subdir2/CMakeLists.txt:2 \(include\):
-  Policy CMP0024 is not set: Disallow include export result.  Run "cmake
-  --help-policy CMP0024" for policy details.  Use the cmake_policy command to
-  set the policy and suppress this warning.
-
   The file
 
     .*/Tests/RunCMake/include/CMP0024-NEW-build/subdir1/theTargets.cmake

+ 0 - 5
Tests/RunCMake/target_link_libraries/CMP0023-NEW-2-stderr.txt

@@ -1,9 +1,4 @@
 CMake Error at CMP0023-NEW-2.cmake:11 \(target_link_libraries\):
-  Policy CMP0023 is not set: Plain and keyword target_link_libraries
-  signatures cannot be mixed.  Run "cmake --help-policy CMP0023" for policy
-  details.  Use the cmake_policy command to set the policy and suppress this
-  warning.
-
   The plain signature for target_link_libraries has already been used with
   the target "foo".  All uses of target_link_libraries with a target must be
   either all-keyword or all-plain.

+ 0 - 5
Tests/RunCMake/target_link_libraries/CMP0023-NEW-stderr.txt

@@ -1,9 +1,4 @@
 CMake Error at CMP0023-NEW.cmake:11 \(target_link_libraries\):
-  Policy CMP0023 is not set: Plain and keyword target_link_libraries
-  signatures cannot be mixed.  Run "cmake --help-policy CMP0023" for policy
-  details.  Use the cmake_policy command to set the policy and suppress this
-  warning.
-
   The plain signature for target_link_libraries has already been used with
   the target "foo".  All uses of target_link_libraries with a target must be
   either all-keyword or all-plain.