From ac14b5d2eb995f0cb1cfc1acca9d06ec02cff7d7 Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 22 Jan 2009 10:57:09 -0500 Subject: [PATCH] ENH: Make policy push/pop methods private This makes cmMakefile::PushPolicy and cmMakefile::PopPolicy private so that any outside place that uses them needs to use the PolicyPushPop helper in an automatic variable. We grant an exception to cmCMakePolicyCommand so it can implement cmake_policy(PUSH) and cmake_policy(POP). --- Source/cmMakefile.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h index fb1e1e196c..48dc768f5e 100644 --- a/Source/cmMakefile.h +++ b/Source/cmMakefile.h @@ -44,6 +44,7 @@ class cmTest; class cmVariableWatch; class cmake; class cmMakefileCall; +class cmCMakePolicyCommand; /** \class cmMakefile * \brief Process the input CMakeLists.txt file. @@ -341,8 +342,6 @@ public: bool SetPolicy(cmPolicies::PolicyID id, cmPolicies::PolicyStatus status); bool SetPolicy(const char *id, cmPolicies::PolicyStatus status); cmPolicies::PolicyStatus GetPolicyStatus(cmPolicies::PolicyID id); - bool PushPolicy(); - bool PopPolicy(bool reportError = true); bool SetPolicyVersion(const char *version); //@} @@ -941,7 +940,12 @@ private: cmTarget* FindBasicTarget(const char* name); std::vector ImportedTargetsOwned; std::map ImportedTargets; - + + // Internal policy stack management. + bool PushPolicy(); + bool PopPolicy(bool reportError = true); + friend class cmCMakePolicyCommand; + // stack of policy settings struct PolicyStackEntry: public cmPolicies::PolicyMap {