ENH: DIsplay the list file stack when displaying errors

This commit is contained in:
Andy Cedilnik 2006-06-22 15:31:19 -04:00
parent 847c3a5849
commit 99f4edb4e4
2 changed files with 24 additions and 3 deletions

View File

@ -267,7 +267,8 @@ bool cmMakefile::ExecuteCommand(const cmListFileFunction& lff)
cmOStringStream error;
error << "Error in cmake code at\n"
<< lff.FilePath << ":" << lff.Line << ":\n"
<< rm->GetError();
<< rm->GetError() << std::endl
<< "Current CMake stack: " << this->GetListFileStack().c_str();
cmSystemTools::Error(error.str().c_str());
return false;
}
@ -283,7 +284,8 @@ bool cmMakefile::ExecuteCommand(const cmListFileFunction& lff)
cmOStringStream error;
error << "Error in cmake code at\n"
<< lff.FilePath << ":" << lff.Line << ":\n"
<< usedCommand->GetError();
<< usedCommand->GetError() << std::endl
<< "Current CMake stack: " << this->GetListFileStack().c_str();
cmSystemTools::Error(error.str().c_str());
result = false;
if ( this->GetCMakeInstance()->GetScriptMode() )
@ -2743,3 +2745,17 @@ std::vector<cmTest*> *cmMakefile::GetTests()
return &this->Tests;
}
std::string cmMakefile::GetListFileStack()
{
std::string tmp;
for (std::deque<cmStdString>::iterator i = this->ListFileStack.begin();
i != this->ListFileStack.end(); ++i)
{
if (i != this->ListFileStack.begin())
{
tmp += ";";
}
tmp += *i;
}
return tmp;
}

View File

@ -538,7 +538,12 @@ public:
///! When the file changes cmake will be re-run from the build system.
void AddCMakeDependFile(const char* file)
{ this->ListFiles.push_back(file);}
/**
* Get the list file stack as a string
*/
std::string GetListFileStack();
/**
* Get the vector of files created by this makefile
*/