summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/cmMakefile.cxx25
1 files changed, 15 insertions, 10 deletions
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index a698b6a..e8a6eb9 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -446,10 +446,12 @@ bool cmMakefile::ReadListFile(const char* filename_in,
// push the listfile onto the stack
this->ListFileStack.push_back(filenametoread);
-
+
cmListFile cacheFile;
if( !cacheFile.ParseFile(filenametoread, requireProjectCommand) )
{
+ // pop the listfile off the stack
+ this->ListFileStack.pop_back();
this->AddDefinition("CMAKE_PARENT_LIST_FILE", currentParentFile.c_str());
this->AddDefinition("CMAKE_CURRENT_LIST_FILE", currentFile.c_str());
return false;
@@ -2753,17 +2755,20 @@ std::vector<cmTest*> *cmMakefile::GetTests()
std::string cmMakefile::GetListFileStack()
{
- std::string tmp;
- for (std::deque<cmStdString>::iterator i = this->ListFileStack.begin();
- i != this->ListFileStack.end(); ++i)
+ cmOStringStream tmp;
+ unsigned int depth = this->ListFileStack.size();
+ std::deque<cmStdString>::iterator it = this->ListFileStack.end();
+ do
{
- if (i != this->ListFileStack.begin())
- {
- tmp += ";";
- }
- tmp += *i;
+ --it;
+ tmp << "\n[";
+ tmp << depth;
+ tmp << "]\t";
+ tmp << *it;
+ depth--;
}
- return tmp;
+ while (it != this->ListFileStack.begin());
+ return tmp.str();
}
// define properties