Initial commit.
[CMakeLuaTailorHgBridge.git] / CMakeLua / Source / CPack / cmCPackGeneratorFactory.h
blob238a56eebf4d68ef4d0dba3dd5af257451cae9ba
1 /*=========================================================================
3 Program: CMake - Cross-Platform Makefile Generator
4 Module: $RCSfile: cmCPackGeneratorFactory.h,v $
5 Language: C++
6 Date: $Date: 2007/11/05 21:55:45 $
7 Version: $Revision: 1.2 $
9 Copyright (c) 2002 Kitware, Inc. All rights reserved.
10 See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
12 This software is distributed WITHOUT ANY WARRANTY; without even
13 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14 PURPOSE. See the above copyright notices for more information.
16 =========================================================================*/
18 #ifndef cmCPackGeneratorFactory_h
19 #define cmCPackGeneratorFactory_h
21 #include "cmObject.h"
23 class cmCPackLog;
24 class cmCPackGenerator;
26 /** \class cmCPackGeneratorFactory
27 * \brief A container for CPack generators
30 class cmCPackGeneratorFactory : public cmObject
32 public:
33 cmTypeMacro(cmCPackGeneratorFactory, cmObject);
35 cmCPackGeneratorFactory();
36 ~cmCPackGeneratorFactory();
38 //! Get the generator
39 cmCPackGenerator* NewGenerator(const char* name);
40 void DeleteGenerator(cmCPackGenerator* gen);
42 typedef cmCPackGenerator* CreateGeneratorCall();
44 void RegisterGenerator(const char* name,
45 const char* generatorDescription,
46 CreateGeneratorCall* createGenerator);
48 void SetLogger(cmCPackLog* logger) { this->Logger = logger; }
50 typedef std::map<cmStdString, cmStdString> DescriptionsMap;
51 const DescriptionsMap& GetGeneratorsList() const
52 { return this->GeneratorDescriptions; }
54 private:
55 cmCPackGenerator* NewGeneratorInternal(const char* name);
56 std::vector<cmCPackGenerator*> Generators;
58 typedef std::map<cmStdString, CreateGeneratorCall*> t_GeneratorCreatorsMap;
59 t_GeneratorCreatorsMap GeneratorCreators;
60 DescriptionsMap GeneratorDescriptions;
61 cmCPackLog* Logger;
64 #endif