| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- /* 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 <map>
- #include <memory>
- #include <string>
- #include <vector>
- #include "cmGeneratorExpression.h"
- class cmMakefile;
- /** \class cmInstalledFile
- * \brief Represents a file intended for installation.
- *
- * cmInstalledFile represents a file intended for installation.
- */
- class cmInstalledFile
- {
- public:
- using CompiledGeneratorExpressionPtrType =
- std::unique_ptr<cmCompiledGeneratorExpression>;
- using ExpressionVectorType = std::vector<CompiledGeneratorExpressionPtrType>;
- struct Property
- {
- Property();
- ~Property();
- Property(const Property&) = delete;
- Property& operator=(const Property&) = delete;
- ExpressionVectorType ValueExpressions;
- };
- using PropertyMapType = std::map<std::string, Property>;
- cmInstalledFile();
- ~cmInstalledFile();
- cmInstalledFile(const cmInstalledFile&) = delete;
- cmInstalledFile& operator=(const cmInstalledFile&) = delete;
- void RemoveProperty(const std::string& prop);
- void SetProperty(cmMakefile const* mf, const std::string& prop,
- const std::string& value);
- void AppendProperty(cmMakefile const* mf, const std::string& prop,
- const std::string& value, bool asString = false);
- bool HasProperty(const std::string& prop) const;
- bool GetProperty(const std::string& prop, std::string& value) const;
- bool GetPropertyAsBool(const std::string& prop) const;
- std::vector<std::string> GetPropertyAsList(const std::string& prop) const;
- void SetName(cmMakefile* mf, const std::string& name);
- std::string const& GetName() const;
- cmCompiledGeneratorExpression const& GetNameExpression() const;
- PropertyMapType const& GetProperties() const { return this->Properties; }
- private:
- std::string Name;
- CompiledGeneratorExpressionPtrType NameExpression;
- PropertyMapType Properties;
- };
|