mirror of
https://github.com/reactos/CMake.git
synced 2025-02-16 09:37:36 +00:00
![Albert Astals Cid](/assets/img/avatar_default.png)
They are unused, but if someone used them they would lead to problems since they would copy the internal raw pointers and the destructor would cause double delete
82 lines
2.1 KiB
C++
82 lines
2.1 KiB
C++
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
|
file Copyright.txt or https://cmake.org/licensing for details. */
|
|
#ifndef cmInstalledFile_h
|
|
#define cmInstalledFile_h
|
|
|
|
#include "cmConfigure.h" // IWYU pragma: keep
|
|
|
|
#include "cmGeneratorExpression.h"
|
|
|
|
#include <map>
|
|
#include <memory> // IWYU pragma: keep
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
class cmMakefile;
|
|
|
|
/** \class cmInstalledFile
|
|
* \brief Represents a file intended for installation.
|
|
*
|
|
* cmInstalledFile represents a file intended for installation.
|
|
*/
|
|
class cmInstalledFile
|
|
{
|
|
public:
|
|
typedef std::unique_ptr<cmCompiledGeneratorExpression>
|
|
CompiledGeneratorExpressionPtrType;
|
|
|
|
typedef std::vector<cmCompiledGeneratorExpression*> ExpressionVectorType;
|
|
|
|
struct Property
|
|
{
|
|
Property();
|
|
~Property();
|
|
|
|
Property(const Property&) = delete;
|
|
Property& operator=(const Property&) = delete;
|
|
|
|
ExpressionVectorType ValueExpressions;
|
|
};
|
|
|
|
typedef std::map<std::string, Property> PropertyMapType;
|
|
|
|
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 char* value);
|
|
|
|
void AppendProperty(cmMakefile const* mf, const std::string& prop,
|
|
const char* 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;
|
|
|
|
void GetPropertyAsList(const std::string& prop,
|
|
std::vector<std::string>& list) 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;
|
|
cmCompiledGeneratorExpression* NameExpression = nullptr;
|
|
PropertyMapType Properties;
|
|
};
|
|
|
|
#endif
|