diff options
Diffstat (limited to 'Source/cmInstallGenerator.h')
-rw-r--r-- | Source/cmInstallGenerator.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/Source/cmInstallGenerator.h b/Source/cmInstallGenerator.h new file mode 100644 index 000000000..c89ab8ac5 --- /dev/null +++ b/Source/cmInstallGenerator.h @@ -0,0 +1,63 @@ +/*============================================================================ + CMake - Cross Platform Makefile Generator + Copyright 2000-2009 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 cmInstallGenerator_h +#define cmInstallGenerator_h + +#include "cmInstallType.h" +#include "cmScriptGenerator.h" + +class cmLocalGenerator; + +/** \class cmInstallGenerator + * \brief Support class for generating install scripts. + * + */ +class cmInstallGenerator: public cmScriptGenerator +{ +public: + cmInstallGenerator(const char* destination, + std::vector<std::string> const& configurations, + const char* component); + virtual ~cmInstallGenerator(); + + void AddInstallRule( + std::ostream& os, cmInstallType type, + std::vector<std::string> const& files, + bool optional = false, + const char* permissions_file = 0, + const char* permissions_dir = 0, + const char* rename = 0, + const char* literal_args = 0, + Indent const& indent = Indent() + ); + + const char* GetDestination() const + { return this->Destination.c_str(); } + + /** Get the install destination as it should appear in the + installation script. */ + std::string GetInstallDestination() const; + + /** Test if this generator installs something for a given configuration. */ + bool InstallsForConfig(const char*); + +protected: + virtual void GenerateScript(std::ostream& os); + + std::string CreateComponentTest(const char* component); + + // Information shared by most generator types. + std::string Destination; + std::string Component; +}; + +#endif |