cmCPackGenericGenerator.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. /*=========================================================================
  2. Program: CMake - Cross-Platform Makefile Generator
  3. Module: $RCSfile$
  4. Language: C++
  5. Date: $Date$
  6. Version: $Revision$
  7. Copyright (c) 2002 Kitware, Inc. All rights reserved.
  8. See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
  9. This software is distributed WITHOUT ANY WARRANTY; without even
  10. the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  11. PURPOSE. See the above copyright notices for more information.
  12. =========================================================================*/
  13. #ifndef cmCPackGenericGenerator_h
  14. #define cmCPackGenericGenerator_h
  15. #include "cmObject.h"
  16. #define cmCPackTypeMacro(class, superclass) \
  17. cmTypeMacro(class, superclass); \
  18. static cmCPackGenericGenerator* CreateGenerator() { return new class; }
  19. class cmMakefile;
  20. class cmLocalGenerator;
  21. class cmGlobalGenerator;
  22. class cmake;
  23. /** \class cmCPackGenericGenerator
  24. * \brief A superclass of all CPack Generators
  25. *
  26. */
  27. class cmCPackGenericGenerator : public cmObject
  28. {
  29. public:
  30. cmTypeMacro(cmCPackGenericGenerator, cmObject);
  31. /**
  32. * If verbose then more informaiton is printed out
  33. */
  34. void SetVerbose(bool val) { m_GeneratorVerbose = val; }
  35. /**
  36. * Do the actual processing. Subclass has to override it.
  37. * Return 0 if error.
  38. */
  39. virtual int ProcessGenerator();
  40. /**
  41. * Initialize generator
  42. */
  43. virtual int Initialize(const char* name);
  44. /**
  45. * Construct generator
  46. */
  47. cmCPackGenericGenerator();
  48. virtual ~cmCPackGenericGenerator();
  49. //! Set and get the options
  50. void SetOption(const char* op, const char* value);
  51. const char* GetOption(const char* op);
  52. //! Set all the variables
  53. int FindRunningCMake(const char* arg0);
  54. protected:
  55. int PrepareNames();
  56. int InstallProject();
  57. virtual const char* GetOutputExtension() { return "cpack"; }
  58. virtual const char* GetOutputPostfix() { return 0; }
  59. virtual int CompressFiles(const char* outFileName, const char* toplevel,
  60. const std::vector<std::string>& files);
  61. virtual const char* GetInstallPath();
  62. virtual const char* GetInstallPrefix() { return "/"; }
  63. virtual std::string FindTemplate(const char* name);
  64. virtual bool ConfigureFile(const char* inName, const char* outName);
  65. bool m_GeneratorVerbose;
  66. std::string m_Name;
  67. std::string m_InstallPath;
  68. std::string m_CPackSelf;
  69. std::string m_CMakeSelf;
  70. std::string m_CMakeRoot;
  71. private:
  72. cmGlobalGenerator* m_GlobalGenerator;
  73. cmLocalGenerator* m_LocalGenerator;
  74. cmMakefile* m_MakefileMap;
  75. cmake* m_CMakeInstance;
  76. };
  77. #endif