summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefile.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmMakefile.cxx')
-rw-r--r--Source/cmMakefile.cxx31
1 files changed, 18 insertions, 13 deletions
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 645de37..c9a9238 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -562,6 +562,11 @@ bool cmMakefile::ReadListFile(const char* filename_in,
// add this list file to the list of dependencies
this->ListFiles.push_back( filenametoread);
bool endScopeNicely = true;
+
+ // Save the current policy stack depth.
+ size_t const policy_depth = this->PolicyStack.size();
+
+ // Run the parsed commands.
const size_t numberFunctions = cacheFile.Functions.size();
for(size_t i =0; i < numberFunctions; ++i)
{
@@ -576,6 +581,17 @@ bool cmMakefile::ReadListFile(const char* filename_in,
}
}
+ // Restore policy stack depth.
+ while(this->PolicyStack.size() > policy_depth)
+ {
+ if(endScopeNicely)
+ {
+ this->IssueMessage(cmake::FATAL_ERROR,
+ "cmake_policy PUSH without matching POP");
+ }
+ this->PopPolicy(false);
+ }
+
// send scope ended to and function blockers
if (endScopeNicely)
{
@@ -597,7 +613,7 @@ bool cmMakefile::ReadListFile(const char* filename_in,
// some extra checks.
if(this->ListFileStack.size() == 1)
{
- this->EnforceDirectoryLevelRules(endScopeNicely);
+ this->EnforceDirectoryLevelRules();
}
this->AddDefinition("CMAKE_PARENT_LIST_FILE", currentParentFile.c_str());
@@ -610,19 +626,8 @@ bool cmMakefile::ReadListFile(const char* filename_in,
}
//----------------------------------------------------------------------------
-void cmMakefile::EnforceDirectoryLevelRules(bool endScopeNicely)
+void cmMakefile::EnforceDirectoryLevelRules()
{
- // Enforce policy stack depth.
- while(this->PolicyStack.size() > 1)
- {
- if(endScopeNicely)
- {
- this->IssueMessage(cmake::FATAL_ERROR,
- "cmake_policy PUSH without matching POP");
- }
- this->PopPolicy(false);
- }
-
// Diagnose a violation of CMP0000 if necessary.
if(this->CheckCMP0000)
{