summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/cmMakefile.cxx20
-rw-r--r--Source/cmMakefile.h3
-rw-r--r--Source/cmTarget.cxx22
-rw-r--r--Source/cmTarget.h5
-rw-r--r--Source/cmTargetCompileOptionsCommand.cxx3
5 files changed, 28 insertions, 25 deletions
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index c705e7d..8276faa 100644
--- a/Source/cmMakefile.cxx
+++ b/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
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index e69ce1e..9b21608 100644
--- a/Source/cmMakefile.h
+++ b/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;
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 906517b..0aa66cd 100644
--- a/Source/cmTarget.cxx
+++ b/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)));
}
//----------------------------------------------------------------------------
diff --git a/Source/cmTarget.h b/Source/cmTarget.h
index 9c98672..ba3bc5a 100644
--- a/Source/cmTarget.h
+++ b/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);
diff --git a/Source/cmTargetCompileOptionsCommand.cxx b/Source/cmTargetCompileOptionsCommand.cxx
index a85153d..8e86f0f 100644
--- a/Source/cmTargetCompileOptionsCommand.cxx
+++ b/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;
}