| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- /*=========================================================================
- 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; }
- #define cmCPackLogger(logType, msg) \
- do { \
- cmOStringStream cmCPackLog_msg; \
- cmCPackLog_msg << msg; \
- m_Logger->Log(logType, __FILE__, __LINE__, cmCPackLog_msg.str().c_str());\
- } while ( 0 )
- #ifdef cerr
- # undef cerr
- #endif
- #define cerr no_cerr_use_cmCPack_Log
- #ifdef cout
- # undef cout
- #endif
- #define cout no_cout_use_cmCPack_Log
- class cmMakefile;
- class cmCPackLog;
- /** \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, cmMakefile* mf);
- /**
- * 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);
- //! Set the logger
- void SetLogger(cmCPackLog* log) { m_Logger = log; }
- protected:
- int PrepareNames();
- int InstallProject();
- 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;
- cmCPackLog* m_Logger;
- private:
- cmMakefile* m_MakefileMap;
- };
- #endif
|