Просмотр исходного кода

ENH: Add variable for the current list file

Andy Cedilnik 19 лет назад
Родитель
Сommit
6fb9e2781a
1 измененных файлов с 13 добавлено и 4 удалено
  1. 13 4
      Source/cmMakefile.cxx

+ 13 - 4
Source/cmMakefile.cxx

@@ -372,7 +372,10 @@ bool cmMakefile::ExecuteCommand(const cmListFileFunction& lff)
 bool cmMakefile::ReadListFile(const char* filename_in, 
                               const char *external_in)
 {
-  std::string currentFile = this->GetSafeDefinition("CMAKE_PARENT_LIST_FILE");
+  std::string currentParentFile
+    = this->GetSafeDefinition("CMAKE_PARENT_LIST_FILE");
+  std::string currentFile
+    = this->GetSafeDefinition("CMAKE_CURRENT_LIST_FILE");
   this->AddDefinition("CMAKE_PARENT_LIST_FILE", filename_in);
 
   // used to watch for blockers going out of scope
@@ -423,6 +426,9 @@ bool cmMakefile::ReadListFile(const char* filename_in,
     {
     filenametoread= external;
     }
+
+  this->AddDefinition("CMAKE_CURRENT_LIST_FILE", filenametoread);
+
   // try to see if the list file is the top most
   // list file for a project, and if it is, then it
   // must have a project command.   If there is not
@@ -444,7 +450,8 @@ bool cmMakefile::ReadListFile(const char* filename_in,
   cmListFile cacheFile;
   if( !cacheFile.ParseFile(filenametoread, requireProjectCommand) )
     {
-    this->AddDefinition("CMAKE_PARENT_LIST_FILE", currentFile.c_str());
+    this->AddDefinition("CMAKE_PARENT_LIST_FILE", currentParentFile.c_str());
+    this->AddDefinition("CMAKE_CURRENT_LIST_FILE", currentFile.c_str());
     return false;
     }
   // add this list file to the list of dependencies
@@ -457,7 +464,8 @@ bool cmMakefile::ReadListFile(const char* filename_in,
       {
       // pop the listfile off the stack
       this->ListFileStack.pop_back();
-      this->AddDefinition("CMAKE_PARENT_LIST_FILE", currentFile.c_str());
+      this->AddDefinition("CMAKE_PARENT_LIST_FILE", currentParentFile.c_str());
+      this->AddDefinition("CMAKE_CURRENT_LIST_FILE", currentFile.c_str());
       return true;
       }
     }
@@ -479,7 +487,8 @@ bool cmMakefile::ReadListFile(const char* filename_in,
       }
     }
   
-  this->AddDefinition("CMAKE_PARENT_LIST_FILE", currentFile.c_str());
+  this->AddDefinition("CMAKE_PARENT_LIST_FILE", currentParentFile.c_str());
+  this->AddDefinition("CMAKE_CURRENT_LIST_FILE", currentFile.c_str());
 
   // pop the listfile off the stack
   this->ListFileStack.pop_back();