/*============================================================================ CMake - Cross Platform Makefile Generator Copyright 2014 Kitware, Inc., Insight Software Consortium Distributed under the OSI-approved BSD License (the "License"); see accompanying file Copyright.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the License for more information. ============================================================================*/ #ifndef cmInstalledFile_h #define cmInstalledFile_h #include "cmGeneratorExpression.h" /** \class cmInstalledFile * \brief Represents a file intended for installation. * * cmInstalledFile represents a file intended for installation. */ class cmInstalledFile { public: typedef cmsys::auto_ptr CompiledGeneratorExpressionPtrType; typedef std::vector ExpressionVectorType; struct Property { Property() { } ~Property() { for(ExpressionVectorType::iterator i = ValueExpressions.begin(); i != ValueExpressions.end(); ++i) { delete *i; } } ExpressionVectorType ValueExpressions; }; typedef std::map PropertyMapType; cmInstalledFile(); ~cmInstalledFile(); 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 GetProperty(const std::string& prop, std::string& value) const; bool GetPropertyAsBool(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; cmCompiledGeneratorExpression* NameExpression; PropertyMapType Properties; }; #endif