diff options
Diffstat (limited to 'Source/cmPropertyDefinitionMap.cxx')
-rw-r--r-- | Source/cmPropertyDefinitionMap.cxx | 35 |
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(); +} |