Forráskód Böngészése

cmMakefile: Split accessors for compile options and origins.

Stephen Kelly 10 éve
szülő
commit
b2de25aded

+ 8 - 12
Source/cmMakefile.cxx

@@ -288,19 +288,15 @@ std::vector<cmValueWithOrigin> cmMakefile::GetIncludeDirectoriesEntries() const
   return entries;
 }
 
-std::vector<cmValueWithOrigin> cmMakefile::GetCompileOptionsEntries() const
+std::vector<std::string> cmMakefile::GetCompileOptionsEntries() const
 {
-  std::vector<cmValueWithOrigin> entries;
-  entries.reserve(this->CompileOptionsEntries.size());
-  std::vector<cmListFileBacktrace>::const_iterator btIt =
-      this->CompileOptionsEntryBacktraces.begin();
-  for(std::vector<std::string>::const_iterator it =
-      this->CompileOptionsEntries.begin();
-      it != this->CompileOptionsEntries.end(); ++it, ++btIt)
-    {
-    entries.push_back(cmValueWithOrigin(*it, *btIt));
-    }
-  return entries;
+  return this->CompileOptionsEntries;
+}
+
+std::vector<cmListFileBacktrace>
+cmMakefile::GetCompileOptionsBacktraces() const
+{
+  return this->CompileOptionsEntryBacktraces;
 }
 
 std::vector<std::string> cmMakefile::GetCompileDefinitionsEntries() const

+ 2 - 1
Source/cmMakefile.h

@@ -747,7 +747,8 @@ public:
   void SetCheckCMP0000(bool b) { this->CheckCMP0000 = b; }
 
   std::vector<cmValueWithOrigin> GetIncludeDirectoriesEntries() const;
-  std::vector<cmValueWithOrigin> GetCompileOptionsEntries() const;
+  std::vector<std::string> GetCompileOptionsEntries() const;
+  std::vector<cmListFileBacktrace> GetCompileOptionsBacktraces() const;
   std::vector<std::string> GetCompileDefinitionsEntries() const;
   std::vector<cmListFileBacktrace> GetCompileDefinitionsBacktraces() const;
 

+ 14 - 8
Source/cmTarget.cxx

@@ -416,13 +416,18 @@ void cmTarget::SetMakefile(cmMakefile* mf)
     this->SystemIncludeDirectories.insert(parentSystemIncludes.begin(),
                                           parentSystemIncludes.end());
 
-    const std::vector<cmValueWithOrigin> parentOptions =
+    const std::vector<std::string> parentOptions =
                                 this->Makefile->GetCompileOptionsEntries();
+    const std::vector<cmListFileBacktrace> parentOptionsBts =
+                                this->Makefile->GetCompileOptionsBacktraces();
 
-    for (std::vector<cmValueWithOrigin>::const_iterator it
-                = parentOptions.begin(); it != parentOptions.end(); ++it)
+    std::vector<cmListFileBacktrace>::const_iterator btIt =
+        parentOptionsBts.begin();
+    for (std::vector<std::string>::const_iterator it
+                = parentOptions.begin();
+         it != parentOptions.end(); ++it, ++btIt)
       {
-      this->InsertCompileOption(*it);
+      this->InsertCompileOption(*it, *btIt);
       }
     }
 
@@ -1940,17 +1945,18 @@ void cmTarget::InsertInclude(const cmValueWithOrigin &entry,
 }
 
 //----------------------------------------------------------------------------
-void cmTarget::InsertCompileOption(const cmValueWithOrigin &entry,
-                     bool before)
+void cmTarget::InsertCompileOption(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->CompileOptionsEntries.begin()
                          : this->Internal->CompileOptionsEntries.end();
 
   this->Internal->CompileOptionsEntries.insert(position,
-      new cmTargetInternals::TargetPropertyEntry(ge.Parse(entry.Value)));
+      new cmTargetInternals::TargetPropertyEntry(ge.Parse(entry)));
 }
 
 //----------------------------------------------------------------------------

+ 3 - 2
Source/cmTarget.h

@@ -574,8 +574,9 @@ public:
                      const std::string& language) const;
   void InsertInclude(const cmValueWithOrigin &entry,
                      bool before = false);
-  void InsertCompileOption(const cmValueWithOrigin &entry,
-                     bool before = false);
+  void InsertCompileOption(std::string const& entry,
+                           cmListFileBacktrace const& bt,
+                           bool before = false);
   void InsertCompileDefinition(std::string const& entry,
                                cmListFileBacktrace const& bt);
 

+ 1 - 2
Source/cmTargetCompileOptionsCommand.cxx

@@ -50,7 +50,6 @@ bool cmTargetCompileOptionsCommand
                                    bool, bool)
 {
   cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
-  cmValueWithOrigin entry(this->Join(content), lfbt);
-  tgt->InsertCompileOption(entry);
+  tgt->InsertCompileOption(this->Join(content), lfbt);
   return true;
 }