/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmPropertyDefinition.h" #include cmPropertyDefinition::cmPropertyDefinition(std::string shortDescription, std::string fullDescription, bool chained) : ShortDescription(std::move(shortDescription)) , FullDescription(std::move(fullDescription)) , Chained(chained) { } void cmPropertyDefinitionMap::DefineProperty( const std::string& name, cmProperty::ScopeType scope, const std::string& ShortDescription, const std::string& FullDescription, bool chain) { auto it = this->Map_.find(key_type(name, scope)); if (it == this->Map_.end()) { // try_emplace() since C++17 this->Map_.emplace( std::piecewise_construct, std::forward_as_tuple(name, scope), std::forward_as_tuple(ShortDescription, FullDescription, chain)); } } cmPropertyDefinition const* cmPropertyDefinitionMap::GetPropertyDefinition( const std::string& name, cmProperty::ScopeType scope) const { auto it = this->Map_.find(key_type(name, scope)); if (it != this->Map_.end()) { return &it->second; } return nullptr; }