summaryrefslogtreecommitdiffstats
path: root/Source/CPack
diff options
context:
space:
mode:
authorAlexander Neundorf <neundorf@kde.org>2007-07-25 14:57:33 (GMT)
committerAlexander Neundorf <neundorf@kde.org>2007-07-25 14:57:33 (GMT)
commita39aff52a033943242296bacc193741b0101377d (patch)
tree1ed04854e79820eafa28c5a727f6478c46586d12 /Source/CPack
parentf4ac0f8373aeb96aae4cd24359586bf1a18c7f7b (diff)
downloadCMake-a39aff52a033943242296bacc193741b0101377d.zip
CMake-a39aff52a033943242296bacc193741b0101377d.tar.gz
CMake-a39aff52a033943242296bacc193741b0101377d.tar.bz2
ENH: add an empty debian package generator, Mathieu volunteered to fill it
:-) Alex
Diffstat (limited to 'Source/CPack')
-rw-r--r--Source/CPack/cmCPackDebGenerator.cxx58
-rw-r--r--Source/CPack/cmCPackDebGenerator.h48
-rw-r--r--Source/CPack/cmCPackGenerators.cxx14
3 files changed, 120 insertions, 0 deletions
diff --git a/Source/CPack/cmCPackDebGenerator.cxx b/Source/CPack/cmCPackDebGenerator.cxx
new file mode 100644
index 0000000..fdc0514
--- /dev/null
+++ b/Source/CPack/cmCPackDebGenerator.cxx
@@ -0,0 +1,58 @@
+/*=========================================================================
+
+ Program: CMake - Cross-Platform Makefile Generator
+ Module: $RCSfile$
+ Language: C++
+ Date: $Date$
+ Version: $Revision$
+
+ Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
+ See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the above copyright notices for more information.
+
+=========================================================================*/
+#include "cmCPackDebGenerator.h"
+
+#include "cmSystemTools.h"
+#include "cmMakefile.h"
+#include "cmGeneratedFileStream.h"
+#include "cmCPackLog.h"
+
+#include <cmsys/SystemTools.hxx>
+#include <cmsys/Glob.hxx>
+
+//----------------------------------------------------------------------
+cmCPackDebGenerator::cmCPackDebGenerator()
+{
+}
+
+//----------------------------------------------------------------------
+cmCPackDebGenerator::~cmCPackDebGenerator()
+{
+}
+
+//----------------------------------------------------------------------
+int cmCPackDebGenerator::CompressFiles(const char* outFileName,
+ const char* toplevel,
+ const std::vector<std::string>& files)
+{
+ const char* arExecutable = this->GetOption("AR_EXECUTABLE");
+ const char* cmakeExecutable = this->GetOption("CMAKE_COMMAND");
+ return 1;
+}
+
+//----------------------------------------------------------------------
+int cmCPackDebGenerator::InitializeInternal()
+{
+ this->ReadListFile("CPackDeb.cmake");
+ if (!this->IsSet("AR_EXECUTABLE"))
+ {
+ cmCPackLogger(cmCPackLog::LOG_ERROR, "Cannot find ar" << std::endl);
+ return 0;
+ }
+ return this->Superclass::InitializeInternal();
+}
+
diff --git a/Source/CPack/cmCPackDebGenerator.h b/Source/CPack/cmCPackDebGenerator.h
new file mode 100644
index 0000000..edf3402
--- /dev/null
+++ b/Source/CPack/cmCPackDebGenerator.h
@@ -0,0 +1,48 @@
+/*=========================================================================
+
+ Program: CMake - Cross-Platform Makefile Generator
+ Module: $RCSfile$
+ Language: C++
+ Date: $Date$
+ Version: $Revision$
+
+ Copyright (c) 2002 Kitware, Inc. All rights reserved.
+ See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the above copyright notices for more information.
+
+=========================================================================*/
+
+#ifndef cmCPackDebGenerator_h
+#define cmCPackDebGenerator_h
+
+
+#include "cmCPackGenericGenerator.h"
+
+/** \class cmCPackDebGenerator
+ * \brief A generator for Debian packages
+ *
+ */
+class cmCPackDebGenerator : public cmCPackGenericGenerator
+{
+public:
+ cmCPackTypeMacro(cmCPackDebGenerator, cmCPackGenericGenerator);
+
+ /**
+ * Construct generator
+ */
+ cmCPackDebGenerator();
+ virtual ~cmCPackDebGenerator();
+
+protected:
+ virtual int InitializeInternal();
+ int CompressFiles(const char* outFileName, const char* toplevel,
+ const std::vector<std::string>& files);
+ virtual const char* GetOutputExtension() { return ".deb"; }
+ virtual const char* GetInstallPrefix() { return "/usr"; }
+
+};
+
+#endif
diff --git a/Source/CPack/cmCPackGenerators.cxx b/Source/CPack/cmCPackGenerators.cxx
index 629156a..bccee43 100644
--- a/Source/CPack/cmCPackGenerators.cxx
+++ b/Source/CPack/cmCPackGenerators.cxx
@@ -34,6 +34,12 @@
# include "cmCPackCygwinSourceGenerator.h"
#endif
+#if !defined(_WIN32) && !defined(__APPLE__) \
+ && !defined(__QNXNTO__) && !defined(__BEOS__)
+# include "cmCPackDebGenerator.h"
+#endif
+
+
#include "cmCPackLog.h"
//----------------------------------------------------------------------
@@ -64,6 +70,10 @@ cmCPackGenerators::cmCPackGenerators()
this->RegisterGenerator("OSXX11", "Mac OSX X11 bundle",
cmCPackOSXX11Generator::CreateGenerator);
#endif
+#if !defined(_WIN32) && !defined(__APPLE__) && !defined(__QNXNTO__) && !defined(__BEOS__)
+ this->RegisterGenerator("DEB", "Debian packages",
+ cmCPackDebGenerator::CreateGenerator);
+#endif
}
//----------------------------------------------------------------------
@@ -80,6 +90,7 @@ cmCPackGenerators::~cmCPackGenerators()
cmCPackGenericGenerator* cmCPackGenerators::NewGenerator(const char* name)
{
cmCPackGenericGenerator* gen = this->NewGeneratorInternal(name);
+ fprintf(stderr, "********* NewGen %s\n", name);
if ( !gen )
{
return 0;
@@ -95,12 +106,15 @@ cmCPackGenericGenerator* cmCPackGenerators::NewGeneratorInternal(
{
if ( !name )
{
+ fprintf(stderr, "*** 1 name==0\n");
return 0;
}
+ fprintf(stderr, "*** 2 name==%s\n", name);
cmCPackGenerators::t_GeneratorCreatorsMap::iterator it
= this->GeneratorCreators.find(name);
if ( it == this->GeneratorCreators.end() )
{
+ fprintf(stderr, "*** 2 name==%s not found\n", name);
return 0;
}
return (it->second)();