1 /*=========================================================================
3 Program: CMake - Cross-Platform Makefile Generator
4 Module: $RCSfile: cmCPackGeneratorFactory.h,v $
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
24 class cmCPackGenerator
;
26 /** \class cmCPackGeneratorFactory
27 * \brief A container for CPack generators
30 class cmCPackGeneratorFactory
: public cmObject
33 cmTypeMacro(cmCPackGeneratorFactory
, cmObject
);
35 cmCPackGeneratorFactory();
36 ~cmCPackGeneratorFactory();
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
; }
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
;