parent
38065563b6
commit
f931a18c33
|
@ -0,0 +1,5 @@
|
||||||
|
cpack-add-lzma
|
||||||
|
--------------
|
||||||
|
|
||||||
|
* :manual:`cpack(1)` gained ``7Z`` and ``TXZ`` generators supporting
|
||||||
|
lzma-compressed archives.
|
|
@ -580,9 +580,11 @@ set(CPACK_SRCS
|
||||||
CPack/cmCPackIFWGenerator.cxx
|
CPack/cmCPackIFWGenerator.cxx
|
||||||
CPack/cmCPackSTGZGenerator.cxx
|
CPack/cmCPackSTGZGenerator.cxx
|
||||||
CPack/cmCPackTGZGenerator.cxx
|
CPack/cmCPackTGZGenerator.cxx
|
||||||
|
CPack/cmCPackTXZGenerator.cxx
|
||||||
CPack/cmCPackTarBZip2Generator.cxx
|
CPack/cmCPackTarBZip2Generator.cxx
|
||||||
CPack/cmCPackTarCompressGenerator.cxx
|
CPack/cmCPackTarCompressGenerator.cxx
|
||||||
CPack/cmCPackZIPGenerator.cxx
|
CPack/cmCPackZIPGenerator.cxx
|
||||||
|
CPack/cmCPack7zGenerator.cxx
|
||||||
)
|
)
|
||||||
|
|
||||||
if(CYGWIN)
|
if(CYGWIN)
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
/*============================================================================
|
||||||
|
CMake - Cross Platform Makefile Generator
|
||||||
|
Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
|
||||||
|
|
||||||
|
Distributed under the OSI-approved BSD License (the "License");
|
||||||
|
see accompanying file Copyright.txt for details.
|
||||||
|
|
||||||
|
This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
See the License for more information.
|
||||||
|
============================================================================*/
|
||||||
|
|
||||||
|
#include "cmCPack7zGenerator.h"
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
cmCPack7zGenerator::cmCPack7zGenerator()
|
||||||
|
:cmCPackArchiveGenerator(cmArchiveWrite::CompressNone,
|
||||||
|
cmArchiveWrite::Type7Zip)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
cmCPack7zGenerator::~cmCPack7zGenerator()
|
||||||
|
{
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
/*============================================================================
|
||||||
|
CMake - Cross Platform Makefile Generator
|
||||||
|
Copyright 2000-2009 Kitware, Inc.
|
||||||
|
|
||||||
|
Distributed under the OSI-approved BSD License (the "License");
|
||||||
|
see accompanying file Copyright.txt for details.
|
||||||
|
|
||||||
|
This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
See the License for more information.
|
||||||
|
============================================================================*/
|
||||||
|
|
||||||
|
#ifndef cmCPack7zGenerator_h
|
||||||
|
#define cmCPack7zGenerator_h
|
||||||
|
|
||||||
|
#include "cmCPackArchiveGenerator.h"
|
||||||
|
|
||||||
|
/** \class cmCPack7zGenerator
|
||||||
|
* \brief A generator for 7z files
|
||||||
|
*/
|
||||||
|
class cmCPack7zGenerator : public cmCPackArchiveGenerator
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
cmCPackTypeMacro(cmCPack7zGenerator, cmCPackArchiveGenerator);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Construct generator
|
||||||
|
*/
|
||||||
|
cmCPack7zGenerator();
|
||||||
|
virtual ~cmCPack7zGenerator();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual const char* GetOutputExtension() { return ".7z"; }
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -14,9 +14,11 @@
|
||||||
|
|
||||||
#include "cmCPackGenerator.h"
|
#include "cmCPackGenerator.h"
|
||||||
#include "cmCPackTGZGenerator.h"
|
#include "cmCPackTGZGenerator.h"
|
||||||
|
#include "cmCPackTXZGenerator.h"
|
||||||
#include "cmCPackTarBZip2Generator.h"
|
#include "cmCPackTarBZip2Generator.h"
|
||||||
#include "cmCPackTarCompressGenerator.h"
|
#include "cmCPackTarCompressGenerator.h"
|
||||||
#include "cmCPackZIPGenerator.h"
|
#include "cmCPackZIPGenerator.h"
|
||||||
|
#include "cmCPack7zGenerator.h"
|
||||||
#include "cmCPackSTGZGenerator.h"
|
#include "cmCPackSTGZGenerator.h"
|
||||||
#include "cmCPackNSISGenerator.h"
|
#include "cmCPackNSISGenerator.h"
|
||||||
#include "cmCPackIFWGenerator.h"
|
#include "cmCPackIFWGenerator.h"
|
||||||
|
@ -57,6 +59,11 @@ cmCPackGeneratorFactory::cmCPackGeneratorFactory()
|
||||||
this->RegisterGenerator("TGZ", "Tar GZip compression",
|
this->RegisterGenerator("TGZ", "Tar GZip compression",
|
||||||
cmCPackTGZGenerator::CreateGenerator);
|
cmCPackTGZGenerator::CreateGenerator);
|
||||||
}
|
}
|
||||||
|
if (cmCPackTXZGenerator::CanGenerate())
|
||||||
|
{
|
||||||
|
this->RegisterGenerator("TXZ", "Tar XZ compression",
|
||||||
|
cmCPackTXZGenerator::CreateGenerator);
|
||||||
|
}
|
||||||
if (cmCPackSTGZGenerator::CanGenerate())
|
if (cmCPackSTGZGenerator::CanGenerate())
|
||||||
{
|
{
|
||||||
this->RegisterGenerator("STGZ", "Self extracting Tar GZip compression",
|
this->RegisterGenerator("STGZ", "Self extracting Tar GZip compression",
|
||||||
|
@ -92,6 +99,11 @@ cmCPackGeneratorFactory::cmCPackGeneratorFactory()
|
||||||
this->RegisterGenerator("ZIP", "ZIP file format",
|
this->RegisterGenerator("ZIP", "ZIP file format",
|
||||||
cmCPackZIPGenerator::CreateGenerator);
|
cmCPackZIPGenerator::CreateGenerator);
|
||||||
}
|
}
|
||||||
|
if (cmCPack7zGenerator::CanGenerate())
|
||||||
|
{
|
||||||
|
this->RegisterGenerator("7Z", "7-Zip file format",
|
||||||
|
cmCPack7zGenerator::CreateGenerator);
|
||||||
|
}
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
if (cmCPackWIXGenerator::CanGenerate())
|
if (cmCPackWIXGenerator::CanGenerate())
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
/*============================================================================
|
||||||
|
CMake - Cross Platform Makefile Generator
|
||||||
|
Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
|
||||||
|
|
||||||
|
Distributed under the OSI-approved BSD License (the "License");
|
||||||
|
see accompanying file Copyright.txt for details.
|
||||||
|
|
||||||
|
This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
See the License for more information.
|
||||||
|
============================================================================*/
|
||||||
|
|
||||||
|
#include "cmCPackTXZGenerator.h"
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
cmCPackTXZGenerator::cmCPackTXZGenerator()
|
||||||
|
:cmCPackArchiveGenerator(cmArchiveWrite::CompressXZ,
|
||||||
|
cmArchiveWrite::TypeTAR)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
cmCPackTXZGenerator::~cmCPackTXZGenerator()
|
||||||
|
{
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
/*============================================================================
|
||||||
|
CMake - Cross Platform Makefile Generator
|
||||||
|
Copyright 2000-2009 Kitware, Inc.
|
||||||
|
|
||||||
|
Distributed under the OSI-approved BSD License (the "License");
|
||||||
|
see accompanying file Copyright.txt for details.
|
||||||
|
|
||||||
|
This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
See the License for more information.
|
||||||
|
============================================================================*/
|
||||||
|
|
||||||
|
#ifndef cmCPackTXZGenerator_h
|
||||||
|
#define cmCPackTXZGenerator_h
|
||||||
|
|
||||||
|
#include "cmCPackArchiveGenerator.h"
|
||||||
|
|
||||||
|
/** \class cmCPackTXZGenerator
|
||||||
|
* \brief A generator for TXZ files
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class cmCPackTXZGenerator : public cmCPackArchiveGenerator
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
cmCPackTypeMacro(cmCPackTXZGenerator, cmCPackArchiveGenerator);
|
||||||
|
/**
|
||||||
|
* Construct generator
|
||||||
|
*/
|
||||||
|
cmCPackTXZGenerator();
|
||||||
|
virtual ~cmCPackTXZGenerator();
|
||||||
|
protected:
|
||||||
|
virtual const char* GetOutputExtension() { return ".tar.xz"; }
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -160,6 +160,14 @@ cmArchiveWrite::cmArchiveWrite(std::ostream& os, Compress c, Type t):
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case Type7Zip:
|
||||||
|
if(archive_write_set_format_7zip(this->Archive) != ARCHIVE_OK)
|
||||||
|
{
|
||||||
|
this->Error = "archive_write_set_format_7zip: ";
|
||||||
|
this->Error += cm_archive_error_string(this->Archive);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// do not pad the last block!!
|
// do not pad the last block!!
|
||||||
|
|
|
@ -42,7 +42,8 @@ public:
|
||||||
enum Type
|
enum Type
|
||||||
{
|
{
|
||||||
TypeTAR,
|
TypeTAR,
|
||||||
TypeZIP
|
TypeZIP,
|
||||||
|
Type7Zip
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Construct with output stream to which to write archive. */
|
/** Construct with output stream to which to write archive. */
|
||||||
|
|
Loading…
Reference in New Issue