Browse Source

cmMakefile: Add wrapper for reading listfiles which have an origin.

Such files are delegates from other files, and so they set the
CMAKE_PARENT_LIST_FILE to the originator.  They also may set a
policy scope.
Stephen Kelly 10 năm trước cách đây
mục cha
commit
a2f2aeee2f

+ 2 - 6
Source/CTest/cmCTestTestHandler.cxx

@@ -117,9 +117,7 @@ bool cmCTestSubdirCommand
       }
     fname += "/";
     fname += testFilename;
-    bool readit =
-      this->Makefile->ReadListFile(this->Makefile->GetCurrentListFile(),
-                                   fname.c_str());
+    bool readit = this->Makefile->ReadDependentFile(fname.c_str());
     cmSystemTools::ChangeDirectory(cwd);
     if(!readit)
       {
@@ -205,9 +203,7 @@ bool cmCTestAddSubdirectoryCommand
     }
   fname += "/";
   fname += testFilename;
-  bool readit =
-    this->Makefile->ReadListFile(this->Makefile->GetCurrentListFile(),
-                                 fname.c_str());
+  bool readit = this->Makefile->ReadDependentFile(fname.c_str());
   cmSystemTools::ChangeDirectory(cwd);
   if(!readit)
     {

+ 1 - 2
Source/cmCTest.cxx

@@ -687,8 +687,7 @@ bool cmCTest::InitializeFromCommand(cmCTestStartCommand* command)
     {
     cmCTestOptionalLog(this, OUTPUT, "   Reading ctest configuration file: "
       << fname << std::endl, command->ShouldBeQuiet());
-    bool readit = mf->ReadListFile(mf->GetCurrentListFile(),
-      fname.c_str() );
+    bool readit = mf->ReadDependentFile(fname.c_str());
     if(!readit)
       {
       std::string m = "Could not find include file: ";

+ 2 - 2
Source/cmFindPackageCommand.cxx

@@ -999,8 +999,8 @@ bool cmFindPackageCommand::FindAppBundleConfig()
 //----------------------------------------------------------------------------
 bool cmFindPackageCommand::ReadListFile(const char* f, PolicyScopeRule psr)
 {
-  if(this->Makefile->ReadListFile(this->Makefile->GetCurrentListFile(), f,
-                                  !this->PolicyScope || psr == NoPolicyScope))
+  const bool noPolicyScope = !this->PolicyScope || psr == NoPolicyScope;
+  if(this->Makefile->ReadDependentFile(f, noPolicyScope))
     {
     return true;
     }

+ 1 - 1
Source/cmGlobalVisualStudio6Generator.cxx

@@ -60,7 +60,7 @@ void cmGlobalVisualStudio6Generator::GenerateConfigurations(cmMakefile* mf)
     fname += "/Templates";
     }
   fname += "/CMakeVisualStudio6Configurations.cmake";
-  if(!mf->ReadListFile(mf->GetCurrentListFile(), fname.c_str()))
+  if(!mf->ReadDependentFile(fname.c_str()))
     {
     cmSystemTools::Error("Cannot open ", fname.c_str(),
                          ".  Please copy this file from the main "

+ 1 - 2
Source/cmIncludeCommand.cxx

@@ -131,8 +131,7 @@ bool cmIncludeCommand
     }
 
   bool readit =
-    this->Makefile->ReadListFile( this->Makefile->GetCurrentListFile(),
-                                  fname.c_str(), noPolicyScope);
+    this->Makefile->ReadDependentFile(fname.c_str(), noPolicyScope);
 
   // add the location of the included file if a result variable was given
   if (!resultVarName.empty())

+ 6 - 0
Source/cmMakefile.cxx

@@ -528,6 +528,12 @@ bool cmMakefile::ProcessBuildsystemFile(const char* listfile)
                             this->cmStartDirectory == this->cmHomeDirectory);
 }
 
+bool cmMakefile::ReadDependentFile(const char* listfile, bool noPolicyScope)
+{
+  return this->ReadListFile(this->GetCurrentListFile(), listfile,
+                            noPolicyScope);
+}
+
 //----------------------------------------------------------------------------
 // Parse the given CMakeLists.txt file executing all commands
 //

+ 2 - 0
Source/cmMakefile.h

@@ -90,6 +90,8 @@ public:
                     bool noPolicyScope = true,
                     bool requireProjectCommand = false);
 
+  bool ReadDependentFile(const char* listfile, bool noPolicyScope = true);
+
   bool ProcessBuildsystemFile(const char* listfile);
 
   /**

+ 1 - 2
Source/cmProjectCommand.cxx

@@ -236,8 +236,7 @@ bool cmProjectCommand
     {
     std::string fullFilePath;
     bool readit =
-      this->Makefile->ReadListFile( this->Makefile->GetCurrentListFile(),
-                                    include);
+      this->Makefile->ReadDependentFile(include);
     if(!readit && !cmSystemTools::GetFatalErrorOccured())
       {
       std::string m =