cmCPackArchiveGenerator: Code cleanup

This commit is contained in:
Regina Pfeifer
2019-08-28 21:36:38 +02:00
committed by Brad King
parent 787765d402
commit f7085d7b0a
24 changed files with 97 additions and 320 deletions

View File

@@ -978,12 +978,6 @@ set(CPACK_SRCS
CPack/cmCPackNSISGenerator.cxx
CPack/cmCPackNuGetGenerator.cxx
CPack/cmCPackSTGZGenerator.cxx
CPack/cmCPackTGZGenerator.cxx
CPack/cmCPackTXZGenerator.cxx
CPack/cmCPackTarBZip2Generator.cxx
CPack/cmCPackTarCompressGenerator.cxx
CPack/cmCPackZIPGenerator.cxx
CPack/cmCPack7zGenerator.cxx
)
# CPack IFW generator
set(CPACK_SRCS ${CPACK_SRCS}

View File

@@ -1,13 +0,0 @@
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
#include "cmCPack7zGenerator.h"
#include "cmArchiveWrite.h"
#include "cmCPackArchiveGenerator.h"
cmCPack7zGenerator::cmCPack7zGenerator()
: cmCPackArchiveGenerator(cmArchiveWrite::CompressNone, "7zip")
{
}
cmCPack7zGenerator::~cmCPack7zGenerator() = default;

View File

@@ -1,29 +0,0 @@
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
#ifndef cmCPack7zGenerator_h
#define cmCPack7zGenerator_h
#include "cmConfigure.h" // IWYU pragma: keep
#include "cmCPackArchiveGenerator.h"
#include "cmCPackGenerator.h"
/** \class cmCPack7zGenerator
* \brief A generator for 7z files
*/
class cmCPack7zGenerator : public cmCPackArchiveGenerator
{
public:
cmCPackTypeMacro(cmCPack7zGenerator, cmCPackArchiveGenerator);
/**
* Construct generator
*/
cmCPack7zGenerator();
~cmCPack7zGenerator() override;
protected:
const char* GetOutputExtension() override { return ".7z"; }
};
#endif

View File

@@ -16,11 +16,48 @@
#include <utility>
#include <vector>
cmCPackArchiveGenerator::cmCPackArchiveGenerator(cmArchiveWrite::Compress t,
std::string const& format)
cmCPackGenerator* cmCPackArchiveGenerator::Create7ZGenerator()
{
return new cmCPackArchiveGenerator(cmArchiveWrite::CompressNone, "7zip",
".7z");
}
cmCPackGenerator* cmCPackArchiveGenerator::CreateTBZ2Generator()
{
return new cmCPackArchiveGenerator(cmArchiveWrite::CompressBZip2, "paxr",
".tar.bz2");
}
cmCPackGenerator* cmCPackArchiveGenerator::CreateTGZGenerator()
{
return new cmCPackArchiveGenerator(cmArchiveWrite::CompressGZip, "paxr",
".tar.gz");
}
cmCPackGenerator* cmCPackArchiveGenerator::CreateTXZGenerator()
{
return new cmCPackArchiveGenerator(cmArchiveWrite::CompressXZ, "paxr",
".tar.xz");
}
cmCPackGenerator* cmCPackArchiveGenerator::CreateTZGenerator()
{
return new cmCPackArchiveGenerator(cmArchiveWrite::CompressCompress, "paxr",
".tar.Z");
}
cmCPackGenerator* cmCPackArchiveGenerator::CreateZIPGenerator()
{
return new cmCPackArchiveGenerator(cmArchiveWrite::CompressNone, "zip",
".zip");
}
cmCPackArchiveGenerator::cmCPackArchiveGenerator(
cmArchiveWrite::Compress compress, std::string format, std::string extension)
: Compress(compress)
, ArchiveFormat(std::move(format))
, OutputExtension(std::move(extension))
{
this->Compress = t;
this->ArchiveFormat = format;
}
cmCPackArchiveGenerator::~cmCPackArchiveGenerator() = default;

View File

@@ -24,10 +24,18 @@ class cmCPackArchiveGenerator : public cmCPackGenerator
public:
typedef cmCPackGenerator Superclass;
static cmCPackGenerator* Create7ZGenerator();
static cmCPackGenerator* CreateTBZ2Generator();
static cmCPackGenerator* CreateTGZGenerator();
static cmCPackGenerator* CreateTXZGenerator();
static cmCPackGenerator* CreateTZGenerator();
static cmCPackGenerator* CreateZIPGenerator();
/**
* Construct generator
*/
cmCPackArchiveGenerator(cmArchiveWrite::Compress, std::string const& format);
cmCPackArchiveGenerator(cmArchiveWrite::Compress t, std::string format,
std::string extension);
~cmCPackArchiveGenerator() override;
// Used to add a header to the archive
virtual int GenerateHeader(std::ostream* os);
@@ -68,9 +76,19 @@ protected:
* components will be put in a single installer.
*/
int PackageComponentsAllInOne();
const char* GetOutputExtension() override = 0;
private:
const char* GetNameOfClass() override { return "cmCPackArchiveGenerator"; }
const char* GetOutputExtension() override
{
return this->OutputExtension.c_str();
}
private:
cmArchiveWrite::Compress Compress;
std::string ArchiveFormat;
std::string OutputExtension;
};
#endif

