summaryrefslogtreecommitdiffstats
path: root/Source/cmState.h
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2015-04-13 15:45:02 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2015-04-13 15:45:02 (GMT)
commit62c5e6f1a19df0043a0e9aaba6cf7247f76a5cc3 (patch)
tree8ca950377efbfd2cf90c7fe61eb7ff566a121d5e /Source/cmState.h
parent92d61798937e42ecb7ae3d1be8b2b4ab7ce15fcb (diff)
parentf081c5bdddcfcaaf5bee7b918fe5c7ff01faae35 (diff)
downloadCMake-62c5e6f1a19df0043a0e9aaba6cf7247f76a5cc3.zip
CMake-62c5e6f1a19df0043a0e9aaba6cf7247f76a5cc3.tar.gz
CMake-62c5e6f1a19df0043a0e9aaba6cf7247f76a5cc3.tar.bz2
Merge topic 'introduce-cmState'
f081c5bd cmState: Move CacheEntryType enum from cmCacheManager. f71fdf0e cmMakefile: Remove unused CacheManager accessor. ff7169a0 Port to cmState. a6b1ad13 Introduce cmState class.
Diffstat (limited to 'Source/cmState.h')
-rw-r--r--Source/cmState.h62
1 files changed, 62 insertions, 0 deletions
diff --git a/Source/cmState.h b/Source/cmState.h
new file mode 100644
index 0000000..f2e8ef5
--- /dev/null
+++ b/Source/cmState.h
@@ -0,0 +1,62 @@
+/*============================================================================
+ CMake - Cross Platform Makefile Generator
+ Copyright 2015 Stephen Kelly <steveire@gmail.com>
+
+ Distributed under the OSI-approved BSD License (the "License");
+ see accompanying file Copyright.txt for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even the
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the License for more information.
+============================================================================*/
+#ifndef cmState_h
+#define cmState_h
+
+#include "cmStandardIncludes.h"
+
+class cmake;
+
+class cmState
+{
+public:
+ cmState(cmake* cm);
+
+ enum CacheEntryType{ BOOL=0, PATH, FILEPATH, STRING, INTERNAL,STATIC,
+ UNINITIALIZED };
+ static CacheEntryType StringToCacheEntryType(const char*);
+ static const char* CacheEntryTypeToString(CacheEntryType);
+ static bool IsCacheEntryType(std::string const& key);
+
+ std::vector<std::string> GetCacheEntryKeys() const;
+ const char* GetCacheEntryValue(std::string const& key) const;
+ const char* GetInitializedCacheValue(std::string const& key) const;
+ CacheEntryType GetCacheEntryType(std::string const& key) const;
+ void SetCacheEntryValue(std::string const& key, std::string const& value);
+ void SetCacheValue(std::string const& key, std::string const& value);
+
+ void AddCacheEntry(const std::string& key, const char* value,
+ const char* helpString, CacheEntryType type);
+ void RemoveCacheEntry(std::string const& key);
+
+ void SetCacheEntryProperty(std::string const& key,
+ std::string const& propertyName,
+ std::string const& value);
+ void SetCacheEntryBoolProperty(std::string const& key,
+ std::string const& propertyName,
+ bool value);
+ const char* GetCacheEntryProperty(std::string const& key,
+ std::string const& propertyName);
+ bool GetCacheEntryPropertyAsBool(std::string const& key,
+ std::string const& propertyName);
+ void AppendCacheEntryProperty(std::string const& key,
+ const std::string& property,
+ const std::string& value,
+ bool asString = false);
+ void RemoveCacheEntryProperty(std::string const& key,
+ std::string const& propertyName);
+
+private:
+ cmake* CMakeInstance;
+};
+
+#endif