cmMakefile: Split accessors for compile options and origins.

This commit is contained in:
Stephen Kelly 2015-07-08 23:17:16 +02:00
parent d6239507b2
commit b2de25aded
5 changed files with 28 additions and 25 deletions

View File

@ -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

View File

@ -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;

View File

@ -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)));
}
//----------------------------------------------------------------------------

View File

@ -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);

View File

@ -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;
}