/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmPropertyMap.h" #include void cmPropertyMap::Clear() { Map_.clear(); } void cmPropertyMap::SetProperty(const std::string& name, const char* value) { if (!value) { Map_.erase(name); return; } Map_[name].Set(value); } void cmPropertyMap::AppendProperty(const std::string& name, const char* value, bool asString) { // Skip if nothing to append. if (!value || !*value) { return; } Map_[name].Append(value, asString); } const char* cmPropertyMap::GetPropertyValue(const std::string& name) const { { auto it = Map_.find(name); if (it != Map_.end()) { return it->second.GetValue(); } } return nullptr; } std::vector cmPropertyMap::GetKeys() const { std::vector keyList; keyList.reserve(Map_.size()); for (auto const& item : Map_) { keyList.push_back(item.first); } return keyList; } std::vector> cmPropertyMap::GetList() const { std::vector> kvList; kvList.reserve(Map_.size()); for (auto const& item : Map_) { kvList.emplace_back(item.first, item.second.GetValue()); } return kvList; }