diff options
author | Stephen Kelly <steveire@gmail.com> | 2016-10-18 21:28:49 +0200 |
---|---|---|
committer | Stephen Kelly <steveire@gmail.com> | 2016-10-19 15:40:59 +0200 |
commit | e0a84904eb38e145c3a4d4e4ef5d7aceb3c2d196 (patch) | |
tree | 9a01a9e6da16eb6703de089b1ac4eab5c26b62d6 /Source/cmStatePrivate.h | |
parent | a91eaf387287a201d421e90d78bcae8836cc6042 (diff) | |
download | cmake-e0a84904eb38e145c3a4d4e4ef5d7aceb3c2d196.tar.gz |
cmState: Split auxiliary classes into separate files
Port dependents to the new locations as needed.
Leave behind a cmState.h include in cmListFileCache to reduce noise. It
is removed in a following commit.
Diffstat (limited to 'Source/cmStatePrivate.h')
-rw-r--r-- | Source/cmStatePrivate.h | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/Source/cmStatePrivate.h b/Source/cmStatePrivate.h new file mode 100644 index 0000000000..8daa3cf355 --- /dev/null +++ b/Source/cmStatePrivate.h @@ -0,0 +1,94 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ + +#ifndef cmStatePrivate_h +#define cmStatePrivate_h + +#include <cmConfigure.h> // IWYU pragma: keep + +#include <string> +#include <vector> + +#include "cmDefinitions.h" +#include "cmLinkedTree.h" +#include "cmListFileCache.h" +#include "cmPropertyMap.h" +#include "cmStateTypes.h" + +static const std::string cmPropertySentinal = std::string(); + +struct cmStateDetail::SnapshotDataType +{ + cmStateDetail::PositionType ScopeParent; + cmStateDetail::PositionType DirectoryParent; + cmLinkedTree<cmStateDetail::PolicyStackEntry>::iterator Policies; + cmLinkedTree<cmStateDetail::PolicyStackEntry>::iterator PolicyRoot; + cmLinkedTree<cmStateDetail::PolicyStackEntry>::iterator PolicyScope; + cmStateEnums::SnapshotType SnapshotType; + bool Keep; + cmLinkedTree<std::string>::iterator ExecutionListFile; + cmLinkedTree<cmStateDetail::BuildsystemDirectoryStateType>::iterator + BuildSystemDirectory; + cmLinkedTree<cmDefinitions>::iterator Vars; + cmLinkedTree<cmDefinitions>::iterator Root; + cmLinkedTree<cmDefinitions>::iterator Parent; + std::vector<std::string>::size_type IncludeDirectoryPosition; + std::vector<std::string>::size_type CompileDefinitionsPosition; + std::vector<std::string>::size_type CompileOptionsPosition; +}; + +struct cmStateDetail::PolicyStackEntry : public cmPolicies::PolicyMap +{ + typedef cmPolicies::PolicyMap derived; + PolicyStackEntry(bool w = false) + : derived() + , Weak(w) + { + } + PolicyStackEntry(derived const& d, bool w) + : derived(d) + , Weak(w) + { + } + PolicyStackEntry(PolicyStackEntry const& r) + : derived(r) + , Weak(r.Weak) + { + } + bool Weak; +}; + +struct cmStateDetail::BuildsystemDirectoryStateType +{ + cmStateDetail::PositionType DirectoryEnd; + + std::string Location; + std::string OutputLocation; + + // The top-most directories for relative path conversion. Both the + // source and destination location of a relative path conversion + // must be underneath one of these directories (both under source or + // both under binary) in order for the relative path to be evaluated + // safely by the build tools. + std::string RelativePathTopSource; + std::string RelativePathTopBinary; + + std::vector<std::string> IncludeDirectories; + std::vector<cmListFileBacktrace> IncludeDirectoryBacktraces; + + std::vector<std::string> CompileDefinitions; + std::vector<cmListFileBacktrace> CompileDefinitionsBacktraces; + + std::vector<std::string> CompileOptions; + std::vector<cmListFileBacktrace> CompileOptionsBacktraces; + + std::vector<std::string> NormalTargetNames; + + std::string ProjectName; + + cmPropertyMap Properties; + + std::vector<cmStateSnapshot> Children; +}; + +#endif |