BUG: fix cmake listfile stack: if a file could not be opened, remove it from
the stack (usually CMakeCInformation.cmake and CMakeCXXInformation.cmake which both put Linux-gcc.cmake on the stack without removing it again: INCLUDE(... OPTIONAL) ) STYLE: better readable output formatting of the listfile stack, now in the same order as in gdb or with include files Alex
This commit is contained in:
parent
c7873ad44a
commit
ef0b9ff2cc
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue