summaryrefslogtreecommitdiffstats
path: root/Source/cmPropertyDefinitionMap.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmPropertyDefinitionMap.cxx')
-rw-r--r--Source/cmPropertyDefinitionMap.cxx35
1 files changed, 35 insertions, 0 deletions
diff --git a/Source/cmPropertyDefinitionMap.cxx b/Source/cmPropertyDefinitionMap.cxx
new file mode 100644
index 0000000..5daaf9b
--- /dev/null
+++ b/Source/cmPropertyDefinitionMap.cxx
@@ -0,0 +1,35 @@
+/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+ file Copyright.txt or https://cmake.org/licensing for details. */
+#include "cmPropertyDefinitionMap.h"
+
+#include <utility>
+
+void cmPropertyDefinitionMap::DefineProperty(const std::string& name,
+ cmProperty::ScopeType scope,
+ const char* ShortDescription,
+ const char* FullDescription,
+ bool chain)
+{
+ cmPropertyDefinitionMap::iterator it = this->find(name);
+ cmPropertyDefinition* prop;
+ if (it == this->end()) {
+ prop = &(*this)[name];
+ prop->DefineProperty(name, scope, ShortDescription, FullDescription,
+ chain);
+ }
+}
+
+bool cmPropertyDefinitionMap::IsPropertyDefined(const std::string& name) const
+{
+ return this->find(name) != this->end();
+}
+
+bool cmPropertyDefinitionMap::IsPropertyChained(const std::string& name) const
+{
+ cmPropertyDefinitionMap::const_iterator it = this->find(name);
+ if (it == this->end()) {
+ return false;
+ }
+
+ return it->second.IsChained();
+}