View File

@@ -12,6 +12,7 @@
#include "cmsys/SystemTools.hxx"
cmCPackCygwinBinaryGenerator::cmCPackCygwinBinaryGenerator()
: cmCPackArchiveGenerator(cmArchiveWrite::CompressBZip2, "paxr", ".tar.bz2")
{
}

View File

@@ -3,15 +3,15 @@
#ifndef cmCPackCygwinBinaryGenerator_h
#define cmCPackCygwinBinaryGenerator_h
#include "cmCPackTarBZip2Generator.h"
#include "cmCPackArchiveGenerator.h"
/** \class cmCPackCygwinBinaryGenerator
* \brief A generator for TarBZip2 files
*/
class cmCPackCygwinBinaryGenerator : public cmCPackTarBZip2Generator
class cmCPackCygwinBinaryGenerator : public cmCPackArchiveGenerator
{
public:
cmCPackTypeMacro(cmCPackCygwinBinaryGenerator, cmCPackTarBZip2Generator);
cmCPackTypeMacro(cmCPackCygwinBinaryGenerator, cmCPackArchiveGenerator);
/**
* Construct generator

View File

@@ -20,6 +20,7 @@
#endif
cmCPackCygwinSourceGenerator::cmCPackCygwinSourceGenerator()
: cmCPackArchiveGenerator(cmArchiveWrite::CompressBZip2, "paxr", ".tar.bz2")
{
}
@@ -40,11 +41,8 @@ int cmCPackCygwinSourceGenerator::PackageFiles()
cmStrCat(this->GetOption("CPACK_TEMPORARY_DIRECTORY"), ".tar.bz2");
packageFileNames[0] = packageDirFileName;
std::string output;
// skip one parent up to the cmCPackTarBZip2Generator
// to create tar.bz2 file with the list of source
// files
this->Compress = cmArchiveWrite::CompressBZip2;
if (!this->cmCPackTarBZip2Generator::PackageFiles()) {
// create tar.bz2 file with the list of source files
if (!this->cmCPackArchiveGenerator::PackageFiles()) {
return 0;
}
// Now create a tar file that contains the above .tar.bz2 file
@@ -130,7 +128,7 @@ int cmCPackCygwinSourceGenerator::PackageFiles()
packageFileNames[0] = outerTarFile;
/* update the toplevel dir */
toplevel = tmpDir;
if (!this->cmCPackTarBZip2Generator::PackageFiles()) {
if (!this->cmCPackArchiveGenerator::PackageFiles()) {
return 0;
}
return 1;

View File

@@ -3,15 +3,15 @@
#ifndef cmCPackCygwinSourceGenerator_h
#define cmCPackCygwinSourceGenerator_h
#include "cmCPackTarBZip2Generator.h"
#include "cmCPackArchiveGenerator.h"
/** \class cmCPackCygwinSourceGenerator
* \brief A generator for cygwin source files
*/
class cmCPackCygwinSourceGenerator : public cmCPackTarBZip2Generator
class cmCPackCygwinSourceGenerator : public cmCPackArchiveGenerator
{
public:
cmCPackTypeMacro(cmCPackCygwinSourceGenerator, cmCPackTarBZip2Generator);
cmCPackTypeMacro(cmCPackCygwinSourceGenerator, cmCPackArchiveGenerator);
/**
* Construct generator

View File

@@ -21,7 +21,7 @@
#include <utility>
cmCPackFreeBSDGenerator::cmCPackFreeBSDGenerator()
: cmCPackArchiveGenerator(cmArchiveWrite::CompressXZ, "paxr")
: cmCPackArchiveGenerator(cmArchiveWrite::CompressXZ, "paxr", ".txz")
{
}
@@ -276,12 +276,6 @@ void write_manifest_files(cmGeneratedFileStream& s,
s << " },\n";
}
static bool has_suffix(const std::string& str, const std::string& suffix)
{
return str.size() >= suffix.size() &&
str.compare(str.size() - suffix.size(), suffix.size(), suffix) == 0;
}
int cmCPackFreeBSDGenerator::PackageFiles()
{
if (!this->ReadListFile("Internal/CPack/CPackFreeBSD.cmake")) {
@@ -327,13 +321,13 @@ int cmCPackFreeBSDGenerator::PackageFiles()
pkg_create_from_manifest(output_dir.c_str(), ::TXZ, toplevel.c_str(),
manifestname.c_str(), nullptr);
std::string broken_suffix = std::string("-") +
var_lookup("CPACK_TOPLEVEL_TAG") + std::string(GetOutputExtension());
std::string broken_suffix =
cmStrCat('-', var_lookup("CPACK_TOPLEVEL_TAG"), ".txz");
for (std::string& name : packageFileNames) {
cmCPackLogger(cmCPackLog::LOG_DEBUG, "Packagefile " << name << std::endl);
if (has_suffix(name, broken_suffix)) {
if (cmHasSuffix(name, broken_suffix)) {
name.replace(name.size() - broken_suffix.size(), std::string::npos,
GetOutputExtension());
".txz");
break;
}
}

View File

@@ -28,8 +28,6 @@ public:
int PackageFiles() override;
protected:
const char* GetOutputExtension() override { return ".txz"; }
std::string var_lookup(const char* var_name);
void write_manifest_fields(cmGeneratedFileStream&);
};

View File

@@ -7,10 +7,10 @@
#include "IFW/cmCPackIFWGenerator.h"
#include "cmAlgorithms.h"
#include "cmCPack7zGenerator.h"
#ifdef HAVE_FREEBSD_PKG
# include "cmCPackFreeBSDGenerator.h"
#endif
#include "cmCPackArchiveGenerator.h"
#include "cmCPackDebGenerator.h"
#include "cmCPackExternalGenerator.h"
#include "cmCPackGenerator.h"
@@ -18,11 +18,6 @@
#include "cmCPackNSISGenerator.h"
#include "cmCPackNuGetGenerator.h"
#include "cmCPackSTGZGenerator.h"
#include "cmCPackTGZGenerator.h"
#include "cmCPackTXZGenerator.h"
#include "cmCPackTarBZip2Generator.h"
#include "cmCPackTarCompressGenerator.h"
#include "cmCPackZIPGenerator.h"
#ifdef __APPLE__
# include "cmCPackBundleGenerator.h"
@@ -48,13 +43,19 @@
cmCPackGeneratorFactory::cmCPackGeneratorFactory()
{
if (cmCPackTGZGenerator::CanGenerate()) {
if (cmCPackArchiveGenerator::CanGenerate()) {
this->RegisterGenerator("7Z", "7-Zip file format",
cmCPackArchiveGenerator::Create7ZGenerator);
this->RegisterGenerator("TBZ2", "Tar BZip2 compression",
cmCPackArchiveGenerator::CreateTBZ2Generator);
this->RegisterGenerator("TGZ", "Tar GZip compression",
cmCPackTGZGenerator::CreateGenerator);
}
if (cmCPackTXZGenerator::CanGenerate()) {
cmCPackArchiveGenerator::CreateTGZGenerator);
this->RegisterGenerator("TXZ", "Tar XZ compression",
cmCPackTXZGenerator::CreateGenerator);
cmCPackArchiveGenerator::CreateTXZGenerator);
this->RegisterGenerator("TZ", "Tar Compress compression",
cmCPackArchiveGenerator::CreateTZGenerator);
this->RegisterGenerator("ZIP", "ZIP file format",
cmCPackArchiveGenerator::CreateZIPGenerator);
}
if (cmCPackSTGZGenerator::CanGenerate()) {
this->RegisterGenerator("STGZ", "Self extracting Tar GZip compression",
@@ -80,29 +81,12 @@ cmCPackGeneratorFactory::cmCPackGeneratorFactory()
cmCPackCygwinSourceGenerator::CreateGenerator);
}
#endif
if (cmCPackZIPGenerator::CanGenerate()) {
this->RegisterGenerator("ZIP", "ZIP file format",
cmCPackZIPGenerator::CreateGenerator);
}
if (cmCPack7zGenerator::CanGenerate()) {
this->RegisterGenerator("7Z", "7-Zip file format",
cmCPack7zGenerator::CreateGenerator);
}
#if defined(_WIN32) || (defined(__CYGWIN__) && defined(HAVE_LIBUUID))
if (cmCPackWIXGenerator::CanGenerate()) {
this->RegisterGenerator("WIX", "MSI file format via WiX tools",
cmCPackWIXGenerator::CreateGenerator);
}
#endif
if (cmCPackTarBZip2Generator::CanGenerate()) {
this->RegisterGenerator("TBZ2", "Tar BZip2 compression",
cmCPackTarBZip2Generator::CreateGenerator);
}
if (cmCPackTarCompressGenerator::CanGenerate()) {
this->RegisterGenerator("TZ", "Tar Compress compression",
cmCPackTarCompressGenerator::CreateGenerator);
}
if (cmCPackDebGenerator::CanGenerate()) {
this->RegisterGenerator("DEB", "Debian packages",
cmCPackDebGenerator::CreateGenerator);

View File

@@ -8,12 +8,16 @@
#include <string>
#include <vector>
#include "cmArchiveWrite.h"
#include "cmCPackGenerator.h"
#include "cmCPackLog.h"
#include "cmSystemTools.h"
#include "cm_sys_stat.h"
cmCPackSTGZGenerator::cmCPackSTGZGenerator() = default;
cmCPackSTGZGenerator::cmCPackSTGZGenerator()
: cmCPackArchiveGenerator(cmArchiveWrite::CompressGZip, "paxr", ".sh")
{
}
cmCPackSTGZGenerator::~cmCPackSTGZGenerator() = default;

View File

@@ -5,8 +5,8 @@
#include "cmConfigure.h" // IWYU pragma: keep
#include "cmCPackArchiveGenerator.h"
#include "cmCPackGenerator.h"
#include "cmCPackTGZGenerator.h"
#include <iosfwd>
@@ -14,10 +14,10 @@
* \brief A generator for Self extractable TGZ files
*
*/
class cmCPackSTGZGenerator : public cmCPackTGZGenerator
class cmCPackSTGZGenerator : public cmCPackArchiveGenerator
{
public:
cmCPackTypeMacro(cmCPackSTGZGenerator, cmCPackTGZGenerator);
cmCPackTypeMacro(cmCPackSTGZGenerator, cmCPackArchiveGenerator);
/**
* Construct generator
@@ -29,7 +29,6 @@ protected:
int PackageFiles() override;
int InitializeInternal() override;
int GenerateHeader(std::ostream* os) override;
const char* GetOutputExtension() override { return ".sh"; }
};
#endif

View File

@@ -1,13 +0,0 @@
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
#include "cmCPackTGZGenerator.h"
#include "cmArchiveWrite.h"
#include "cmCPackArchiveGenerator.h"
cmCPackTGZGenerator::cmCPackTGZGenerator()
: cmCPackArchiveGenerator(cmArchiveWrite::CompressGZip, "paxr")
{
}
cmCPackTGZGenerator::~cmCPackTGZGenerator() = default;

View File

@@ -1,29 +0,0 @@
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
#ifndef cmCPackTGZGenerator_h
#define cmCPackTGZGenerator_h
#include "cmConfigure.h" // IWYU pragma: keep
#include "cmCPackArchiveGenerator.h"
#include "cmCPackGenerator.h"
/** \class cmCPackTGZGenerator
* \brief A generator for TGZ files
*
*/
class cmCPackTGZGenerator : public cmCPackArchiveGenerator
{
public:
cmCPackTypeMacro(cmCPackTGZGenerator, cmCPackArchiveGenerator);
/**
* Construct generator
*/
cmCPackTGZGenerator();
~cmCPackTGZGenerator() override;
protected:
const char* GetOutputExtension() override { return ".tar.gz"; }
};
#endif

View File

@@ -1,13 +0,0 @@
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
#include "cmCPackTXZGenerator.h"
#include "cmArchiveWrite.h"
#include "cmCPackArchiveGenerator.h"
cmCPackTXZGenerator::cmCPackTXZGenerator()
: cmCPackArchiveGenerator(cmArchiveWrite::CompressXZ, "paxr")
{
}
cmCPackTXZGenerator::~cmCPackTXZGenerator() = default;

View File

@@ -1,29 +0,0 @@
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
#ifndef cmCPackTXZGenerator_h
#define cmCPackTXZGenerator_h
#include "cmConfigure.h" // IWYU pragma: keep
#include "cmCPackArchiveGenerator.h"
#include "cmCPackGenerator.h"
/** \class cmCPackTXZGenerator
* \brief A generator for TXZ files
*
*/
class cmCPackTXZGenerator : public cmCPackArchiveGenerator
{
public:
cmCPackTypeMacro(cmCPackTXZGenerator, cmCPackArchiveGenerator);
/**
* Construct generator
*/
cmCPackTXZGenerator();
~cmCPackTXZGenerator() override;
protected:
const char* GetOutputExtension() override { return ".tar.xz"; }
};
#endif

View File

@@ -1,13 +0,0 @@
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
#include "cmCPackTarBZip2Generator.h"
#include "cmArchiveWrite.h"
#include "cmCPackArchiveGenerator.h"
cmCPackTarBZip2Generator::cmCPackTarBZip2Generator()
: cmCPackArchiveGenerator(cmArchiveWrite::CompressBZip2, "paxr")
{
}
cmCPackTarBZip2Generator::~cmCPackTarBZip2Generator() = default;

View File

@@ -1,28 +0,0 @@
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
#ifndef cmCPackTarBZip2Generator_h
#define cmCPackTarBZip2Generator_h
#include "cmConfigure.h" // IWYU pragma: keep
#include "cmCPackArchiveGenerator.h"
#include "cmCPackGenerator.h"
/** \class cmCPackTarBZip2Generator
* \brief A generator for TarBZip2 files
*/
class cmCPackTarBZip2Generator : public cmCPackArchiveGenerator
{
public:
cmCPackTypeMacro(cmCPackTarBZip2Generator, cmCPackArchiveGenerator);
/**
* Construct generator
*/
cmCPackTarBZip2Generator();
~cmCPackTarBZip2Generator() override;
protected:
const char* GetOutputExtension() override { return ".tar.bz2"; }
};
#endif

View File

@@ -1,13 +0,0 @@
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
#include "cmCPackTarCompressGenerator.h"
#include "cmArchiveWrite.h"
#include "cmCPackArchiveGenerator.h"
cmCPackTarCompressGenerator::cmCPackTarCompressGenerator()
: cmCPackArchiveGenerator(cmArchiveWrite::CompressCompress, "paxr")
{
}
cmCPackTarCompressGenerator::~cmCPackTarCompressGenerator() = default;

View File

@@ -1,28 +0,0 @@
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
#ifndef cmCPackTarCompressGenerator_h
#define cmCPackTarCompressGenerator_h
#include "cmConfigure.h" // IWYU pragma: keep
#include "cmCPackArchiveGenerator.h"
#include "cmCPackGenerator.h"
/** \class cmCPackTarCompressGenerator
* \brief A generator for TarCompress files
*/
class cmCPackTarCompressGenerator : public cmCPackArchiveGenerator
{
public:
cmCPackTypeMacro(cmCPackTarCompressGenerator, cmCPackArchiveGenerator);
/**
* Construct generator
*/
cmCPackTarCompressGenerator();
~cmCPackTarCompressGenerator() override;
protected:
const char* GetOutputExtension() override { return ".tar.Z"; }
};
#endif

View File

@@ -1,13 +0,0 @@
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
#include "cmCPackZIPGenerator.h"
#include "cmArchiveWrite.h"
#include "cmCPackArchiveGenerator.h"
cmCPackZIPGenerator::cmCPackZIPGenerator()
: cmCPackArchiveGenerator(cmArchiveWrite::CompressNone, "zip")
{
}
cmCPackZIPGenerator::~cmCPackZIPGenerator() = default;

View File

@@ -1,29 +0,0 @@
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
#ifndef cmCPackZIPGenerator_h
#define cmCPackZIPGenerator_h
#include "cmConfigure.h" // IWYU pragma: keep
#include "cmCPackArchiveGenerator.h"
#include "cmCPackGenerator.h"
/** \class cmCPackZIPGenerator
* \brief A generator for ZIP files
*/
class cmCPackZIPGenerator : public cmCPackArchiveGenerator
{
public:
cmCPackTypeMacro(cmCPackZIPGenerator, cmCPackArchiveGenerator);
/**
* Construct generator
*/
cmCPackZIPGenerator();
~cmCPackZIPGenerator() override;
protected:
const char* GetOutputExtension() override { return ".zip"; }
};
#endif