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_TBZ2 "Enable to build TBZ2 packages" ON)
|
||||
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)
|
||||
endif(CYGWIN)
|
||||
else(UNIX)
|
||||
@ -126,6 +127,7 @@ if(NOT CPACK_GENERATOR)
|
||||
cpack_optional_append(CPACK_GENERATOR CPACK_OSXX11 OSXX11)
|
||||
cpack_optional_append(CPACK_GENERATOR CPACK_CYGWIN_BINARY CygwinBinary)
|
||||
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_STGZ STGZ)
|
||||
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/cmCPackCygwinSourceGenerator.cxx
|
||||
CPack/cmCPackDebGenerator.cxx
|
||||
CPack/cmCPackRPMGenerator.cxx
|
||||
)
|
||||
# Build CPackLib
|
||||
ADD_LIBRARY(CPackLib ${CPACK_SRCS})
|
||||
|
@ -37,6 +37,7 @@
|
||||
#if !defined(_WIN32) && !defined(__APPLE__) \
|
||||
&& !defined(__QNXNTO__) && !defined(__BEOS__)
|
||||
# include "cmCPackDebGenerator.h"
|
||||
# include "cmCPackRPMGenerator.h"
|
||||
#endif
|
||||
|
||||
|
||||
@ -74,6 +75,8 @@ cmCPackGenerators::cmCPackGenerators()
|
||||
&& !defined(__QNXNTO__) && !defined(__BEOS__)
|
||||
this->RegisterGenerator("DEB", "Debian packages",
|
||||
cmCPackDebGenerator::CreateGenerator);
|
||||
this->RegisterGenerator("RPM", "RPM packages",
|
||||
cmCPackDebGenerator::CreateGenerator);
|
||||
#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