summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2016-06-13 14:03:05 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2016-06-13 14:03:05 (GMT)
commit473634eb1cc4f664c8b7cdc12a103828560c225f (patch)
tree00970c12021ddca79336e406cdf8ee98b70a81d0
parent4e66ca1952c0ba9dfba6050f83f67c90884c8492 (diff)
parent63c0e92c9395083a61fe31cd89bee7e3814f10e8 (diff)
downloadCMake-473634eb1cc4f664c8b7cdc12a103828560c225f.zip
CMake-473634eb1cc4f664c8b7cdc12a103828560c225f.tar.gz
CMake-473634eb1cc4f664c8b7cdc12a103828560c225f.tar.bz2
Merge topic 'expose-cache-properties'
63c0e92c cmState: Expose list of properties of values in the cache 6eee2463 cmCacheEntry: Retrieve all properties of cache entries 120899c6 cmPropertyList: Add a way to retrieve all properties 7066218e cmake: Kill cmake::CacheManager and its getter
-rw-r--r--Source/cmCacheManager.cxx10
-rw-r--r--Source/cmCacheManager.h2
-rw-r--r--Source/cmPropertyMap.cxx12
-rw-r--r--Source/cmPropertyMap.h2
-rw-r--r--Source/cmState.cxx8
-rw-r--r--Source/cmState.h1
-rw-r--r--Source/cmake.h4
7 files changed, 35 insertions, 4 deletions
diff --git a/Source/cmCacheManager.cxx b/Source/cmCacheManager.cxx
index 9adfdaf..bcef3c8 100644
--- a/Source/cmCacheManager.cxx
+++ b/Source/cmCacheManager.cxx
@@ -540,6 +540,11 @@ void cmCacheManager::CacheIterator::Next()
}
}
+std::vector<std::string> cmCacheManager::CacheIterator::GetPropertyList() const
+{
+ return this->GetEntry().GetPropertyList();
+}
+
void cmCacheManager::CacheIterator::SetValue(const char* value)
{
if (this->IsAtEnd()) {
@@ -559,6 +564,11 @@ bool cmCacheManager::CacheIterator::GetValueAsBool() const
return cmSystemTools::IsOn(this->GetEntry().Value.c_str());
}
+std::vector<std::string> cmCacheManager::CacheEntry::GetPropertyList() const
+{
+ return this->Properties.GetPropertyList();
+}
+
const char* cmCacheManager::CacheEntry::GetProperty(
const std::string& prop) const
{
diff --git a/Source/cmCacheManager.h b/Source/cmCacheManager.h
index e9b80cb..153e957 100644
--- a/Source/cmCacheManager.h
+++ b/Source/cmCacheManager.h
@@ -38,6 +38,7 @@ private:
std::string Value;
cmState::CacheEntryType Type;
cmPropertyMap Properties;
+ std::vector<std::string> GetPropertyList() const;
const char* GetProperty(const std::string&) const;
void SetProperty(const std::string& property, const char* value);
void AppendProperty(const std::string& property, const char* value,
@@ -60,6 +61,7 @@ public:
bool IsAtEnd() const;
void Next();
std::string GetName() const { return this->Position->first; }
+ std::vector<std::string> GetPropertyList() const;
const char* GetProperty(const std::string&) const;
bool GetPropertyAsBool(const std::string&) const;
bool PropertyExists(const std::string&) const;
diff --git a/Source/cmPropertyMap.cxx b/Source/cmPropertyMap.cxx
index 74e04da..de1281e 100644
--- a/Source/cmPropertyMap.cxx
+++ b/Source/cmPropertyMap.cxx
@@ -15,6 +15,7 @@
#include "cmSystemTools.h"
#include "cmake.h"
+#include <algorithm>
#include <assert.h>
cmProperty* cmPropertyMap::GetOrCreateProperty(const std::string& name)
@@ -29,6 +30,17 @@ cmProperty* cmPropertyMap::GetOrCreateProperty(const std::string& name)
return prop;
}
+std::vector<std::string> cmPropertyMap::GetPropertyList() const
+{
+ std::vector<std::string> keyList;
+ for (cmPropertyMap::const_iterator i = this->begin(), e = this->end();
+ i != e; ++i) {
+ keyList.push_back(i->first);
+ }
+ std::sort(keyList.begin(), keyList.end());
+ return keyList;
+}
+
void cmPropertyMap::SetProperty(const std::string& name, const char* value)
{
if (!value) {
diff --git a/Source/cmPropertyMap.h b/Source/cmPropertyMap.h
index 4e98750..6dc7bfb 100644
--- a/Source/cmPropertyMap.h
+++ b/Source/cmPropertyMap.h
@@ -19,6 +19,8 @@ class cmPropertyMap : public std::map<std::string, cmProperty>
public:
cmProperty* GetOrCreateProperty(const std::string& name);
+ std::vector<std::string> GetPropertyList() const;
+
void SetProperty(const std::string& name, const char* value);
void AppendProperty(const std::string& name, const char* value,
diff --git a/Source/cmState.cxx b/Source/cmState.cxx
index 04f07ce..d2cfaba 100644
--- a/Source/cmState.cxx
+++ b/Source/cmState.cxx
@@ -246,6 +246,14 @@ void cmState::SetCacheEntryBoolProperty(std::string const& key,
it.SetProperty(propertyName, value);
}
+std::vector<std::string> cmState::GetCacheEntryPropertyList(
+ const std::string& key)
+{
+ cmCacheManager::CacheIterator it =
+ this->CacheManager->GetCacheIterator(key.c_str());
+ return it.GetPropertyList();
+}
+
const char* cmState::GetCacheEntryProperty(std::string const& key,
std::string const& propertyName)
{
diff --git a/Source/cmState.h b/Source/cmState.h
index 18c45b8..935faec 100644
--- a/Source/cmState.h
+++ b/Source/cmState.h
@@ -247,6 +247,7 @@ public:
std::string const& value);
void SetCacheEntryBoolProperty(std::string const& key,
std::string const& propertyName, bool value);
+ std::vector<std::string> GetCacheEntryPropertyList(std::string const& key);
const char* GetCacheEntryProperty(std::string const& key,
std::string const& propertyName);
bool GetCacheEntryPropertyAsBool(std::string const& key,
diff --git a/Source/cmake.h b/Source/cmake.h
index b1e2448..c5d7cbb 100644
--- a/Source/cmake.h
+++ b/Source/cmake.h
@@ -209,9 +209,6 @@ public:
return this->GeneratorToolset;
}
- ///! get the cmCachemManager used by this invocation of cmake
- cmCacheManager* GetCacheManager() { return this->CacheManager; }
-
const std::vector<std::string>& GetSourceExtensions() const
{
return this->SourceFileExtensions;
@@ -423,7 +420,6 @@ protected:
CreateExtraGeneratorFunctionType newFunction);
cmGlobalGenerator* GlobalGenerator;
- cmCacheManager* CacheManager;
std::map<std::string, DiagLevel> DiagLevels;
std::string GeneratorPlatform;
std::string GeneratorToolset;