~ubuntu-branches/ubuntu/jaunty/cmake/jaunty-security

« back to all changes in this revision

Viewing changes to Source/CPack/cmCPackGenerators.cxx

  • Committer: Bazaar Package Importer
  • Author(s): A. Maitland Bottoms
  • Date: 2006-06-18 16:34:11 UTC
  • mfrom: (1.4.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20060618163411-pi234s3v6jwlcmof
Tags: 2.4.2-1
* New upstream release (Closes: #338324)
* Put cmake .vim files into /usr/share/vim/addons/plugin/
  where they can be used. (Closes: #366663)
* Install cmake-mode.el so it can be used. (Closes: #366664)
* Ensure cmake FindKDE locates KDE libraries on Debian
  based distributions.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*=========================================================================
 
2
 
 
3
  Program:   CMake - Cross-Platform Makefile Generator
 
4
  Module:    $RCSfile: cmCPackGenerators.cxx,v $
 
5
  Language:  C++
 
6
  Date:      $Date: 2006/05/07 14:55:39 $
 
7
  Version:   $Revision: 1.7.2.1 $
 
8
 
 
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.
 
11
 
 
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.
 
15
 
 
16
=========================================================================*/
 
17
 
 
18
#include "cmCPackGenerators.h"
 
19
 
 
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"
 
28
 
 
29
#include "cmCPackLog.h"
 
30
 
 
31
//----------------------------------------------------------------------
 
32
cmCPackGenerators::cmCPackGenerators()
 
33
{
 
34
  this->RegisterGenerator("TGZ", "Tar GZip compression",
 
35
    cmCPackTGZGenerator::CreateGenerator);
 
36
  this->RegisterGenerator("STGZ", "Self extracting Tar GZip compression",
 
37
    cmCPackSTGZGenerator::CreateGenerator);
 
38
#ifdef _WIN32
 
39
  this->RegisterGenerator("NSIS", "Null Soft Installer",
 
40
    cmCPackNSISGenerator::CreateGenerator);
 
41
#endif
 
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);
 
48
#ifdef __APPLE__
 
49
  this->RegisterGenerator("PackageMaker", "Mac OSX Package Maker compression",
 
50
    cmCPackPackageMakerGenerator::CreateGenerator);
 
51
#endif
 
52
}
 
53
 
 
54
//----------------------------------------------------------------------
 
55
cmCPackGenerators::~cmCPackGenerators()
 
56
{
 
57
  std::vector<cmCPackGenericGenerator*>::iterator it;
 
58
  for ( it = this->Generators.begin(); it != this->Generators.end(); ++ it )
 
59
    {
 
60
    delete *it;
 
61
    }
 
62
}
 
63
 
 
64
//----------------------------------------------------------------------
 
65
cmCPackGenericGenerator* cmCPackGenerators::NewGenerator(const char* name)
 
66
{
 
67
  cmCPackGenericGenerator* gen = this->NewGeneratorInternal(name);
 
68
  if ( !gen )
 
69
    {
 
70
    return 0;
 
71
    }
 
72
  this->Generators.push_back(gen);
 
73
  gen->SetLogger(this->Logger);
 
74
  return gen;
 
75
}
 
76
 
 
77
//----------------------------------------------------------------------
 
78
cmCPackGenericGenerator* cmCPackGenerators::NewGeneratorInternal(
 
79
  const char* name)
 
80
{
 
81
  if ( !name )
 
82
    {
 
83
    return 0;
 
84
    }
 
85
  cmCPackGenerators::t_GeneratorCreatorsMap::iterator it
 
86
    = this->GeneratorCreators.find(name);
 
87
  if ( it == this->GeneratorCreators.end() )
 
88
    {
 
89
    return 0;
 
90
    }
 
91
  return (it->second)();
 
92
}
 
93
 
 
94
//----------------------------------------------------------------------
 
95
void cmCPackGenerators::RegisterGenerator(const char* name,
 
96
  const char* generatorDescription,
 
97
  CreateGeneratorCall* createGenerator)
 
98
{
 
99
  if ( !name || !createGenerator )
 
100
    {
 
101
    cmCPack_Log(this->Logger, cmCPackLog::LOG_ERROR,
 
102
      "Cannot register generator" << std::endl);
 
103
    return;
 
104
    }
 
105
  this->GeneratorCreators[name] = createGenerator;
 
106
  this->GeneratorDescriptions[name] = generatorDescription;
 
107
}