diff options
author | Brad King <brad.king@kitware.com> | 2015-04-13 15:45:02 (GMT) |
---|---|---|
committer | CMake Topic Stage <kwrobot@kitware.com> | 2015-04-13 15:45:02 (GMT) |
commit | 62c5e6f1a19df0043a0e9aaba6cf7247f76a5cc3 (patch) | |
tree | 8ca950377efbfd2cf90c7fe61eb7ff566a121d5e /Source/cmState.h | |
parent | 92d61798937e42ecb7ae3d1be8b2b4ab7ce15fcb (diff) | |
parent | f081c5bdddcfcaaf5bee7b918fe5c7ff01faae35 (diff) | |
download | CMake-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.h | 62 |
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 |