summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBen Boeckel <ben.boeckel@kitware.com>2014-05-23 18:41:46 (GMT)
committerBen Boeckel <ben.boeckel@kitware.com>2014-06-05 16:44:04 (GMT)
commitd46c650d676420a3053ba39e7af8808d581d04ab (patch)
treee25c57afe9794bf3c48b5b20ff8658b34cbc0103 /Source
parent88818b680549651b6531a6648396d749b759afb2 (diff)
downloadCMake-d46c650d676420a3053ba39e7af8808d581d04ab.zip
CMake-d46c650d676420a3053ba39e7af8808d581d04ab.tar.gz
CMake-d46c650d676420a3053ba39e7af8808d581d04ab.tar.bz2
cmMakefile: return a backtrace
This allows backtraces to be fully controlled by the makefile rather than externally (and makes changing how they are manipulated easier).
Diffstat (limited to 'Source')
-rw-r--r--Source/cmCustomCommand.cxx2
-rw-r--r--Source/cmExportBuildFileGenerator.h2
-rw-r--r--Source/cmFileCommand.cxx3
-rw-r--r--Source/cmInstalledFile.cxx6
-rw-r--r--Source/cmMakefile.cxx32
-rw-r--r--Source/cmMakefile.h2
-rw-r--r--Source/cmTarget.cxx52
-rw-r--r--Source/cmTargetCompileOptionsCommand.cxx3
-rw-r--r--Source/cmTargetIncludeDirectoriesCommand.cxx3
-rw-r--r--Source/cmTest.cxx2
10 files changed, 38 insertions, 69 deletions
diff --git a/Source/cmCustomCommand.cxx b/Source/cmCustomCommand.cxx
index ac2eef8..20908a5 100644
--- a/Source/cmCustomCommand.cxx
+++ b/Source/cmCustomCommand.cxx
@@ -84,7 +84,7 @@ cmCustomCommand::cmCustomCommand(cmMakefile const* mf,
this->EscapeAllowMakeVars = false;
if(mf)
{
- mf->GetBacktrace(*this->Backtrace);
+ *this->Backtrace = mf->GetBacktrace();
}
}
diff --git a/Source/cmExportBuildFileGenerator.h b/Source/cmExportBuildFileGenerator.h
index c1bdb5b..8b5694c 100644
--- a/Source/cmExportBuildFileGenerator.h
+++ b/Source/cmExportBuildFileGenerator.h
@@ -45,7 +45,7 @@ public:
void SetMakefile(cmMakefile *mf) {
this->Makefile = mf;
- this->Makefile->GetBacktrace(this->Backtrace);
+ this->Backtrace = this->Makefile->GetBacktrace();
}
protected:
diff --git a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx
index 4ee34df..41ea357 100644
--- a/Source/cmFileCommand.cxx
+++ b/Source/cmFileCommand.cxx
@@ -3270,8 +3270,7 @@ void cmFileCommand::AddEvaluationFile(const std::string &inputName,
bool inputIsContent
)
{
- cmListFileBacktrace lfbt;
- this->Makefile->GetBacktrace(lfbt);
+ cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
cmGeneratorExpression outputGe(lfbt);
cmsys::auto_ptr<cmCompiledGeneratorExpression> outputCge
diff --git a/Source/cmInstalledFile.cxx b/Source/cmInstalledFile.cxx
index 7e78ec0..6860e00 100644
--- a/Source/cmInstalledFile.cxx
+++ b/Source/cmInstalledFile.cxx
@@ -32,8 +32,7 @@ cmInstalledFile::~cmInstalledFile()
//----------------------------------------------------------------------------
void cmInstalledFile::SetName(cmMakefile* mf, const std::string& name)
{
- cmListFileBacktrace backtrace;
- mf->GetBacktrace(backtrace);
+ cmListFileBacktrace backtrace = mf->GetBacktrace();
cmGeneratorExpression ge(backtrace);
this->Name = name;
@@ -70,8 +69,7 @@ void cmInstalledFile::SetProperty(cmMakefile const* mf,
void cmInstalledFile::AppendProperty(cmMakefile const* mf,
const std::string& prop, const char* value, bool /*asString*/)
{
- cmListFileBacktrace backtrace;
- mf->GetBacktrace(backtrace);
+ cmListFileBacktrace backtrace = mf->GetBacktrace();
cmGeneratorExpression ge(backtrace);
Property& property = this->Properties[prop];
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 2620471..b22ff87 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -317,7 +317,7 @@ void cmMakefile::IssueMessage(cmake::MessageType t,
{
this->CallStack.back().Status->SetNestedError(true);
}
- this->GetBacktrace(backtrace);
+ backtrace = this->GetBacktrace();
}
else
{
@@ -348,12 +348,9 @@ void cmMakefile::IssueMessage(cmake::MessageType t,
}
//----------------------------------------------------------------------------
-bool cmMakefile::GetBacktrace(cmListFileBacktrace& backtrace) const
+cmListFileBacktrace cmMakefile::GetBacktrace() const
{
- if(this->CallStack.empty())
- {
- return false;
- }
+ cmListFileBacktrace backtrace;
for(CallStackType::const_reverse_iterator i = this->CallStack.rbegin();
i != this->CallStack.rend(); ++i)
{
@@ -362,7 +359,7 @@ bool cmMakefile::GetBacktrace(cmListFileBacktrace& backtrace) const
cmLocalGenerator::HOME);
backtrace.push_back(lfc);
}
- return true;
+ return backtrace;
}
//----------------------------------------------------------------------------
@@ -1745,8 +1742,7 @@ void cmMakefile::AddIncludeDirectories(const std::vector<std::string> &incs,
before ? this->IncludeDirectoriesEntries.begin()
: this->IncludeDirectoriesEntries.end();
- cmListFileBacktrace lfbt;
- this->GetBacktrace(lfbt);
+ cmListFileBacktrace lfbt = this->GetBacktrace();
cmValueWithOrigin entry(incString, lfbt);
this->IncludeDirectoriesEntries.insert(position, entry);
@@ -4013,8 +4009,7 @@ void cmMakefile::SetProperty(const std::string& prop, const char* value)
{
return;
}
- cmListFileBacktrace lfbt;
- this->GetBacktrace(lfbt);
+ cmListFileBacktrace lfbt = this->GetBacktrace();
this->IncludeDirectoriesEntries.push_back(
cmValueWithOrigin(value, lfbt));
return;
@@ -4026,8 +4021,7 @@ void cmMakefile::SetProperty(const std::string& prop, const char* value)
{
return;
}
- cmListFileBacktrace lfbt;
- this->GetBacktrace(lfbt);
+ cmListFileBacktrace lfbt = this->GetBacktrace();
this->CompileOptionsEntries.push_back(cmValueWithOrigin(value, lfbt));
return;
}
@@ -4038,8 +4032,7 @@ void cmMakefile::SetProperty(const std::string& prop, const char* value)
{
return;
}
- cmListFileBacktrace lfbt;
- this->GetBacktrace(lfbt);
+ cmListFileBacktrace lfbt = this->GetBacktrace();
cmValueWithOrigin entry(value, lfbt);
this->CompileDefinitionsEntries.push_back(entry);
return;
@@ -4070,24 +4063,21 @@ void cmMakefile::AppendProperty(const std::string& prop,
{
if (prop == "INCLUDE_DIRECTORIES")
{
- cmListFileBacktrace lfbt;
- this->GetBacktrace(lfbt);
+ cmListFileBacktrace lfbt = this->GetBacktrace();
this->IncludeDirectoriesEntries.push_back(
cmValueWithOrigin(value, lfbt));
return;
}
if (prop == "COMPILE_OPTIONS")
{
- cmListFileBacktrace lfbt;
- this->GetBacktrace(lfbt);
+ cmListFileBacktrace lfbt = this->GetBacktrace();
this->CompileOptionsEntries.push_back(
cmValueWithOrigin(value, lfbt));
return;
}
if (prop == "COMPILE_DEFINITIONS")
{
- cmListFileBacktrace lfbt;
- this->GetBacktrace(lfbt);
+ cmListFileBacktrace lfbt = this->GetBacktrace();
this->CompileDefinitionsEntries.push_back(
cmValueWithOrigin(value, lfbt));
return;
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index e3b83af..d5ffd98 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -655,7 +655,7 @@ public:
/**
* Get the current context backtrace.
*/
- bool GetBacktrace(cmListFileBacktrace& backtrace) const;
+ cmListFileBacktrace GetBacktrace() const;
/**
* Get the vector of files created by this makefile
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 15acfdd..f3286d4 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -366,7 +366,7 @@ void cmTarget::SetMakefile(cmMakefile* mf)
}
// Save the backtrace of target construction.
- this->Makefile->GetBacktrace(this->Internal->Backtrace);
+ this->Internal->Backtrace = this->Makefile->GetBacktrace();
if (!this->IsImported())
{
@@ -443,7 +443,7 @@ void cmTarget::AddUtility(const std::string& u, cmMakefile *makefile)
{
if(this->Utilities.insert(u).second && makefile)
{
- makefile->GetBacktrace(UtilityBacktraces[u]);
+ UtilityBacktraces.insert(std::make_pair(u, makefile->GetBacktrace()));
}
}
@@ -910,8 +910,7 @@ void cmTarget::AddTracedSources(std::vector<std::string> const& srcs)
{
this->Internal->SourceFilesMap.clear();
this->LinkImplementationLanguageIsContextDependent = true;
- cmListFileBacktrace lfbt;
- this->Makefile->GetBacktrace(lfbt);
+ cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
cmGeneratorExpression ge(lfbt);
cmsys::auto_ptr<cmCompiledGeneratorExpression> cge = ge.Parse(srcFiles);
cge->SetEvaluateForBuildsystem(true);
@@ -948,8 +947,7 @@ void cmTarget::AddSources(std::vector<std::string> const& srcs)
{
this->Internal->SourceFilesMap.clear();
this->LinkImplementationLanguageIsContextDependent = true;
- cmListFileBacktrace lfbt;
- this->Makefile->GetBacktrace(lfbt);
+ cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
cmGeneratorExpression ge(lfbt);
cmsys::auto_ptr<cmCompiledGeneratorExpression> cge = ge.Parse(srcFiles);
cge->SetEvaluateForBuildsystem(true);
@@ -1084,8 +1082,7 @@ cmSourceFile* cmTarget::AddSource(const std::string& src)
{
this->Internal->SourceFilesMap.clear();
this->LinkImplementationLanguageIsContextDependent = true;
- cmListFileBacktrace lfbt;
- this->Makefile->GetBacktrace(lfbt);
+ cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
cmGeneratorExpression ge(lfbt);
cmsys::auto_ptr<cmCompiledGeneratorExpression> cge = ge.Parse(src);
cge->SetEvaluateForBuildsystem(true);
@@ -1306,8 +1303,7 @@ bool cmTarget::PushTLLCommandTrace(TLLSignature signature)
ret = false;
}
}
- cmListFileBacktrace lfbt;
- this->Makefile->GetBacktrace(lfbt);
+ cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
this->TLLCommands.push_back(std::make_pair(signature, lfbt));
return ret;
}
@@ -1796,8 +1792,7 @@ void cmTarget::SetProperty(const std::string& prop, const char* value)
}
if(prop == "INCLUDE_DIRECTORIES")
{
- cmListFileBacktrace lfbt;
- this->Makefile->GetBacktrace(lfbt);
+ cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
cmGeneratorExpression ge(lfbt);
deleteAndClear(this->Internal->IncludeDirectoriesEntries);
cmsys::auto_ptr<cmCompiledGeneratorExpression> cge = ge.Parse(value);
@@ -1807,8 +1802,7 @@ void cmTarget::SetProperty(const std::string& prop, const char* value)
}
if(prop == "COMPILE_OPTIONS")
{
- cmListFileBacktrace lfbt;
- this->Makefile->GetBacktrace(lfbt);
+ cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
cmGeneratorExpression ge(lfbt);
deleteAndClear(this->Internal->CompileOptionsEntries);
cmsys::auto_ptr<cmCompiledGeneratorExpression> cge = ge.Parse(value);
@@ -1818,8 +1812,7 @@ void cmTarget::SetProperty(const std::string& prop, const char* value)
}
if(prop == "COMPILE_FEATURES")
{
- cmListFileBacktrace lfbt;
- this->Makefile->GetBacktrace(lfbt);
+ cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
cmGeneratorExpression ge(lfbt);
deleteAndClear(this->Internal->CompileFeaturesEntries);
cmsys::auto_ptr<cmCompiledGeneratorExpression> cge = ge.Parse(value);
@@ -1829,8 +1822,7 @@ void cmTarget::SetProperty(const std::string& prop, const char* value)
}
if(prop == "COMPILE_DEFINITIONS")
{
- cmListFileBacktrace lfbt;
- this->Makefile->GetBacktrace(lfbt);
+ cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
cmGeneratorExpression ge(lfbt);
deleteAndClear(this->Internal->CompileDefinitionsEntries);
cmsys::auto_ptr<cmCompiledGeneratorExpression> cge = ge.Parse(value);
@@ -1849,8 +1841,7 @@ void cmTarget::SetProperty(const std::string& prop, const char* value)
if (prop == "LINK_LIBRARIES")
{
this->Internal->LinkImplementationPropertyEntries.clear();
- cmListFileBacktrace lfbt;
- this->Makefile->GetBacktrace(lfbt);
+ cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
cmValueWithOrigin entry(value, lfbt);
this->Internal->LinkImplementationPropertyEntries.push_back(entry);
return;
@@ -1866,8 +1857,7 @@ void cmTarget::SetProperty(const std::string& prop, const char* value)
return;
}
this->Internal->SourceFilesMap.clear();
- cmListFileBacktrace lfbt;
- this->Makefile->GetBacktrace(lfbt);
+ cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
cmGeneratorExpression ge(lfbt);
this->Internal->SourceEntries.clear();
cmsys::auto_ptr<cmCompiledGeneratorExpression> cge = ge.Parse(value);
@@ -1901,8 +1891,7 @@ void cmTarget::AppendProperty(const std::string& prop, const char* value,
}
if(prop == "INCLUDE_DIRECTORIES")
{
- cmListFileBacktrace lfbt;
- this->Makefile->GetBacktrace(lfbt);
+ cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
cmGeneratorExpression ge(lfbt);
this->Internal->IncludeDirectoriesEntries.push_back(
new cmTargetInternals::TargetPropertyEntry(ge.Parse(value)));
@@ -1910,8 +1899,7 @@ void cmTarget::AppendProperty(const std::string& prop, const char* value,
}
if(prop == "COMPILE_OPTIONS")
{
- cmListFileBacktrace lfbt;
- this->Makefile->GetBacktrace(lfbt);
+ cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
cmGeneratorExpression ge(lfbt);
this->Internal->CompileOptionsEntries.push_back(
new cmTargetInternals::TargetPropertyEntry(ge.Parse(value)));
@@ -1919,8 +1907,7 @@ void cmTarget::AppendProperty(const std::string& prop, const char* value,
}
if(prop == "COMPILE_FEATURES")
{
- cmListFileBacktrace lfbt;
- this->Makefile->GetBacktrace(lfbt);
+ cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
cmGeneratorExpression ge(lfbt);
this->Internal->CompileFeaturesEntries.push_back(
new cmTargetInternals::TargetPropertyEntry(ge.Parse(value)));
@@ -1928,8 +1915,7 @@ void cmTarget::AppendProperty(const std::string& prop, const char* value,
}
if(prop == "COMPILE_DEFINITIONS")
{
- cmListFileBacktrace lfbt;
- this->Makefile->GetBacktrace(lfbt);
+ cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
cmGeneratorExpression ge(lfbt);
this->Internal->CompileDefinitionsEntries.push_back(
new cmTargetInternals::TargetPropertyEntry(ge.Parse(value)));
@@ -1945,8 +1931,7 @@ void cmTarget::AppendProperty(const std::string& prop, const char* value,
}
if (prop == "LINK_LIBRARIES")
{
- cmListFileBacktrace lfbt;
- this->Makefile->GetBacktrace(lfbt);
+ cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
cmValueWithOrigin entry(value, lfbt);
this->Internal->LinkImplementationPropertyEntries.push_back(entry);
return;
@@ -1962,8 +1947,7 @@ void cmTarget::AppendProperty(const std::string& prop, const char* value,
return;
}
this->Internal->SourceFilesMap.clear();
- cmListFileBacktrace lfbt;
- this->Makefile->GetBacktrace(lfbt);
+ cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
cmGeneratorExpression ge(lfbt);
cmsys::auto_ptr<cmCompiledGeneratorExpression> cge = ge.Parse(value);
this->Internal->SourceEntries.push_back(
diff --git a/Source/cmTargetCompileOptionsCommand.cxx b/Source/cmTargetCompileOptionsCommand.cxx
index 18499fd..3fb76a6 100644
--- a/Source/cmTargetCompileOptionsCommand.cxx
+++ b/Source/cmTargetCompileOptionsCommand.cxx
@@ -55,8 +55,7 @@ bool cmTargetCompileOptionsCommand
::HandleDirectContent(cmTarget *tgt, const std::vector<std::string> &content,
bool, bool)
{
- cmListFileBacktrace lfbt;
- this->Makefile->GetBacktrace(lfbt);
+ cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
cmValueWithOrigin entry(this->Join(content), lfbt);
tgt->InsertCompileOption(entry);
return true;
diff --git a/Source/cmTargetIncludeDirectoriesCommand.cxx b/Source/cmTargetIncludeDirectoriesCommand.cxx
index caec7eb..e9f0e04 100644
--- a/Source/cmTargetIncludeDirectoriesCommand.cxx
+++ b/Source/cmTargetIncludeDirectoriesCommand.cxx
@@ -70,8 +70,7 @@ bool cmTargetIncludeDirectoriesCommand
::HandleDirectContent(cmTarget *tgt, const std::vector<std::string> &content,
bool prepend, bool system)
{
- cmListFileBacktrace lfbt;
- this->Makefile->GetBacktrace(lfbt);
+ cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
cmValueWithOrigin entry(this->Join(content), lfbt);
tgt->InsertInclude(entry, prepend);
if (system)
diff --git a/Source/cmTest.cxx b/Source/cmTest.cxx
index 28a7bb1..f0288b2 100644
--- a/Source/cmTest.cxx
+++ b/Source/cmTest.cxx
@@ -22,7 +22,7 @@ cmTest::cmTest(cmMakefile* mf)
this->OldStyle = true;
this->Properties.SetCMakeInstance(mf->GetCMakeInstance());
this->Backtrace = new cmListFileBacktrace;
- this->Makefile->GetBacktrace(*this->Backtrace);
+ *this->Backtrace = this->Makefile->GetBacktrace();
}
//----------------------------------------------------------------------------