1
/*=========================================================================
3
Program: CMake - Cross-Platform Makefile Generator
4
Module: $RCSfile: cmCPackGenerators.cxx,v $
6
Date: $Date: 2006/05/07 14:55:39 $
7
Version: $Revision: 1.7.2.1 $
9
Copyright (c) 2002 Kitware, Inc., Insight Consortium. 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
#include "cmCPackGenerators.h"
20
#include "cmCPackGenericGenerator.h"
21
#include "cmCPackTGZGenerator.h"
22
#include "cmCPackTarBZip2Generator.h"
23
#include "cmCPackTarCompressGenerator.h"
24
#include "cmCPackZIPGenerator.h"
25
#include "cmCPackSTGZGenerator.h"
26
#include "cmCPackNSISGenerator.h"
27
#include "cmCPackPackageMakerGenerator.h"
29
#include "cmCPackLog.h"
31
//----------------------------------------------------------------------
32
cmCPackGenerators::cmCPackGenerators()
34
this->RegisterGenerator("TGZ", "Tar GZip compression",
35
cmCPackTGZGenerator::CreateGenerator);
36
this->RegisterGenerator("STGZ", "Self extracting Tar GZip compression",
37
cmCPackSTGZGenerator::CreateGenerator);
39
this->RegisterGenerator("NSIS", "Null Soft Installer",
40
cmCPackNSISGenerator::CreateGenerator);
42
this->RegisterGenerator("ZIP", "ZIP file format",
43
cmCPackZIPGenerator::CreateGenerator);
44
this->RegisterGenerator("TBZ2", "Tar BZip2 compression",
45
cmCPackTarBZip2Generator::CreateGenerator);
46
this->RegisterGenerator("TZ", "Tar Compress compression",
47
cmCPackTarCompressGenerator::CreateGenerator);
49
this->RegisterGenerator("PackageMaker", "Mac OSX Package Maker compression",
50
cmCPackPackageMakerGenerator::CreateGenerator);
54
//----------------------------------------------------------------------
55
cmCPackGenerators::~cmCPackGenerators()
57
std::vector<cmCPackGenericGenerator*>::iterator it;
58
for ( it = this->Generators.begin(); it != this->Generators.end(); ++ it )
64
//----------------------------------------------------------------------
65
cmCPackGenericGenerator* cmCPackGenerators::NewGenerator(const char* name)
67
cmCPackGenericGenerator* gen = this->NewGeneratorInternal(name);
72
this->Generators.push_back(gen);
73
gen->SetLogger(this->Logger);
77
//----------------------------------------------------------------------
78
cmCPackGenericGenerator* cmCPackGenerators::NewGeneratorInternal(
85
cmCPackGenerators::t_GeneratorCreatorsMap::iterator it
86
= this->GeneratorCreators.find(name);
87
if ( it == this->GeneratorCreators.end() )
91
return (it->second)();
94
//----------------------------------------------------------------------
95
void cmCPackGenerators::RegisterGenerator(const char* name,
96
const char* generatorDescription,
97
CreateGeneratorCall* createGenerator)
99
if ( !name || !createGenerator )
101
cmCPack_Log(this->Logger, cmCPackLog::LOG_ERROR,
102
"Cannot register generator" << std::endl);
105
this->GeneratorCreators[name] = createGenerator;
106
this->GeneratorDescriptions[name] = generatorDescription;