Merge topic 'cpack-tar'

09d5a4d7f0 CPack: add uncompressed TAR support
9d4be239b2 Help: Improve CPack Archive generator format list layout

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10265
This commit is contained in:
Brad King
2025-02-01 12:16:25 +00:00
committed by Kitware Robot
10 changed files with 48 additions and 15 deletions

View File

@@ -4,19 +4,29 @@ CPack Archive Generator
CPack generator for packaging files into an archive, which can have
any of the following formats:
- 7Z - 7zip - (``.7z``)
- TBZ2 (``.tar.bz2``)
- TGZ (``.tar.gz``)
- TXZ (``.tar.xz``)
- TZ (``.tar.Z``)
- TZST (``.tar.zst``)
- ZIP (``.zip``)
- 7Z - 7zip - (``.7z``)
.. versionadded:: 3.1
7Z and TXZ formats support.
.. versionadded:: 3.1
.. versionadded:: 3.16
TZST format support.
- TAR (``.tar``)
.. versionadded:: 4.0
- TBZ2 (``.tar.bz2``)
- TGZ (``.tar.gz``)
- TXZ (``.tar.xz``)
.. versionadded:: 3.1
- TZ (``.tar.Z``)
- TZST (``.tar.zst``)
.. versionadded:: 3.16
- ZIP (``.zip``)
When this generator is called from ``CPackSourceConfig.cmake`` (or through
the ``package_source`` target), then the generated archive will contain all

View File

@@ -0,0 +1,5 @@
cpack-tar
---------
* The :cpack_gen:`CPack Archive Generator` learned to generated `.tar`
packages without compression.

View File

@@ -169,6 +169,12 @@ cmCPackGenerator* cmCPackArchiveGenerator::CreateTZSTGenerator()
".tar.zst");
}
cmCPackGenerator* cmCPackArchiveGenerator::CreateTarGenerator()
{
return new cmCPackArchiveGenerator(cmArchiveWrite::CompressNone, "gnutar",
".tar");
}
cmCPackGenerator* cmCPackArchiveGenerator::CreateZIPGenerator()
{
return new cmCPackArchiveGenerator(cmArchiveWrite::CompressNone, "zip",

View File

@@ -29,6 +29,7 @@ public:
static cmCPackGenerator* CreateTXZGenerator();
static cmCPackGenerator* CreateTZGenerator();
static cmCPackGenerator* CreateTZSTGenerator();
static cmCPackGenerator* CreateTarGenerator();
static cmCPackGenerator* CreateZIPGenerator();
/**

View File

@@ -54,6 +54,8 @@ cmCPackGeneratorFactory::cmCPackGeneratorFactory()
cmCPackArchiveGenerator::CreateTZGenerator);
this->RegisterGenerator("TZST", "Tar Zstandard compression",
cmCPackArchiveGenerator::CreateTZSTGenerator);
this->RegisterGenerator("TAR", "Tar no compression",
cmCPackArchiveGenerator::CreateTarGenerator);
this->RegisterGenerator("ZIP", "ZIP file format",
cmCPackArchiveGenerator::CreateZIPGenerator);
}

View File

@@ -1126,6 +1126,7 @@ set(cpack_tests
RPM.COMPONENT_WITH_SPECIAL_CHARS
7Z
TAR
TBZ2
TGZ
TXZ

View File

@@ -36,8 +36,8 @@ if(DEBUGEDIT AND NOT BRPALT)
endif()
run_cpack_test(LONG_FILENAMES "DEB.LONG_FILENAMES" false "MONOLITHIC")
run_cpack_test_subtests(MAIN_COMPONENT "invalid;found" "RPM.MAIN_COMPONENT" false "COMPONENT")
run_cpack_test(MINIMAL "RPM.MINIMAL;DEB.MINIMAL;7Z;TBZ2;TGZ;TXZ;TZ;ZIP;STGZ;External" false "MONOLITHIC;COMPONENT")
run_cpack_test_package_target(MINIMAL "RPM.MINIMAL;DEB.MINIMAL;7Z;TBZ2;TGZ;TXZ;TZ;ZIP;STGZ;External" false "MONOLITHIC;COMPONENT")
run_cpack_test(MINIMAL "RPM.MINIMAL;DEB.MINIMAL;7Z;TBZ2;TGZ;TXZ;TZ;ZIP;STGZ;TAR;External" false "MONOLITHIC;COMPONENT")
run_cpack_test_package_target(MINIMAL "RPM.MINIMAL;DEB.MINIMAL;7Z;TBZ2;TGZ;TXZ;TZ;ZIP;STGZ;TAR;External" false "MONOLITHIC;COMPONENT")
run_cpack_test_package_target(THREADED_ALL "TXZ;DEB" false "MONOLITHIC;COMPONENT")
run_cpack_test_package_target(THREADED "TXZ;DEB" false "MONOLITHIC;COMPONENT")
run_cpack_test_subtests(PACKAGE_CHECKSUM "invalid;MD5;SHA1;SHA224;SHA256;SHA384;SHA512" "TGZ" false "MONOLITHIC")
@@ -78,6 +78,6 @@ else()
endif()
run_cpack_test_package_target(PRE_POST_SCRIPTS "ZIP" false "MONOLITHIC;COMPONENT")
run_cpack_test_subtests(DUPLICATE_FILE "success;conflict_file;conflict_symlink" "TGZ" false "COMPONENT;GROUP")
run_cpack_test(COMPONENT_WITH_SPECIAL_CHARS "RPM.COMPONENT_WITH_SPECIAL_CHARS;DEB.COMPONENT_WITH_SPECIAL_CHARS;7Z;TBZ2;TGZ;TXZ;TZ;ZIP;STGZ" false "MONOLITHIC;COMPONENT;GROUP")
run_cpack_test_package_target(COMPONENT_WITH_SPECIAL_CHARS "RPM.COMPONENT_WITH_SPECIAL_CHARS;DEB.COMPONENT_WITH_SPECIAL_CHARS;7Z;TBZ2;TGZ;TXZ;TZ;ZIP;STGZ" false "MONOLITHIC;COMPONENT;GROUP")
run_cpack_test(COMPONENT_WITH_SPECIAL_CHARS "RPM.COMPONENT_WITH_SPECIAL_CHARS;DEB.COMPONENT_WITH_SPECIAL_CHARS;7Z;TBZ2;TGZ;TXZ;TZ;ZIP;STGZ;TAR" false "MONOLITHIC;COMPONENT;GROUP")
run_cpack_test_package_target(COMPONENT_WITH_SPECIAL_CHARS "RPM.COMPONENT_WITH_SPECIAL_CHARS;DEB.COMPONENT_WITH_SPECIAL_CHARS;7Z;TBZ2;TGZ;TXZ;TZ;ZIP;STGZ;TAR" false "MONOLITHIC;COMPONENT;GROUP")
run_cpack_test_subtests(MULTIARCH "same;foreign;allowed;fail" "DEB.MULTIARCH" false "MONOLITHIC;COMPONENT")

View File

@@ -0,0 +1,3 @@
set(cpack_archive_extension_ "tar")
include("${CMAKE_CURRENT_LIST_DIR}/../ArchiveCommon/common_helpers.cmake")

View File

@@ -0,0 +1,4 @@
function(get_test_prerequirements found_var config_file)
file(WRITE "${config_file}" "")
set(${found_var} true PARENT_SCOPE)
endfunction()

View File

@@ -0,0 +1 @@
set(CPACK_ARCHIVE_COMPONENT_INSTALL "ON")