| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
- file Copyright.txt or https://cmake.org/licensing for details. */
- #pragma once
- #include "cmConfigure.h" // IWYU pragma: keep
- #include <string>
- #include <unordered_map>
- #include <utility>
- #include <vector>
- #include "cmValue.h"
- /** \class cmPropertyMap
- * \brief String property map.
- */
- class cmPropertyMap
- {
- public:
- // -- General
- //! Clear property list
- void Clear();
- // -- Properties
- //! Set the property value
- void SetProperty(const std::string& name, cmValue value);
- void SetProperty(const std::string& name, const std::string& value)
- {
- this->SetProperty(name, cmValue(value));
- }
- //! Append to the property value
- void AppendProperty(const std::string& name, const std::string& value,
- bool asString = false);
- //! Get the property value
- cmValue GetPropertyValue(const std::string& name) const;
- //! Remove the property @a name from the map
- void RemoveProperty(const std::string& name);
- // -- Lists
- //! Get a sorted list of property keys
- std::vector<std::string> GetKeys() const;
- //! Get a sorted by key list of property key,value pairs
- std::vector<std::pair<std::string, std::string>> GetList() const;
- private:
- std::unordered_map<std::string, std::string> Map_;
- };
|