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/cmCPackZIPGenerator.cxx
|
||||||
CPack/cmCPackCygwinBinaryGenerator.cxx
|
CPack/cmCPackCygwinBinaryGenerator.cxx
|
||||||
CPack/cmCPackCygwinSourceGenerator.cxx
|
CPack/cmCPackCygwinSourceGenerator.cxx
|
||||||
|
CPack/cmCPackDebGenerator.cxx
|
||||||
)
|
)
|
||||||
# Build CPackLib
|
# Build CPackLib
|
||||||
ADD_LIBRARY(CPackLib ${CPACK_SRCS})
|
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"
|
# include "cmCPackCygwinSourceGenerator.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if !defined(_WIN32) && !defined(__APPLE__) \
|
||||||
|
&& !defined(__QNXNTO__) && !defined(__BEOS__)
|
||||||
|
# include "cmCPackDebGenerator.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#include "cmCPackLog.h"
|
#include "cmCPackLog.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
@ -64,6 +70,10 @@ cmCPackGenerators::cmCPackGenerators()
|
||||||
this->RegisterGenerator("OSXX11", "Mac OSX X11 bundle",
|
this->RegisterGenerator("OSXX11", "Mac OSX X11 bundle",
|
||||||
cmCPackOSXX11Generator::CreateGenerator);
|
cmCPackOSXX11Generator::CreateGenerator);
|
||||||
#endif
|
#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* cmCPackGenerators::NewGenerator(const char* name)
|
||||||
{
|
{
|
||||||
cmCPackGenericGenerator* gen = this->NewGeneratorInternal(name);
|
cmCPackGenericGenerator* gen = this->NewGeneratorInternal(name);
|
||||||
|
fprintf(stderr, "********* NewGen %s\n", name);
|
||||||
if ( !gen )
|
if ( !gen )
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -95,12 +106,15 @@ cmCPackGenericGenerator* cmCPackGenerators::NewGeneratorInternal(
|
||||||
{
|
{
|
||||||
if ( !name )
|
if ( !name )
|
||||||
{
|
{
|
||||||
|
fprintf(stderr, "*** 1 name==0\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
fprintf(stderr, "*** 2 name==%s\n", name);
|
||||||
cmCPackGenerators::t_GeneratorCreatorsMap::iterator it
|
cmCPackGenerators::t_GeneratorCreatorsMap::iterator it
|
||||||
= this->GeneratorCreators.find(name);
|
= this->GeneratorCreators.find(name);
|
||||||
if ( it == this->GeneratorCreators.end() )
|
if ( it == this->GeneratorCreators.end() )
|
||||||
{
|
{
|
||||||
|
fprintf(stderr, "*** 2 name==%s not found\n", name);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return (it->second)();
|
return (it->second)();
|
||||||
|
|
|
@ -690,10 +690,17 @@ void cmake::SetDirectoriesFromFile(const char* arg)
|
||||||
// cache
|
// cache
|
||||||
int cmake::AddCMakePaths(const char *arg0)
|
int cmake::AddCMakePaths(const char *arg0)
|
||||||
{
|
{
|
||||||
// Find our own executable.
|
// Find the cmake executable
|
||||||
std::vector<cmStdString> failures;
|
std::vector<cmStdString> failures;
|
||||||
std::string cMakeSelf = arg0;
|
std::string cMakeSelf = arg0;
|
||||||
cmSystemTools::ConvertToUnixSlashes(cMakeSelf);
|
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);
|
failures.push_back(cMakeSelf);
|
||||||
cMakeSelf = cmSystemTools::FindProgram(cMakeSelf.c_str());
|
cMakeSelf = cmSystemTools::FindProgram(cMakeSelf.c_str());
|
||||||
cmSystemTools::ConvertToUnixSlashes(cMakeSelf);
|
cmSystemTools::ConvertToUnixSlashes(cMakeSelf);
|
||||||
|
@ -746,6 +753,12 @@ int cmake::AddCMakePaths(const char *arg0)
|
||||||
editCacheCommand = cmSystemTools::GetFilenamePath(cMakeSelf) +
|
editCacheCommand = cmSystemTools::GetFilenamePath(cMakeSelf) +
|
||||||
"/CMakeSetup" + cmSystemTools::GetFilenameExtension(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) +
|
std::string ctestCommand = cmSystemTools::GetFilenamePath(cMakeSelf) +
|
||||||
"/ctest" + cmSystemTools::GetFilenameExtension(cMakeSelf);
|
"/ctest" + cmSystemTools::GetFilenameExtension(cMakeSelf);
|
||||||
if(cmSystemTools::FileExists(ctestCommand.c_str()))
|
if(cmSystemTools::FileExists(ctestCommand.c_str()))
|
||||||
|
@ -754,11 +767,13 @@ int cmake::AddCMakePaths(const char *arg0)
|
||||||
("CMAKE_CTEST_COMMAND", ctestCommand.c_str(),
|
("CMAKE_CTEST_COMMAND", ctestCommand.c_str(),
|
||||||
"Path to ctest program executable.", cmCacheManager::INTERNAL);
|
"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
|
this->CacheManager->AddCacheEntry
|
||||||
("CMAKE_EDIT_COMMAND", editCacheCommand.c_str(),
|
("CMAKE_CPACK_COMMAND", cpackCommand.c_str(),
|
||||||
"Path to cache edit program executable.", cmCacheManager::INTERNAL);
|
"Path to cpack program executable.", cmCacheManager::INTERNAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
// do CMAKE_ROOT, look for the environment variable first
|
// do CMAKE_ROOT, look for the environment variable first
|
||||||
|
|
Loading…
Reference in New Issue