Przeglądaj źródła

cmMakefile: Split accessors for include directories and origins.

Stephen Kelly 10 lat temu
rodzic
commit
c7b39d06f9

+ 10 - 14
Source/cmMakefile.cxx

@@ -273,21 +273,18 @@ void cmMakefile::IssueMessage(cmake::MessageType t,
     }
 }
 
-std::vector<cmValueWithOrigin> cmMakefile::GetIncludeDirectoriesEntries() const
+std::vector<std::string> cmMakefile::GetIncludeDirectoriesEntries() const
 {
-  std::vector<cmValueWithOrigin> entries;
-  entries.reserve(this->IncludeDirectoriesEntries.size());
-  std::vector<cmListFileBacktrace>::const_iterator btIt =
-      this->IncludeDirectoriesEntryBacktraces.begin();
-  for(std::vector<std::string>::const_iterator it =
-      this->IncludeDirectoriesEntries.begin();
-      it != this->IncludeDirectoriesEntries.end(); ++it, ++btIt)
-    {
-    entries.push_back(cmValueWithOrigin(*it, *btIt));
-    }
-  return entries;
+  return this->IncludeDirectoriesEntries;
 }
 
+std::vector<cmListFileBacktrace>
+cmMakefile::GetIncludeDirectoriesBacktraces() const
+{
+  return this->IncludeDirectoriesEntryBacktraces;
+}
+
+
 std::vector<std::string> cmMakefile::GetCompileOptionsEntries() const
 {
   return this->CompileOptionsEntries;
@@ -1942,7 +1939,6 @@ void cmMakefile::AddIncludeDirectories(const std::vector<std::string> &incs,
 
   cmListFileBacktrace lfbt = this->GetBacktrace();
   std::string entryString = cmJoin(incs, ";");
-  cmValueWithOrigin entry(entryString, lfbt);
   this->IncludeDirectoriesEntries.insert(position, entryString);
   this->IncludeDirectoriesEntryBacktraces.insert(btPos, lfbt);
 
@@ -1951,7 +1947,7 @@ void cmMakefile::AddIncludeDirectories(const std::vector<std::string> &incs,
        l != this->Targets.end(); ++l)
     {
     cmTarget &t = l->second;
-    t.InsertInclude(entry, before);
+    t.InsertInclude(entryString, lfbt, before);
     }
 }
 

+ 2 - 1
Source/cmMakefile.h

@@ -746,7 +746,8 @@ public:
   /** Set whether or not to report a CMP0000 violation.  */
   void SetCheckCMP0000(bool b) { this->CheckCMP0000 = b; }
 
-  std::vector<cmValueWithOrigin> GetIncludeDirectoriesEntries() const;
+  std::vector<std::string> GetIncludeDirectoriesEntries() const;
+  std::vector<cmListFileBacktrace> GetIncludeDirectoriesBacktraces() const;
   std::vector<std::string> GetCompileOptionsEntries() const;
   std::vector<cmListFileBacktrace> GetCompileOptionsBacktraces() const;
   std::vector<std::string> GetCompileDefinitionsEntries() const;

+ 16 - 11
Source/cmTarget.cxx

@@ -402,13 +402,18 @@ void cmTarget::SetMakefile(cmMakefile* mf)
     {
     // Initialize the INCLUDE_DIRECTORIES property based on the current value
     // of the same directory property:
-    const std::vector<cmValueWithOrigin> parentIncludes =
-                                this->Makefile->GetIncludeDirectoriesEntries();
+    const std::vector<std::string> parentIncludes =
+        this->Makefile->GetIncludeDirectoriesEntries();
+    const std::vector<cmListFileBacktrace> parentIncludesBts =
+        this->Makefile->GetIncludeDirectoriesBacktraces();
 
-    for (std::vector<cmValueWithOrigin>::const_iterator it
-                = parentIncludes.begin(); it != parentIncludes.end(); ++it)
+    std::vector<cmListFileBacktrace>::const_iterator btIt =
+        parentIncludesBts.begin();
+    for (std::vector<std::string>::const_iterator it
+                = parentIncludes.begin();
+         it != parentIncludes.end(); ++it, ++btIt)
       {
-      this->InsertInclude(*it);
+      this->InsertInclude(*it, *btIt);
       }
     const std::set<std::string> parentSystemIncludes =
                                 this->Makefile->GetSystemIncludeDirectories();
@@ -421,8 +426,7 @@ void cmTarget::SetMakefile(cmMakefile* mf)
     const std::vector<cmListFileBacktrace> parentOptionsBts =
                                 this->Makefile->GetCompileOptionsBacktraces();
 
-    std::vector<cmListFileBacktrace>::const_iterator btIt =
-        parentOptionsBts.begin();
+    btIt = parentOptionsBts.begin();
     for (std::vector<std::string>::const_iterator it
                 = parentOptions.begin();
          it != parentOptions.end(); ++it, ++btIt)
@@ -1931,17 +1935,18 @@ void cmTarget::AppendBuildInterfaceIncludes()
 }
 
 //----------------------------------------------------------------------------
-void cmTarget::InsertInclude(const cmValueWithOrigin &entry,
-                     bool before)
+void cmTarget::InsertInclude(std::string const& entry,
+                             cmListFileBacktrace const& bt,
+                             bool before)
 {
-  cmGeneratorExpression ge(entry.Backtrace);
+  cmGeneratorExpression ge(bt);
 
   std::vector<cmTargetInternals::TargetPropertyEntry*>::iterator position
                 = before ? this->Internal->IncludeDirectoriesEntries.begin()
                          : this->Internal->IncludeDirectoriesEntries.end();
 
   this->Internal->IncludeDirectoriesEntries.insert(position,
-      new cmTargetInternals::TargetPropertyEntry(ge.Parse(entry.Value)));
+      new cmTargetInternals::TargetPropertyEntry(ge.Parse(entry)));
 }
 
 //----------------------------------------------------------------------------

+ 2 - 1
Source/cmTarget.h

@@ -572,7 +572,8 @@ public:
   std::vector<std::string> GetIncludeDirectories(
                      const std::string& config,
                      const std::string& language) const;
-  void InsertInclude(const cmValueWithOrigin &entry,
+  void InsertInclude(std::string const& entry,
+                     cmListFileBacktrace const& bt,
                      bool before = false);
   void InsertCompileOption(std::string const& entry,
                            cmListFileBacktrace const& bt,

+ 1 - 2
Source/cmTargetIncludeDirectoriesCommand.cxx

@@ -72,8 +72,7 @@ bool cmTargetIncludeDirectoriesCommand
                       bool prepend, bool system)
 {
   cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
-  cmValueWithOrigin entry(this->Join(content), lfbt);
-  tgt->InsertInclude(entry, prepend);
+  tgt->InsertInclude(this->Join(content), lfbt, prepend);
   if (system)
     {
     tgt->AddSystemIncludeDirectories(content);