[cmake-developers] [PATCH 1/2] Drop cmProperty class
Yury G. Kudryashov
urkud.urkud at gmail.com
Sat Feb 25 03:07:36 EST 2012
From: "Yury G. Kudryashov" <urkud.urkud at gmail.com>
This class contains nothing but name (already stored in cmPropertyMap key) and
value (string).
---
Source/cmProperty.cxx | 40 ----------------------------------------
Source/cmProperty.h | 24 ++----------------------
Source/cmPropertyDefinition.h | 1 +
Source/cmPropertyMap.cxx | 28 ++++++++--------------------
Source/cmPropertyMap.h | 5 ++---
Source/cmTestGenerator.cxx | 2 +-
6 files changed, 14 insertions(+), 86 deletions(-)
diff --git a/Source/cmProperty.cxx b/Source/cmProperty.cxx
index 3b37cf3..e69de29 100644
--- a/Source/cmProperty.cxx
+++ b/Source/cmProperty.cxx
@@ -1,40 +0,0 @@
-/*============================================================================
- CMake - Cross Platform Makefile Generator
- Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
-
- 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.
-============================================================================*/
-#include "cmProperty.h"
-#include "cmSystemTools.h"
-
-void cmProperty::Set(const char *name, const char *value)
-{
- this->Name = name;
- this->Value = value;
- this->ValueHasBeenSet = true;
-}
-
-void cmProperty::Append(const char *name, const char *value, bool asString)
-{
- this->Name = name;
- if(!this->Value.empty() && *value && !asString)
- {
- this->Value += ";";
- }
- this->Value += value;
- this->ValueHasBeenSet = true;
-}
-
-const char *cmProperty::GetValue() const
-{
- if (this->ValueHasBeenSet)
- {
- return this->Value.c_str();
- }
- return 0;
-}
diff --git a/Source/cmProperty.h b/Source/cmProperty.h
index e0fcd63..a2b3219 100644
--- a/Source/cmProperty.h
+++ b/Source/cmProperty.h
@@ -12,30 +12,10 @@
#ifndef cmProperty_h
#define cmProperty_h
-#include "cmStandardIncludes.h"
-
-class cmProperty
+namespace cmProperty
{
-public:
enum ScopeType { TARGET, SOURCE_FILE, DIRECTORY, GLOBAL, CACHE,
TEST, VARIABLE, CACHED_VARIABLE };
-
- // set this property
- void Set(const char *name, const char *value);
-
- // append to this property
- void Append(const char *name, const char *value, bool asString = false);
-
- // get the value
- const char *GetValue() const;
-
- // construct with the value not set
- cmProperty() { this->ValueHasBeenSet = false; };
-
-protected:
- std::string Name;
- std::string Value;
- bool ValueHasBeenSet;
-};
+}
#endif
diff --git a/Source/cmPropertyDefinition.h b/Source/cmPropertyDefinition.h
index f68db87..898e13b 100644
--- a/Source/cmPropertyDefinition.h
+++ b/Source/cmPropertyDefinition.h
@@ -13,6 +13,7 @@
#define cmPropertyDefinition_h
#include "cmProperty.h"
+#include "cmStandardIncludes.h"
class cmPropertyDefinition
{
diff --git a/Source/cmPropertyMap.cxx b/Source/cmPropertyMap.cxx
index a4d0bf3..74bbec6 100644
--- a/Source/cmPropertyMap.cxx
+++ b/Source/cmPropertyMap.cxx
@@ -13,21 +13,6 @@
#include "cmSystemTools.h"
#include "cmake.h"
-cmProperty *cmPropertyMap::GetOrCreateProperty(const char *name)
-{
- cmPropertyMap::iterator it = this->find(name);
- cmProperty *prop;
- if (it == this->end())
- {
- prop = &(*this)[name];
- }
- else
- {
- prop = &(it->second);
- }
- return prop;
-}
-
void cmPropertyMap::SetProperty(const char *name, const char *value,
cmProperty::ScopeType scope)
{
@@ -54,8 +39,7 @@ void cmPropertyMap::SetProperty(const char *name, const char *value,
(void)scope;
#endif
- cmProperty *prop = this->GetOrCreateProperty(name);
- prop->Set(name,value);
+ (*this)[name] = value;
}
void cmPropertyMap::AppendProperty(const char* name, const char* value,
@@ -80,8 +64,12 @@ void cmPropertyMap::AppendProperty(const char* name, const char* value,
(void)scope;
#endif
- cmProperty *prop = this->GetOrCreateProperty(name);
- prop->Append(name,value,asString);
+ cmStdString &old = (*this)[name];
+ if(!old.empty() && !asString)
+ {
+ old += ";";
+ }
+ old += value;
}
const char *cmPropertyMap
@@ -118,6 +106,6 @@ const char *cmPropertyMap
}
return 0;
}
- return it->second.GetValue();
+ return it->second.c_str();
}
diff --git a/Source/cmPropertyMap.h b/Source/cmPropertyMap.h
index 94275e2..add5aad 100644
--- a/Source/cmPropertyMap.h
+++ b/Source/cmPropertyMap.h
@@ -13,14 +13,13 @@
#define cmPropertyMap_h
#include "cmProperty.h"
+#include "cmStandardIncludes.h"
class cmake;
-class cmPropertyMap : public std::map<cmStdString,cmProperty>
+class cmPropertyMap : public std::map<cmStdString,cmStdString>
{
public:
- cmProperty *GetOrCreateProperty(const char *name);
-
void SetProperty(const char *name, const char *value,
cmProperty::ScopeType scope);
diff --git a/Source/cmTestGenerator.cxx b/Source/cmTestGenerator.cxx
index e0892b2..45e3cd2 100644
--- a/Source/cmTestGenerator.cxx
+++ b/Source/cmTestGenerator.cxx
@@ -57,7 +57,7 @@ void cmTestGenerator::GenerateScriptConfigs(std::ostream& os,
for ( pit = mpit->begin(); pit != mpit->end(); ++ pit )
{
fout << " " << pit->first
- << " " << lg->EscapeForCMake(pit->second.GetValue());
+ << " " << lg->EscapeForCMake(pit->second.c_str());
}
fout << ")" << std::endl;
}
--
1.7.8
More information about the cmake-developers
mailing list