summaryrefslogtreecommitdiffstats
path: root/Source/cmState.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmState.h')
-rw-r--r--Source/cmState.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/Source/cmState.h b/Source/cmState.h
index 0d5300f..07aa2a5 100644
--- a/Source/cmState.h
+++ b/Source/cmState.h
@@ -17,6 +17,7 @@
#include "cmPropertyMap.h"
#include "cmLinkedTree.h"
#include "cmAlgorithms.h"
+#include "cmPolicies.h"
class cmake;
class cmCommand;
@@ -24,6 +25,7 @@ class cmCommand;
class cmState
{
struct SnapshotDataType;
+ struct PolicyStackEntry;
struct BuildsystemDirectoryStateType;
typedef cmLinkedTree<SnapshotDataType>::iterator PositionType;
friend class Snapshot;
@@ -37,7 +39,8 @@ public:
FunctionCallType,
MacroCallType,
CallStackType,
- InlineListFileType
+ InlineListFileType,
+ PolicyScopeType
};
class Directory;
@@ -56,9 +59,17 @@ public:
bool IsValid() const;
Snapshot GetBuildsystemDirectoryParent() const;
Snapshot GetCallStackParent() const;
+ SnapshotType GetType() const;
void InitializeFromParent();
+ void SetPolicy(cmPolicies::PolicyID id, cmPolicies::PolicyStatus status);
+ cmPolicies::PolicyStatus GetPolicy(cmPolicies::PolicyID id) const;
+ bool HasDefinedPolicyCMP0011();
+ void PushPolicy(cmPolicies::PolicyMap entry, bool weak);
+ bool PopPolicy();
+ bool CanPopPolicyScope();
+
cmState* GetState() const;
Directory GetDirectory() const;
@@ -147,6 +158,7 @@ public:
const std::string& entryPointCommand,
long entryPointLine,
std::string const& fileName);
+ Snapshot CreatePolicyScopeSnapshot(Snapshot originSnapshot);
Snapshot Pop(Snapshot originSnapshot);
enum CacheEntryType{ BOOL=0, PATH, FILEPATH, STRING, INTERNAL,STATIC,
@@ -254,6 +266,7 @@ private:
cmLinkedTree<std::string> ExecutionListFiles;
+ cmLinkedTree<PolicyStackEntry> PolicyStack;
cmLinkedTree<SnapshotDataType> SnapshotData;
std::vector<std::string> SourceDirectoryComponents;