summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefile.h
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2009-01-20 19:35:22 (GMT)
committerBrad King <brad.king@kitware.com>2009-01-20 19:35:22 (GMT)
commita541cac325715cd50f604ede864eba8edfbb2673 (patch)
treee8b4b8b2546c2b492e7442662effe0afdd00a70f /Source/cmMakefile.h
parent03c940aeb38c1456df336262d667b69304de0504 (diff)
downloadCMake-a541cac325715cd50f604ede864eba8edfbb2673.zip
CMake-a541cac325715cd50f604ede864eba8edfbb2673.tar.gz
CMake-a541cac325715cd50f604ede864eba8edfbb2673.tar.bz2
ENH: Improve response to bad if or elseif
Previously bad arguments to an if() or elseif() would cause some subsequent statements in the corresponding block to execute. This teaches CMake to stop processing commands with a fatal error. It also provides context to bad elseif() error messages.
Diffstat (limited to 'Source/cmMakefile.h')
-rw-r--r--Source/cmMakefile.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index 77843e8..6a09042 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -921,5 +921,24 @@ private:
void EnforceDirectoryLevelRules();
};
+//----------------------------------------------------------------------------
+// Helper class to make sure the call stack is valid.
+class cmMakefileCall
+{
+public:
+ cmMakefileCall(cmMakefile* mf,
+ cmListFileContext const& lfc,
+ cmExecutionStatus& status): Makefile(mf)
+ {
+ cmMakefile::CallStackEntry entry = {&lfc, &status};
+ this->Makefile->CallStack.push_back(entry);
+ }
+ ~cmMakefileCall()
+ {
+ this->Makefile->CallStack.pop_back();
+ }
+private:
+ cmMakefile* Makefile;
+};
#endif