ENH: add empty RPM package generator, Eric Noulard wants to work on it
Alex
This commit is contained in:
parent
b34078bca9
commit
7432ef206e
@ -115,6 +115,7 @@ if(NOT CPACK_GENERATOR)
|
|||||||
option(CPACK_TGZ "Enable to build TGZ packages" ON)
|
option(CPACK_TGZ "Enable to build TGZ packages" ON)
|
||||||
option(CPACK_TBZ2 "Enable to build TBZ2 packages" ON)
|
option(CPACK_TBZ2 "Enable to build TBZ2 packages" ON)
|
||||||
option(CPACK_DEB "Enable to build Debian packages" OFF)
|
option(CPACK_DEB "Enable to build Debian packages" OFF)
|
||||||
|
option(CPACK_RPM "Enable to build RPM packages" OFF)
|
||||||
option(CPACK_NSIS "Enable to build NSIS packages" OFF)
|
option(CPACK_NSIS "Enable to build NSIS packages" OFF)
|
||||||
endif(CYGWIN)
|
endif(CYGWIN)
|
||||||
else(UNIX)
|
else(UNIX)
|
||||||
@ -126,6 +127,7 @@ if(NOT CPACK_GENERATOR)
|
|||||||
cpack_optional_append(CPACK_GENERATOR CPACK_OSXX11 OSXX11)
|
cpack_optional_append(CPACK_GENERATOR CPACK_OSXX11 OSXX11)
|
||||||
cpack_optional_append(CPACK_GENERATOR CPACK_CYGWIN_BINARY CygwinBinary)
|
cpack_optional_append(CPACK_GENERATOR CPACK_CYGWIN_BINARY CygwinBinary)
|
||||||
cpack_optional_append(CPACK_GENERATOR CPACK_DEB DEB)
|
cpack_optional_append(CPACK_GENERATOR CPACK_DEB DEB)
|
||||||
|
cpack_optional_append(CPACK_GENERATOR CPACK_RPM RPM)
|
||||||
cpack_optional_append(CPACK_GENERATOR CPACK_NSIS NSIS)
|
cpack_optional_append(CPACK_GENERATOR CPACK_NSIS NSIS)
|
||||||
cpack_optional_append(CPACK_GENERATOR CPACK_STGZ STGZ)
|
cpack_optional_append(CPACK_GENERATOR CPACK_STGZ STGZ)
|
||||||
cpack_optional_append(CPACK_GENERATOR CPACK_TGZ TGZ)
|
cpack_optional_append(CPACK_GENERATOR CPACK_TGZ TGZ)
|
||||||
|
14
Modules/CPackRPM.cmake
Normal file
14
Modules/CPackRPM.cmake
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
IF(CMAKE_BINARY_DIR)
|
||||||
|
MESSAGE(FATAL_ERROR "CPackRPM.cmake may only be used by CPack internally.")
|
||||||
|
ENDIF(CMAKE_BINARY_DIR)
|
||||||
|
|
||||||
|
IF(NOT UNIX)
|
||||||
|
MESSAGE(FATAL_ERROR "CPackRPM.cmake may only be used under UNIX.")
|
||||||
|
ENDIF(NOT UNIX)
|
||||||
|
|
||||||
|
FIND_PROGRAM(RPMBUILD_EXECUTABLE rpmbuild)
|
||||||
|
|
||||||
|
IF(NOT RPMBUILD_EXECUTABLE)
|
||||||
|
MESSAGE(FATAL_ERROR "RPM package requires rpmbuild executable")
|
||||||
|
ENDIF(NOT RPMBUILD_EXECUTABLE)
|
||||||
|
|
@ -305,6 +305,7 @@ SET(CPACK_SRCS
|
|||||||
CPack/cmCPackCygwinBinaryGenerator.cxx
|
CPack/cmCPackCygwinBinaryGenerator.cxx
|
||||||
CPack/cmCPackCygwinSourceGenerator.cxx
|
CPack/cmCPackCygwinSourceGenerator.cxx
|
||||||
CPack/cmCPackDebGenerator.cxx
|
CPack/cmCPackDebGenerator.cxx
|
||||||
|
CPack/cmCPackRPMGenerator.cxx
|
||||||
)
|
)
|
||||||
# Build CPackLib
|
# Build CPackLib
|
||||||
ADD_LIBRARY(CPackLib ${CPACK_SRCS})
|
ADD_LIBRARY(CPackLib ${CPACK_SRCS})
|
||||||
|
@ -37,6 +37,7 @@
|
|||||||
#if !defined(_WIN32) && !defined(__APPLE__) \
|
#if !defined(_WIN32) && !defined(__APPLE__) \
|
||||||
&& !defined(__QNXNTO__) && !defined(__BEOS__)
|
&& !defined(__QNXNTO__) && !defined(__BEOS__)
|
||||||
# include "cmCPackDebGenerator.h"
|
# include "cmCPackDebGenerator.h"
|
||||||
|
# include "cmCPackRPMGenerator.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@ -74,6 +75,8 @@ cmCPackGenerators::cmCPackGenerators()
|
|||||||
&& !defined(__QNXNTO__) && !defined(__BEOS__)
|
&& !defined(__QNXNTO__) && !defined(__BEOS__)
|
||||||
this->RegisterGenerator("DEB", "Debian packages",
|
this->RegisterGenerator("DEB", "Debian packages",
|
||||||
cmCPackDebGenerator::CreateGenerator);
|
cmCPackDebGenerator::CreateGenerator);
|
||||||
|
this->RegisterGenerator("RPM", "RPM packages",
|
||||||
|
cmCPackDebGenerator::CreateGenerator);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
58
Source/CPack/cmCPackRPMGenerator.cxx
Normal file
58
Source/CPack/cmCPackRPMGenerator.cxx
Normal file
@ -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 "cmCPackRPMGenerator.h"
|
||||||
|
|
||||||
|
#include "cmSystemTools.h"
|
||||||
|
#include "cmMakefile.h"
|
||||||
|
#include "cmGeneratedFileStream.h"
|
||||||
|
#include "cmCPackLog.h"
|
||||||
|
|
||||||
|
#include <cmsys/SystemTools.hxx>
|
||||||
|
#include <cmsys/Glob.hxx>
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
cmCPackRPMGenerator::cmCPackRPMGenerator()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
cmCPackRPMGenerator::~cmCPackRPMGenerator()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
int cmCPackRPMGenerator::CompressFiles(const char* outFileName,
|
||||||
|
const char* toplevel,
|
||||||
|
const std::vector<std::string>& files)
|
||||||
|
{
|
||||||
|
this->ReadListFile("CPackRPM.cmake");
|
||||||
|
if (!this->IsSet("RPMBUILD_EXECUTABLE"))
|
||||||
|
{
|
||||||
|
cmCPackLogger(cmCPackLog::LOG_ERROR, "Cannot find rpmbuild" << std::endl);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
const char* rpmbuildExecutable = this->GetOption("RPMBUILD_EXECUTABLE");
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
int cmCPackRPMGenerator::InitializeInternal()
|
||||||
|
{
|
||||||
|
return this->Superclass::InitializeInternal();
|
||||||
|
}
|
||||||
|
|
48
Source/CPack/cmCPackRPMGenerator.h
Normal file
48
Source/CPack/cmCPackRPMGenerator.h
Normal file
@ -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 cmCPackRPMGenerator_h
|
||||||
|
#define cmCPackRPMGenerator_h
|
||||||
|
|
||||||
|
|
||||||
|
#include "cmCPackGenericGenerator.h"
|
||||||
|
|
||||||
|
/** \class cmCPackRPMGenerator
|
||||||
|
* \brief A generator for RPM packages
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class cmCPackRPMGenerator : public cmCPackGenericGenerator
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
cmCPackTypeMacro(cmCPackRPMGenerator, cmCPackGenericGenerator);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Construct generator
|
||||||
|
*/
|
||||||
|
cmCPackRPMGenerator();
|
||||||
|
virtual ~cmCPackRPMGenerator();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual int InitializeInternal();
|
||||||
|
int CompressFiles(const char* outFileName, const char* toplevel,
|
||||||
|
const std::vector<std::string>& files);
|
||||||
|
virtual const char* GetOutputExtension() { return ".rpm"; }
|
||||||
|
virtual const char* GetInstallPrefix() { return "/usr"; }
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
Loading…
x
Reference in New Issue
Block a user