CPack: add uncompressed TAR support

Fixes: #26646
This commit is contained in:
Johnny Jazeix 2025-01-31 10:15:18 +01:00 committed by Brad King
parent 9d4be239b2
commit 09d5a4d7f0
10 changed files with 31 additions and 4 deletions

View File

@ -8,6 +8,10 @@ any of the following formats:
.. versionadded:: 3.1
- TAR (``.tar``)
.. versionadded:: 4.0
- TBZ2 (``.tar.bz2``)
- TGZ (``.tar.gz``)

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")