ENH: add an empty debian package generator, Mathieu volunteered to fill it
:-) Alex
This commit is contained in:
parent
f4ac0f8373
commit
a39aff52a0
|
@ -0,0 +1,10 @@
|
|||
IF(CMAKE_BINARY_DIR)
|
||||
MESSAGE(FATAL_ERROR "CPackDeb.cmake may only be used by CPack internally.")
|
||||
ENDIF(CMAKE_BINARY_DIR)
|
||||
|
||||
IF(NOT UNIX)
|
||||
MESSAGE(FATAL_ERROR "CPackDeb.cmake may only be used under UNIX.")
|
||||
ENDIF(NOT UNIX)
|
||||
|
||||
FIND_PROGRAM(AR_EXECUTABLE ar)
|
||||
|
|
@ -302,6 +302,7 @@ SET(CPACK_SRCS
|
|||
CPack/cmCPackZIPGenerator.cxx
|
||||
CPack/cmCPackCygwinBinaryGenerator.cxx
|
||||
CPack/cmCPackCygwinSourceGenerator.cxx
|
||||
CPack/cmCPackDebGenerator.cxx
|
||||
)
|
||||
# Build CPackLib
|
||||
ADD_LIBRARY(CPackLib ${CPACK_SRCS})
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
@ -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
|
|
@ -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)();
|
||||
|
|
|
@ -690,10 +690,17 @@ void cmake::SetDirectoriesFromFile(const char* arg)
|
|||
// cache
|
||||
int cmake::AddCMakePaths(const char *arg0)
|
||||
{
|
||||
// Find our own executable.
|
||||
// Find the cmake executable
|
||||
std::vector<cmStdString> failures;
|
||||
std::string cMakeSelf = arg0;
|
||||
cmSystemTools::ConvertToUnixSlashes(cMakeSelf);
|
||||
if ((strstr(arg0, "cpack")!=0) || (strstr(arg0, "ctest")!=0))
|
||||
{
|
||||
// when called from cpack or ctest CMAKE_COMMAND would otherwise point
|
||||
// to cpack or ctest and not cmake
|
||||
cMakeSelf = cmSystemTools::GetFilenamePath(cMakeSelf) +
|
||||
"/cmake" + cmSystemTools::GetFilenameExtension(cMakeSelf);
|
||||
}
|
||||
failures.push_back(cMakeSelf);
|
||||
cMakeSelf = cmSystemTools::FindProgram(cMakeSelf.c_str());
|
||||
cmSystemTools::ConvertToUnixSlashes(cMakeSelf);
|
||||
|
@ -746,6 +753,12 @@ int cmake::AddCMakePaths(const char *arg0)
|
|||
editCacheCommand = cmSystemTools::GetFilenamePath(cMakeSelf) +
|
||||
"/CMakeSetup" + cmSystemTools::GetFilenameExtension(cMakeSelf);
|
||||
}
|
||||
if(cmSystemTools::FileExists(editCacheCommand.c_str()))
|
||||
{
|
||||
this->CacheManager->AddCacheEntry
|
||||
("CMAKE_EDIT_COMMAND", editCacheCommand.c_str(),
|
||||
"Path to cache edit program executable.", cmCacheManager::INTERNAL);
|
||||
}
|
||||
std::string ctestCommand = cmSystemTools::GetFilenamePath(cMakeSelf) +
|
||||
"/ctest" + cmSystemTools::GetFilenameExtension(cMakeSelf);
|
||||
if(cmSystemTools::FileExists(ctestCommand.c_str()))
|
||||
|
@ -754,11 +767,13 @@ int cmake::AddCMakePaths(const char *arg0)
|
|||
("CMAKE_CTEST_COMMAND", ctestCommand.c_str(),
|
||||
"Path to ctest program executable.", cmCacheManager::INTERNAL);
|
||||
}
|
||||
if(cmSystemTools::FileExists(editCacheCommand.c_str()))
|
||||
std::string cpackCommand = cmSystemTools::GetFilenamePath(cMakeSelf) +
|
||||
"/cpack" + cmSystemTools::GetFilenameExtension(cMakeSelf);
|
||||
if(cmSystemTools::FileExists(ctestCommand.c_str()))
|
||||
{
|
||||
this->CacheManager->AddCacheEntry
|
||||
("CMAKE_EDIT_COMMAND", editCacheCommand.c_str(),
|
||||
"Path to cache edit program executable.", cmCacheManager::INTERNAL);
|
||||
("CMAKE_CPACK_COMMAND", cpackCommand.c_str(),
|
||||
"Path to cpack program executable.", cmCacheManager::INTERNAL);
|
||||
}
|
||||
|
||||
// do CMAKE_ROOT, look for the environment variable first
|
||||
|
|
Loading…
Reference in New Issue