From 826b6e68184759cda496f0073a8f59b2155cfdaf Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Sun, 21 Jun 2015 19:51:46 +0200 Subject: [PATCH] cmMakefile: Move IncludeScope to ReadDependentFile. Add replacement simple push/pop in the other two callers of ReadListFile. --- Source/cmMakefile.cxx | 25 +++++++++++++++---------- Source/cmMakefile.h | 1 - 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index 6fee95caae..87d6e3c5ac 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -532,8 +532,10 @@ bool cmMakefile::ProcessBuildsystemFile(const char* listfile) { this->AddDefinition("CMAKE_PARENT_LIST_FILE", listfile); std::string curSrc = this->GetCurrentSourceDirectory(); - bool result = this->ReadListFile(listfile, true, + this->PushPolicyBarrier(); + bool result = this->ReadListFile(listfile, curSrc == this->GetHomeDirectory()); + this->PopPolicyBarrier(!cmSystemTools::GetFatalErrorOccured()); this->EnforceDirectoryLevelRules(); return result; } @@ -542,24 +544,31 @@ bool cmMakefile::ReadDependentFile(const char* listfile, bool noPolicyScope) { this->AddDefinition("CMAKE_PARENT_LIST_FILE", this->GetDefinition("CMAKE_CURRENT_LIST_FILE")); - bool result = this->ReadListFile(listfile, noPolicyScope, false); + bool result = false; + { + IncludeScope incScope(this, noPolicyScope); + result = this->ReadListFile(listfile, false); + if(cmSystemTools::GetFatalErrorOccured()) + { + incScope.Quiet(); + } + } this->ListFileStack.pop_back(); return result; } bool cmMakefile::ReadListFile(const char* listfile) { - bool result = this->ReadListFile(listfile, true, false); + this->PushPolicyBarrier(); + bool result = this->ReadListFile(listfile, false); + this->PopPolicyBarrier(!cmSystemTools::GetFatalErrorOccured()); this->ListFileStack.pop_back(); return result; } bool cmMakefile::ReadListFile(const char* listfile, - bool noPolicyScope, bool requireProjectCommand) { - IncludeScope incScope(this, noPolicyScope); - std::string filenametoread = cmSystemTools::CollapseFullPath(listfile, this->GetCurrentSourceDirectory()); @@ -590,10 +599,6 @@ bool cmMakefile::ReadListFile(const char* listfile, this->MarkVariableAsUsed("CMAKE_CURRENT_LIST_DIR"); this->ReadListFileInternal(listFile); - if(cmSystemTools::GetFatalErrorOccured()) - { - incScope.Quiet(); - } this->CheckForUnusedVariables(); this->AddDefinition("CMAKE_PARENT_LIST_FILE", currentParentFile.c_str()); diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h index 2db7c93f9d..9896d5b44b 100644 --- a/Source/cmMakefile.h +++ b/Source/cmMakefile.h @@ -915,7 +915,6 @@ private: cmState::Snapshot StateSnapshot; bool ReadListFile(const char* listfile, - bool noPolicyScope, bool requireProjectCommand); void ReadListFileInternal(cmListFile const& listFile);