Merge topic 'remove-ListFileStack'

640fc5b5 cmMakefile: Remove unused ListFileStack.
54cc0c0e cmMakefile: Port some users of ListFileStack to cmState.
e77c4666 cmMakefile: Remove obsolete condition.
8e7d3030 cmMakefile: Simplify setting of current snapshot.
6083ec9a cmMakefile: Implement LISTFILE_STACK property in terms of cmState.
647b533b cmMakefile: Implement FormatListFileStack in terms of cmState.
This commit is contained in:
Brad King 2015-07-21 09:22:10 -04:00 committed by CMake Topic Stage
commit b953d526d1
2 changed files with 25 additions and 22 deletions

View File

@ -260,7 +260,7 @@ void cmMakefile::IssueMessage(cmake::MessageType t,
cmListFileContext lfc; cmListFileContext lfc;
// We are not currently executing a command. Add whatever context // We are not currently executing a command. Add whatever context
// information we have. // information we have.
lfc.FilePath = this->ListFileStack.back(); lfc.FilePath = this->GetExecutionFilePath();
if(!this->GetCMakeInstance()->GetIsInTryCompile()) if(!this->GetCMakeInstance()->GetIsInTryCompile())
{ {
@ -455,7 +455,6 @@ cmMakefile::IncludeScope::IncludeScope(cmMakefile* mf,
// The included file cannot pop our policy scope. // The included file cannot pop our policy scope.
this->Makefile->PushPolicyBarrier(); this->Makefile->PushPolicyBarrier();
this->Makefile->ListFileStack.push_back(filenametoread);
this->Makefile->PushFunctionBlockerBarrier(); this->Makefile->PushFunctionBlockerBarrier();
this->Makefile->StateSnapshot = this->Makefile->StateSnapshot =
@ -498,7 +497,6 @@ cmMakefile::IncludeScope::~IncludeScope()
this->EnforceCMP0011(); this->EnforceCMP0011();
} }
} }
this->Makefile->ListFileStack.pop_back();
} }
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
@ -514,7 +512,7 @@ void cmMakefile::IncludeScope::EnforceCMP0011()
std::ostringstream w; std::ostringstream w;
w << cmPolicies::GetPolicyWarning(cmPolicies::CMP0011) << "\n" w << cmPolicies::GetPolicyWarning(cmPolicies::CMP0011) << "\n"
<< "The included script\n " << "The included script\n "
<< this->Makefile->ListFileStack.back() << "\n" << this->Makefile->GetExecutionFilePath() << "\n"
<< "affects policy settings. " << "affects policy settings. "
<< "CMake is implying the NO_POLICY_SCOPE option for compatibility, " << "CMake is implying the NO_POLICY_SCOPE option for compatibility, "
<< "so the effects are applied to the including context."; << "so the effects are applied to the including context.";
@ -527,7 +525,7 @@ void cmMakefile::IncludeScope::EnforceCMP0011()
std::ostringstream e; std::ostringstream e;
e << cmPolicies::GetRequiredPolicyError(cmPolicies::CMP0011) << "\n" e << cmPolicies::GetRequiredPolicyError(cmPolicies::CMP0011) << "\n"
<< "The included script\n " << "The included script\n "
<< this->Makefile->ListFileStack.back() << "\n" << this->Makefile->GetExecutionFilePath() << "\n"
<< "affects policy settings, so it requires this policy to be set."; << "affects policy settings, so it requires this policy to be set.";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str()); this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
} }
@ -593,7 +591,6 @@ public:
ListFileScope(cmMakefile* mf, std::string const& filenametoread) ListFileScope(cmMakefile* mf, std::string const& filenametoread)
: Makefile(mf), ReportError(true) : Makefile(mf), ReportError(true)
{ {
this->Makefile->ListFileStack.push_back(filenametoread);
this->Makefile->PushPolicyBarrier(); this->Makefile->PushPolicyBarrier();
long line = 0; long line = 0;
@ -618,7 +615,6 @@ public:
this->Makefile->PopFunctionBlockerBarrier(this->ReportError); this->Makefile->PopFunctionBlockerBarrier(this->ReportError);
this->Makefile->PopPolicyBarrier(this->ReportError); this->Makefile->PopPolicyBarrier(this->ReportError);
this->Makefile->ListFileStack.pop_back();
} }
void Quiet() { this->ReportError = false; } void Quiet() { this->ReportError = false; }
@ -1707,15 +1703,13 @@ public:
this->Makefile->StateSnapshot.GetCurrentSourceDirectory(); this->Makefile->StateSnapshot.GetCurrentSourceDirectory();
currentStart += "/CMakeLists.txt"; currentStart += "/CMakeLists.txt";
this->Makefile->StateSnapshot.SetListFile(currentStart); this->Makefile->StateSnapshot.SetListFile(currentStart);
this->Makefile->ListFileStack.push_back(currentStart);
this->Makefile->PushPolicyBarrier(); this->Makefile->PushPolicyBarrier();
this->Makefile->PushFunctionBlockerBarrier(); this->Makefile->PushFunctionBlockerBarrier();
this->GG = mf->GetGlobalGenerator(); this->GG = mf->GetGlobalGenerator();
this->CurrentMakefile = this->GG->GetCurrentMakefile(); this->CurrentMakefile = this->GG->GetCurrentMakefile();
this->Snapshot = this->GG->GetCMakeInstance()->GetCurrentSnapshot(); this->Snapshot = this->GG->GetCMakeInstance()->GetCurrentSnapshot();
this->GG->GetCMakeInstance()->SetCurrentSnapshot( this->GG->GetCMakeInstance()->SetCurrentSnapshot(this->Snapshot);
this->GG->GetCMakeInstance()->GetCurrentSnapshot());
this->GG->SetCurrentMakefile(mf); this->GG->SetCurrentMakefile(mf);
#if defined(CMAKE_BUILD_WITH_CMAKE) #if defined(CMAKE_BUILD_WITH_CMAKE)
this->GG->GetFileLockPool().PushFileScope(); this->GG->GetFileLockPool().PushFileScope();
@ -3437,10 +3431,6 @@ bool cmMakefile::IsLoopBlock() const
std::string cmMakefile::GetExecutionFilePath() const std::string cmMakefile::GetExecutionFilePath() const
{ {
if (this->ContextStack.empty())
{
return std::string();
}
assert(this->StateSnapshot.IsValid()); assert(this->StateSnapshot.IsValid());
return this->StateSnapshot.GetExecutionListFile(); return this->StateSnapshot.GetExecutionListFile();
} }
@ -4282,7 +4272,15 @@ const char *cmMakefile::GetProperty(const std::string& prop,
} }
else if (prop == "LISTFILE_STACK") else if (prop == "LISTFILE_STACK")
{ {
output = cmJoin(this->ListFileStack, ";"); std::vector<std::string> listFiles;
cmState::Snapshot snp = this->StateSnapshot;
while (snp.IsValid())
{
listFiles.push_back(snp.GetExecutionListFile());
snp = snp.GetCallStackParent();
}
std::reverse(listFiles.begin(), listFiles.end());
output = cmJoin(listFiles, ";");
return output.c_str(); return output.c_str();
} }
else if ( prop == "CACHE_VARIABLES" ) else if ( prop == "CACHE_VARIABLES" )
@ -4439,14 +4437,22 @@ void cmMakefile::AddCMakeDependFilesFromUser()
std::string cmMakefile::FormatListFileStack() const std::string cmMakefile::FormatListFileStack() const
{ {
std::vector<std::string> listFiles;
cmState::Snapshot snp = this->StateSnapshot;
while (snp.IsValid())
{
listFiles.push_back(snp.GetExecutionListFile());
snp = snp.GetCallStackParent();
}
std::reverse(listFiles.begin(), listFiles.end());
std::ostringstream tmp; std::ostringstream tmp;
size_t depth = this->ListFileStack.size(); size_t depth = listFiles.size();
if (depth > 0) if (depth > 0)
{ {
std::vector<std::string>::const_iterator it = this->ListFileStack.end(); std::vector<std::string>::const_iterator it = listFiles.end();
do do
{ {
if (depth != this->ListFileStack.size()) if (depth != listFiles.size())
{ {
tmp << "\n "; tmp << "\n ";
} }
@ -4457,7 +4463,7 @@ std::string cmMakefile::FormatListFileStack() const
tmp << *it; tmp << *it;
depth--; depth--;
} }
while (it != this->ListFileStack.begin()); while (it != listFiles.begin());
} }
return tmp.str(); return tmp.str();
} }

View File

@ -934,9 +934,6 @@ private:
cmPropertyMap Properties; cmPropertyMap Properties;
// stack of list files being read
std::vector<std::string> ListFileStack;
std::vector<cmCommandContext const*> ContextStack; std::vector<cmCommandContext const*> ContextStack;
std::vector<cmExecutionStatus*> ExecutionStatusStack; std::vector<cmExecutionStatus*> ExecutionStatusStack;
friend class cmMakefileCall; friend class cmMakefileCall;