diff options
Diffstat (limited to 'Source/CPack/cmCPackGenericGenerator.h')
-rw-r--r-- | Source/CPack/cmCPackGenericGenerator.h | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/Source/CPack/cmCPackGenericGenerator.h b/Source/CPack/cmCPackGenericGenerator.h new file mode 100644 index 0000000..f9dddc3 --- /dev/null +++ b/Source/CPack/cmCPackGenericGenerator.h @@ -0,0 +1,103 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ + + Copyright (c) 2002 Kitware, Inc. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef cmCPackGenericGenerator_h +#define cmCPackGenericGenerator_h + + +#include "cmObject.h" + +#define cmCPackTypeMacro(class, superclass) \ + cmTypeMacro(class, superclass); \ + static cmCPackGenericGenerator* CreateGenerator() { return new class; } + +class cmMakefile; +class cmLocalGenerator; +class cmGlobalGenerator; +class cmake; + +/** \class cmCPackGenericGenerator + * \brief A superclass of all CPack Generators + * + */ +class cmCPackGenericGenerator : public cmObject +{ +public: + cmTypeMacro(cmCPackGenericGenerator, cmObject); + /** + * If verbose then more informaiton is printed out + */ + void SetVerbose(bool val) { m_GeneratorVerbose = val; } + + /** + * Do the actual processing. Subclass has to override it. + * Return 0 if error. + */ + virtual int ProcessGenerator(); + + /** + * Initialize generator + */ + virtual int Initialize(const char* name); + + /** + * Construct generator + */ + cmCPackGenericGenerator(); + virtual ~cmCPackGenericGenerator(); + + //! Set and get the options + void SetOption(const char* op, const char* value); + const char* GetOption(const char* op); + + //! Set all the variables + int FindRunningCMake(const char* arg0); + +protected: + int PrepareNames(); + int InstallProject(); + virtual int GenerateHeader(std::ostream* os); + + virtual const char* GetOutputExtension() { return "cpack"; } + virtual const char* GetOutputPostfix() { return 0; } + virtual int CompressFiles(const char* outFileName, const char* toplevel, + const std::vector<std::string>& files); + virtual const char* GetInstallPath(); + virtual const char* GetInstallPrefix() { return "/"; } + + virtual std::string FindTemplate(const char* name); + virtual bool ConfigureFile(const char* inName, const char* outName); + + bool m_GeneratorVerbose; + std::string m_Name; + + std::string m_InstallPath; + + std::string m_CPackSelf; + std::string m_CMakeSelf; + std::string m_CMakeRoot; + +private: + cmGlobalGenerator* m_GlobalGenerator; + cmLocalGenerator* m_LocalGenerator; + cmMakefile* m_MakefileMap; + cmake* m_CMakeInstance; +}; + +#endif + + |