diff options
author | Nils Gladitz <nilsgladitz@gmail.com> | 2014-05-15 17:12:40 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2014-05-28 16:28:18 (GMT) |
commit | 15a8af21e8bd8354dfff2063e01f695f85efdeb8 (patch) | |
tree | b7d98cab3ba63f61074a4f63a250934f0294826a /Source/cmInstalledFile.h | |
parent | 032961c6ac81d82270a7b1986935111aa5e32a56 (diff) | |
download | CMake-15a8af21e8bd8354dfff2063e01f695f85efdeb8.zip CMake-15a8af21e8bd8354dfff2063e01f695f85efdeb8.tar.gz CMake-15a8af21e8bd8354dfff2063e01f695f85efdeb8.tar.bz2 |
Add an "installed file" property scope
Teach set_property and get_property an "INSTALL" property type to be
associated with install-tree file paths. Make the properties available
to CPack for use during packaging. Add a "prop_inst" Sphinx domain
object type for documentation of such properties.
Diffstat (limited to 'Source/cmInstalledFile.h')
-rw-r--r-- | Source/cmInstalledFile.h | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/Source/cmInstalledFile.h b/Source/cmInstalledFile.h new file mode 100644 index 0000000..df28221 --- /dev/null +++ b/Source/cmInstalledFile.h @@ -0,0 +1,83 @@ +/*============================================================================ + 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<cmCompiledGeneratorExpression> + CompiledGeneratorExpressionPtrType; + + typedef std::vector<cmCompiledGeneratorExpression*> + ExpressionVectorType; + + struct Property + { + Property() + { + + } + + ~Property() + { + for(ExpressionVectorType::iterator i = ValueExpressions.begin(); + i != ValueExpressions.end(); ++i) + { + delete *i; + } + } + + ExpressionVectorType ValueExpressions; + }; + + typedef std::map<std::string, Property> 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 |