Răsfoiți Sursa

BUG: find_package must push/pop policies

When the find_package command loads a <name>-version.cmake file to test
the package version it must prevent the version file from affecting
policy settings.  Therefore the policy settings must be pushed and
popped.
Brad King 17 ani în urmă
părinte
comite
2d842b6798
1 a modificat fișierele cu 2 adăugiri și 0 ștergeri
  1. 2 0
      Source/cmFindPackageCommand.cxx

+ 2 - 0
Source/cmFindPackageCommand.cxx

@@ -1298,6 +1298,7 @@ bool cmFindPackageCommand::CheckVersionFile(std::string const& version_file)
 {
   // The version file will be loaded in an isolated scope.
   this->Makefile->PushScope();
+  this->Makefile->PushPolicy();
 
   // Clear the output variables.
   this->Makefile->RemoveDefinition("PACKAGE_VERSION");
@@ -1364,6 +1365,7 @@ bool cmFindPackageCommand::CheckVersionFile(std::string const& version_file)
     }
 
   // Restore the original scope.
+  this->Makefile->PopPolicy();
   this->Makefile->PopScope();
 
   // Succeed if the version is suitable.