summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2015-07-18 16:59:18 (GMT)
committerStephen Kelly <steveire@gmail.com>2015-07-18 16:59:18 (GMT)
commitcbe3ee58ca568ede66ff04abb6b73ac39b092701 (patch)
tree1c556a4e9283c49fb5c20c45418b98855a6f61ce
parente7fbd489e0da88e2fd70aa039da4f4173ee24028 (diff)
downloadCMake-cbe3ee58ca568ede66ff04abb6b73ac39b092701.zip
CMake-cbe3ee58ca568ede66ff04abb6b73ac39b092701.tar.gz
CMake-cbe3ee58ca568ede66ff04abb6b73ac39b092701.tar.bz2
cmMakefile: Add a PropertyKeys accessor.
-rw-r--r--Source/cmGlobalVisualStudio7Generator.cxx16
-rw-r--r--Source/cmMakefile.cxx12
-rw-r--r--Source/cmMakefile.h1
3 files changed, 22 insertions, 7 deletions
diff --git a/Source/cmGlobalVisualStudio7Generator.cxx b/Source/cmGlobalVisualStudio7Generator.cxx
index 1674e98..f8d882c 100644
--- a/Source/cmGlobalVisualStudio7Generator.cxx
+++ b/Source/cmGlobalVisualStudio7Generator.cxx
@@ -814,14 +814,15 @@ void cmGlobalVisualStudio7Generator
{
bool extensibilityGlobalsOverridden = false;
bool extensibilityAddInsOverridden = false;
- const cmPropertyMap& props = root->GetMakefile()->GetProperties();
- for(cmPropertyMap::const_iterator itProp = props.begin();
- itProp != props.end(); ++itProp)
+ const std::vector<std::string> propKeys =
+ root->GetMakefile()->GetPropertyKeys();
+ for(std::vector<std::string>::const_iterator it = propKeys.begin();
+ it != propKeys.end(); ++it)
{
- if(itProp->first.find("VS_GLOBAL_SECTION_") == 0)
+ if(it->find("VS_GLOBAL_SECTION_") == 0)
{
std::string sectionType;
- std::string name = itProp->first.substr(18);
+ std::string name = it->substr(18);
if(name.find("PRE_") == 0)
{
name = name.substr(4);
@@ -842,8 +843,9 @@ void cmGlobalVisualStudio7Generator
extensibilityAddInsOverridden = true;
fout << "\tGlobalSection(" << name << ") = " << sectionType << "\n";
std::vector<std::string> keyValuePairs;
- cmSystemTools::ExpandListArgument(itProp->second.GetValue(),
- keyValuePairs);
+ cmSystemTools::ExpandListArgument(
+ root->GetMakefile()->GetProperty(it->c_str()),
+ keyValuePairs);
for(std::vector<std::string>::const_iterator itPair =
keyValuePairs.begin(); itPair != keyValuePairs.end(); ++itPair)
{
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 94c77e1..609e2d8 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -4367,6 +4367,18 @@ bool cmMakefile::GetPropertyAsBool(const std::string& prop) const
return cmSystemTools::IsOn(this->GetProperty(prop));
}
+std::vector<std::string> cmMakefile::GetPropertyKeys() const
+{
+ std::vector<std::string> keys;
+ keys.reserve(this->Properties.size());
+ for(cmPropertyMap::const_iterator it = this->Properties.begin();
+ it != this->Properties.end(); ++it)
+ {
+ keys.push_back(it->first);
+ }
+ return keys;
+}
+
cmTarget* cmMakefile::FindTarget(const std::string& name,
bool excludeAliases) const
{
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index 82a2279..a010da1 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -700,6 +700,7 @@ public:
const char *GetProperty(const std::string& prop) const;
const char *GetProperty(const std::string& prop, bool chain) const;
bool GetPropertyAsBool(const std::string& prop) const;
+ std::vector<std::string> GetPropertyKeys() const;
// Get the properties
cmPropertyMap &GetProperties() { return this->Properties; }