| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 | 
							- /* 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 <algorithm>
 
- #include <utility>
 
- void cmPropertyMap::Clear()
 
- {
 
-   this->Map_.clear();
 
- }
 
- void cmPropertyMap::SetProperty(const std::string& name, const char* value)
 
- {
 
-   if (!value) {
 
-     this->Map_.erase(name);
 
-     return;
 
-   }
 
-   this->Map_[name] = value;
 
- }
 
- void cmPropertyMap::AppendProperty(const std::string& name,
 
-                                    const std::string& value, bool asString)
 
- {
 
-   // Skip if nothing to append.
 
-   if (value.empty()) {
 
-     return;
 
-   }
 
-   {
 
-     std::string& pVal = this->Map_[name];
 
-     if (!pVal.empty() && !asString) {
 
-       pVal += ';';
 
-     }
 
-     pVal += value;
 
-   }
 
- }
 
- void cmPropertyMap::RemoveProperty(const std::string& name)
 
- {
 
-   this->Map_.erase(name);
 
- }
 
- cmProp cmPropertyMap::GetPropertyValue(const std::string& name) const
 
- {
 
-   auto it = this->Map_.find(name);
 
-   if (it != this->Map_.end()) {
 
-     return &it->second;
 
-   }
 
-   return nullptr;
 
- }
 
- std::vector<std::string> cmPropertyMap::GetKeys() const
 
- {
 
-   std::vector<std::string> keyList;
 
-   keyList.reserve(this->Map_.size());
 
-   for (auto const& item : this->Map_) {
 
-     keyList.push_back(item.first);
 
-   }
 
-   std::sort(keyList.begin(), keyList.end());
 
-   return keyList;
 
- }
 
- std::vector<std::pair<std::string, std::string>> cmPropertyMap::GetList() const
 
- {
 
-   using StringPair = std::pair<std::string, std::string>;
 
-   std::vector<StringPair> kvList;
 
-   kvList.reserve(this->Map_.size());
 
-   for (auto const& item : this->Map_) {
 
-     kvList.emplace_back(item.first, item.second);
 
-   }
 
-   std::sort(kvList.begin(), kvList.end(),
 
-             [](StringPair const& a, StringPair const& b) {
 
-               return a.first < b.first;
 
-             });
 
-   return kvList;
 
- }
 
 
  |