Browse Source

cpack: 7z & zip supports compression algorithms

Fixes: #27461
AJIOB 2 months ago
parent
commit
3db6cce657
49 changed files with 348 additions and 6 deletions
  1. 56 0
      Help/cpack_gen/archive.rst
  2. 5 0
      Help/release/dev/cpack-7z-zip-algorithms.rst
  3. 76 0
      Source/CPack/cmCPackArchiveGenerator.cxx
  4. 13 0
      Source/CPack/cmCPackArchiveGenerator.h
  5. 44 4
      Source/CPack/cmCPackGeneratorFactory.cxx
  6. 40 0
      Tests/RunCMake/CMakeLists.txt
  7. 3 0
      Tests/RunCMake/CPack/7Z_BZ2/Helpers.cmake
  8. 4 0
      Tests/RunCMake/CPack/7Z_BZ2/Prerequirements.cmake
  9. 1 0
      Tests/RunCMake/CPack/7Z_BZ2/packaging_COMPONENT_default.cmake
  10. 3 0
      Tests/RunCMake/CPack/7Z_DEFLATE/Helpers.cmake
  11. 4 0
      Tests/RunCMake/CPack/7Z_DEFLATE/Prerequirements.cmake
  12. 1 0
      Tests/RunCMake/CPack/7Z_DEFLATE/packaging_COMPONENT_default.cmake
  13. 3 0
      Tests/RunCMake/CPack/7Z_LZMA/Helpers.cmake
  14. 4 0
      Tests/RunCMake/CPack/7Z_LZMA/Prerequirements.cmake
  15. 1 0
      Tests/RunCMake/CPack/7Z_LZMA/packaging_COMPONENT_default.cmake
  16. 3 0
      Tests/RunCMake/CPack/7Z_LZMA2/Helpers.cmake
  17. 4 0
      Tests/RunCMake/CPack/7Z_LZMA2/Prerequirements.cmake
  18. 1 0
      Tests/RunCMake/CPack/7Z_LZMA2/packaging_COMPONENT_default.cmake
  19. 3 0
      Tests/RunCMake/CPack/7Z_PPMD/Helpers.cmake
  20. 4 0
      Tests/RunCMake/CPack/7Z_PPMD/Prerequirements.cmake
  21. 1 0
      Tests/RunCMake/CPack/7Z_PPMD/packaging_COMPONENT_default.cmake
  22. 3 0
      Tests/RunCMake/CPack/7Z_STORE/Helpers.cmake
  23. 4 0
      Tests/RunCMake/CPack/7Z_STORE/Prerequirements.cmake
  24. 1 0
      Tests/RunCMake/CPack/7Z_STORE/packaging_COMPONENT_default.cmake
  25. 3 0
      Tests/RunCMake/CPack/7Z_ZSTD/Helpers.cmake
  26. 4 0
      Tests/RunCMake/CPack/7Z_ZSTD/Prerequirements.cmake
  27. 1 0
      Tests/RunCMake/CPack/7Z_ZSTD/packaging_COMPONENT_default.cmake
  28. 2 2
      Tests/RunCMake/CPack/RunCMakeTest.cmake
  29. 3 0
      Tests/RunCMake/CPack/TZST/Helpers.cmake
  30. 4 0
      Tests/RunCMake/CPack/TZST/Prerequirements.cmake
  31. 1 0
      Tests/RunCMake/CPack/TZST/packaging_COMPONENT_default.cmake
  32. 3 0
      Tests/RunCMake/CPack/ZIP_BZ2/Helpers.cmake
  33. 4 0
      Tests/RunCMake/CPack/ZIP_BZ2/Prerequirements.cmake
  34. 1 0
      Tests/RunCMake/CPack/ZIP_BZ2/packaging_COMPONENT_default.cmake
  35. 3 0
      Tests/RunCMake/CPack/ZIP_DEFLATE/Helpers.cmake
  36. 4 0
      Tests/RunCMake/CPack/ZIP_DEFLATE/Prerequirements.cmake
  37. 1 0
      Tests/RunCMake/CPack/ZIP_DEFLATE/packaging_COMPONENT_default.cmake
  38. 3 0
      Tests/RunCMake/CPack/ZIP_LZMA/Helpers.cmake
  39. 4 0
      Tests/RunCMake/CPack/ZIP_LZMA/Prerequirements.cmake
  40. 1 0
      Tests/RunCMake/CPack/ZIP_LZMA/packaging_COMPONENT_default.cmake
  41. 3 0
      Tests/RunCMake/CPack/ZIP_LZMA2/Helpers.cmake
  42. 4 0
      Tests/RunCMake/CPack/ZIP_LZMA2/Prerequirements.cmake
  43. 1 0
      Tests/RunCMake/CPack/ZIP_LZMA2/packaging_COMPONENT_default.cmake
  44. 3 0
      Tests/RunCMake/CPack/ZIP_STORE/Helpers.cmake
  45. 4 0
      Tests/RunCMake/CPack/ZIP_STORE/Prerequirements.cmake
  46. 1 0
      Tests/RunCMake/CPack/ZIP_STORE/packaging_COMPONENT_default.cmake
  47. 3 0
      Tests/RunCMake/CPack/ZIP_ZSTD/Helpers.cmake
  48. 4 0
      Tests/RunCMake/CPack/ZIP_ZSTD/Prerequirements.cmake
  49. 1 0
      Tests/RunCMake/CPack/ZIP_ZSTD/packaging_COMPONENT_default.cmake

+ 56 - 0
Help/cpack_gen/archive.rst

@@ -8,6 +8,36 @@ any of the following formats:
 
   .. versionadded:: 3.1
 
+  This is an alias for ``7Z_LZMA``
+
+- 7Z_BZ2 - 7zip - (``.7z``) - BZip2 compressed
+
+  .. versionadded:: 4.3
+
+- 7Z_DEFLATE - 7zip - (``.7z``) - Deflate compressed
+
+  .. versionadded:: 4.3
+
+- 7Z_LZMA - 7zip - (``.7z``) - LZMA compressed
+
+  .. versionadded:: 4.3
+
+- 7Z_LZMA2 - 7zip - (``.7z``) - LZMA2 compressed
+
+  .. versionadded:: 4.3
+
+- 7Z_PPMD - 7zip - (``.7z``) - PPMd compressed
+
+  .. versionadded:: 4.3
+
+- 7Z_STORE - 7zip - (``.7z``) - no compression is used
+
+  .. versionadded:: 4.3
+
+- 7Z_ZSTD - 7zip - (``.7z``) - Zstandard compressed
+
+  .. versionadded:: 4.3
+
 - TAR (``.tar``) - no compression is used
 
   .. versionadded:: 4.0
@@ -28,6 +58,32 @@ any of the following formats:
 
 - ZIP (``.zip``) - Deflate compressed
 
+  This is an alias for ``ZIP_DEFLATE``
+
+- ZIP_BZ2 (``.zip``) - BZip2 compressed
+
+  .. versionadded:: 4.3
+
+- ZIP_DEFLATE (``.zip``) - Deflate compressed
+
+  .. versionadded:: 4.3
+
+- ZIP_LZMA (``.zip``) - LZMA compressed
+
+  .. versionadded:: 4.3
+
+- ZIP_LZMA2 (``.zip``) - LZMA2 compressed
+
+  .. versionadded:: 4.3
+
+- ZIP_STORE (``.zip``) - no compression is used
+
+  .. versionadded:: 4.3
+
+- ZIP_ZSTD (``.zip``) - Zstandard compressed
+
+  .. versionadded:: 4.3
+
 When this generator is called from ``CPackSourceConfig.cmake`` (or through
 the ``package_source`` target), then the generated archive will contain all
 files in the project directory, except those specified in

+ 5 - 0
Help/release/dev/cpack-7z-zip-algorithms.rst

@@ -0,0 +1,5 @@
+cpack-7z-zip-algorithms
+-----------------------
+
+* The :cpack_gen:`CPack Archive Generator` generator supports support compression
+  methods specification for ``7zip`` and ``zip`` formats.

+ 76 - 0
Source/CPack/cmCPackArchiveGenerator.cxx

@@ -134,11 +134,52 @@ private:
 };
 
 cmCPackGenerator* cmCPackArchiveGenerator::Create7ZGenerator()
+{
+  return cmCPackArchiveGenerator::Create7ZLzmaGenerator();
+}
+
+cmCPackGenerator* cmCPackArchiveGenerator::Create7ZStoreGenerator()
+{
+  return new cmCPackArchiveGenerator(cmArchiveWrite::CompressNone, "7zip",
+                                     ".7z");
+}
+
+cmCPackGenerator* cmCPackArchiveGenerator::Create7ZDeflateGenerator()
+{
+  return new cmCPackArchiveGenerator(cmArchiveWrite::CompressGZip, "7zip",
+                                     ".7z");
+}
+
+cmCPackGenerator* cmCPackArchiveGenerator::Create7ZBzip2Generator()
+{
+  return new cmCPackArchiveGenerator(cmArchiveWrite::CompressBZip2, "7zip",
+                                     ".7z");
+}
+
+cmCPackGenerator* cmCPackArchiveGenerator::Create7ZLzmaGenerator()
 {
   return new cmCPackArchiveGenerator(cmArchiveWrite::CompressLZMA, "7zip",
                                      ".7z");
 }
 
+cmCPackGenerator* cmCPackArchiveGenerator::Create7ZLzma2Generator()
+{
+  return new cmCPackArchiveGenerator(cmArchiveWrite::CompressXZ, "7zip",
+                                     ".7z");
+}
+
+cmCPackGenerator* cmCPackArchiveGenerator::Create7ZZstdGenerator()
+{
+  return new cmCPackArchiveGenerator(cmArchiveWrite::CompressZstd, "7zip",
+                                     ".7z");
+}
+
+cmCPackGenerator* cmCPackArchiveGenerator::Create7ZPPMdGenerator()
+{
+  return new cmCPackArchiveGenerator(cmArchiveWrite::CompressPPMd, "7zip",
+                                     ".7z");
+}
+
 cmCPackGenerator* cmCPackArchiveGenerator::CreateTBZ2Generator()
 {
   return new cmCPackArchiveGenerator(cmArchiveWrite::CompressBZip2, "paxr",
@@ -176,11 +217,46 @@ cmCPackGenerator* cmCPackArchiveGenerator::CreateTarGenerator()
 }
 
 cmCPackGenerator* cmCPackArchiveGenerator::CreateZIPGenerator()
+{
+  return cmCPackArchiveGenerator::CreateZipDeflateGenerator();
+}
+
+cmCPackGenerator* cmCPackArchiveGenerator::CreateZipStoreGenerator()
+{
+  return new cmCPackArchiveGenerator(cmArchiveWrite::CompressNone, "zip",
+                                     ".zip");
+}
+
+cmCPackGenerator* cmCPackArchiveGenerator::CreateZipDeflateGenerator()
 {
   return new cmCPackArchiveGenerator(cmArchiveWrite::CompressGZip, "zip",
                                      ".zip");
 }
 
+cmCPackGenerator* cmCPackArchiveGenerator::CreateZipBzip2Generator()
+{
+  return new cmCPackArchiveGenerator(cmArchiveWrite::CompressBZip2, "zip",
+                                     ".zip");
+}
+
+cmCPackGenerator* cmCPackArchiveGenerator::CreateZipLzmaGenerator()
+{
+  return new cmCPackArchiveGenerator(cmArchiveWrite::CompressLZMA, "zip",
+                                     ".zip");
+}
+
+cmCPackGenerator* cmCPackArchiveGenerator::CreateZipLzma2Generator()
+{
+  return new cmCPackArchiveGenerator(cmArchiveWrite::CompressXZ, "zip",
+                                     ".zip");
+}
+
+cmCPackGenerator* cmCPackArchiveGenerator::CreateZipZstdGenerator()
+{
+  return new cmCPackArchiveGenerator(cmArchiveWrite::CompressZstd, "zip",
+                                     ".zip");
+}
+
 cmCPackArchiveGenerator::cmCPackArchiveGenerator(
   cmArchiveWrite::Compress compress, std::string format, std::string extension)
   : Compress(compress)

+ 13 - 0
Source/CPack/cmCPackArchiveGenerator.h

@@ -24,6 +24,13 @@ public:
   using Superclass = cmCPackGenerator;
 
   static cmCPackGenerator* Create7ZGenerator();
+  static cmCPackGenerator* Create7ZStoreGenerator();
+  static cmCPackGenerator* Create7ZDeflateGenerator();
+  static cmCPackGenerator* Create7ZBzip2Generator();
+  static cmCPackGenerator* Create7ZLzmaGenerator();
+  static cmCPackGenerator* Create7ZLzma2Generator();
+  static cmCPackGenerator* Create7ZZstdGenerator();
+  static cmCPackGenerator* Create7ZPPMdGenerator();
   static cmCPackGenerator* CreateTBZ2Generator();
   static cmCPackGenerator* CreateTGZGenerator();
   static cmCPackGenerator* CreateTXZGenerator();
@@ -31,6 +38,12 @@ public:
   static cmCPackGenerator* CreateTZSTGenerator();
   static cmCPackGenerator* CreateTarGenerator();
   static cmCPackGenerator* CreateZIPGenerator();
+  static cmCPackGenerator* CreateZipStoreGenerator();
+  static cmCPackGenerator* CreateZipDeflateGenerator();
+  static cmCPackGenerator* CreateZipBzip2Generator();
+  static cmCPackGenerator* CreateZipLzmaGenerator();
+  static cmCPackGenerator* CreateZipLzma2Generator();
+  static cmCPackGenerator* CreateZipZstdGenerator();
 
   /**
    * Construct generator

+ 44 - 4
Source/CPack/cmCPackGeneratorFactory.cxx

@@ -46,8 +46,30 @@
 cmCPackGeneratorFactory::cmCPackGeneratorFactory()
 {
   if (cmCPackArchiveGenerator::CanGenerate()) {
-    this->RegisterGenerator("7Z", "7-Zip file format",
-                            cmCPackArchiveGenerator::Create7ZGenerator);
+    this->RegisterGenerator(
+      "7Z", "7-Zip file format with default compression algorithm",
+      cmCPackArchiveGenerator::Create7ZGenerator);
+    this->RegisterGenerator("7Z_STORE",
+                            "7-Zip file format without compression",
+                            cmCPackArchiveGenerator::Create7ZStoreGenerator);
+    this->RegisterGenerator("7Z_DEFLATE",
+                            "7-Zip file format with Deflate compression",
+                            cmCPackArchiveGenerator::Create7ZDeflateGenerator);
+    this->RegisterGenerator("7Z_BZ2",
+                            "7-Zip file format with BZip2 compression",
+                            cmCPackArchiveGenerator::Create7ZBzip2Generator);
+    this->RegisterGenerator("7Z_LZMA",
+                            "7-Zip file format with LZMA compression",
+                            cmCPackArchiveGenerator::Create7ZLzmaGenerator);
+    this->RegisterGenerator("7Z_LZMA2",
+                            "7-Zip file format with LZMA2 compression",
+                            cmCPackArchiveGenerator::Create7ZLzma2Generator);
+    this->RegisterGenerator("7Z_ZSTD",
+                            "7-Zip file format with Zstandard compression",
+                            cmCPackArchiveGenerator::Create7ZZstdGenerator);
+    this->RegisterGenerator("7Z_PPMD",
+                            "7-Zip file format with PPMd compression",
+                            cmCPackArchiveGenerator::Create7ZPPMdGenerator);
     this->RegisterGenerator("TBZ2", "Tar BZip2 compression",
                             cmCPackArchiveGenerator::CreateTBZ2Generator);
     this->RegisterGenerator("TGZ", "Tar GZip compression",
@@ -60,8 +82,26 @@ cmCPackGeneratorFactory::cmCPackGeneratorFactory()
                             cmCPackArchiveGenerator::CreateTZSTGenerator);
     this->RegisterGenerator("TAR", "Tar no compression",
                             cmCPackArchiveGenerator::CreateTarGenerator);
-    this->RegisterGenerator("ZIP", "ZIP file format",
-                            cmCPackArchiveGenerator::CreateZIPGenerator);
+    this->RegisterGenerator(
+      "ZIP", "ZIP file format with default compression algorithm",
+      cmCPackArchiveGenerator::CreateZIPGenerator);
+    this->RegisterGenerator("ZIP_STORE", "ZIP file format without compression",
+                            cmCPackArchiveGenerator::CreateZipStoreGenerator);
+    this->RegisterGenerator(
+      "ZIP_DEFLATE", "ZIP file format with Deflate compression",
+      cmCPackArchiveGenerator::CreateZipDeflateGenerator);
+    this->RegisterGenerator("ZIP_BZ2",
+                            "ZIP file format with BZip2 compression",
+                            cmCPackArchiveGenerator::CreateZipBzip2Generator);
+    this->RegisterGenerator("ZIP_LZMA",
+                            "ZIP file format with LZMA compression",
+                            cmCPackArchiveGenerator::CreateZipLzmaGenerator);
+    this->RegisterGenerator("ZIP_LZMA2",
+                            "ZIP file format with LZMA2 compression",
+                            cmCPackArchiveGenerator::CreateZipLzma2Generator);
+    this->RegisterGenerator("ZIP_ZSTD",
+                            "ZIP file format with Zstandard compression",
+                            cmCPackArchiveGenerator::CreateZipZstdGenerator);
   }
   if (cmCPackSTGZGenerator::CanGenerate()) {
     this->RegisterGenerator("STGZ", "Self extracting Tar GZip compression",

+ 40 - 0
Tests/RunCMake/CMakeLists.txt

@@ -1261,12 +1261,26 @@ set(cpack_tests
   RPM.COMPONENT_WITH_SPECIAL_CHARS
 
   7Z
+  7Z_STORE
+  7Z_DEFLATE
+  7Z_BZ2
+  7Z_LZMA
+  7Z_LZMA2
+  7Z_ZSTD
+  7Z_PPMD
   TAR
   TBZ2
   TGZ
   TXZ
   TZ
+  TZST
   ZIP
+  ZIP_STORE
+  ZIP_DEFLATE
+  ZIP_BZ2
+  ZIP_LZMA
+  ZIP_LZMA2
+  ZIP_ZSTD
   STGZ
   External
   )
@@ -1302,10 +1316,24 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "e2k" AND NOT DEFINED CMake_TEST_E2K_BROKEN_L
       RPM.DIST
       RPM.AUTO_SUFFIXES
       7Z
+      7Z_STORE
+      7Z_DEFLATE
+      7Z_BZ2
+      7Z_LZMA
+      7Z_LZMA2
+      7Z_ZSTD
+      7Z_PPMD
       TXZ
+      TZST
       TBZ2
       TGZ
       ZIP
+      ZIP_STORE
+      ZIP_DEFLATE
+      ZIP_BZ2
+      ZIP_LZMA
+      ZIP_LZMA2
+      ZIP_ZSTD
       STGZ
       External
       )
@@ -1313,6 +1341,18 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "e2k" AND NOT DEFINED CMake_TEST_E2K_BROKEN_L
   endif()
 endif()
 
+if(CMake_TEST_LibArchive_VERSION AND CMake_TEST_LibArchive_VERSION VERSION_LESS 3.8.0)
+  # Exclude tests, that require libarchive >= 3.8.0
+  # if the version of libarchive is less than required
+  list(REMOVE_ITEM cpack_tests
+    7Z_ZSTD
+    ZIP_BZ2
+    ZIP_LZMA
+    ZIP_LZMA2
+    ZIP_ZSTD
+  )
+endif()
+
 add_RunCMake_test_group(CPack "${cpack_tests}")
 
 if(CMake_TEST_CPACK_APPIMAGE)

+ 3 - 0
Tests/RunCMake/CPack/7Z_BZ2/Helpers.cmake

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

+ 4 - 0
Tests/RunCMake/CPack/7Z_BZ2/Prerequirements.cmake

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

+ 1 - 0
Tests/RunCMake/CPack/7Z_BZ2/packaging_COMPONENT_default.cmake

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

+ 3 - 0
Tests/RunCMake/CPack/7Z_DEFLATE/Helpers.cmake

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

+ 4 - 0
Tests/RunCMake/CPack/7Z_DEFLATE/Prerequirements.cmake

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

+ 1 - 0
Tests/RunCMake/CPack/7Z_DEFLATE/packaging_COMPONENT_default.cmake

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

+ 3 - 0
Tests/RunCMake/CPack/7Z_LZMA/Helpers.cmake

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

+ 4 - 0
Tests/RunCMake/CPack/7Z_LZMA/Prerequirements.cmake

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

+ 1 - 0
Tests/RunCMake/CPack/7Z_LZMA/packaging_COMPONENT_default.cmake

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

+ 3 - 0
Tests/RunCMake/CPack/7Z_LZMA2/Helpers.cmake

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

+ 4 - 0
Tests/RunCMake/CPack/7Z_LZMA2/Prerequirements.cmake

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

+ 1 - 0
Tests/RunCMake/CPack/7Z_LZMA2/packaging_COMPONENT_default.cmake

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

+ 3 - 0
Tests/RunCMake/CPack/7Z_PPMD/Helpers.cmake

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

+ 4 - 0
Tests/RunCMake/CPack/7Z_PPMD/Prerequirements.cmake

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

+ 1 - 0
Tests/RunCMake/CPack/7Z_PPMD/packaging_COMPONENT_default.cmake

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

+ 3 - 0
Tests/RunCMake/CPack/7Z_STORE/Helpers.cmake

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

+ 4 - 0
Tests/RunCMake/CPack/7Z_STORE/Prerequirements.cmake

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

+ 1 - 0
Tests/RunCMake/CPack/7Z_STORE/packaging_COMPONENT_default.cmake

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

+ 3 - 0
Tests/RunCMake/CPack/7Z_ZSTD/Helpers.cmake

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

+ 4 - 0
Tests/RunCMake/CPack/7Z_ZSTD/Prerequirements.cmake

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

+ 1 - 0
Tests/RunCMake/CPack/7Z_ZSTD/packaging_COMPONENT_default.cmake

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

+ 2 - 2
Tests/RunCMake/CPack/RunCMakeTest.cmake

@@ -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;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(MINIMAL "RPM.MINIMAL;DEB.MINIMAL;7Z;7Z_STORE;7Z_DEFLATE;7Z_BZ2;7Z_LZMA;7Z_LZMA2;7Z_ZSTD;7Z_PPMD;TBZ2;TGZ;TXZ;TZST;TZ;ZIP;ZIP_STORE;ZIP_DEFLATE;ZIP_BZ2;ZIP_LZMA;ZIP_LZMA2;ZIP_ZSTD;STGZ;TAR;External" false "MONOLITHIC;COMPONENT")
+run_cpack_test_package_target(MINIMAL "RPM.MINIMAL;DEB.MINIMAL;7Z;7Z_STORE;7Z_DEFLATE;7Z_BZ2;7Z_LZMA;7Z_LZMA2;7Z_ZSTD;7Z_PPMD;TBZ2;TGZ;TXZ;TZST;TZ;ZIP;ZIP_STORE;ZIP_DEFLATE;ZIP_BZ2;ZIP_LZMA;ZIP_LZMA2;ZIP_ZSTD;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")

+ 3 - 0
Tests/RunCMake/CPack/TZST/Helpers.cmake

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

+ 4 - 0
Tests/RunCMake/CPack/TZST/Prerequirements.cmake

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

+ 1 - 0
Tests/RunCMake/CPack/TZST/packaging_COMPONENT_default.cmake

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

+ 3 - 0
Tests/RunCMake/CPack/ZIP_BZ2/Helpers.cmake

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

+ 4 - 0
Tests/RunCMake/CPack/ZIP_BZ2/Prerequirements.cmake

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

+ 1 - 0
Tests/RunCMake/CPack/ZIP_BZ2/packaging_COMPONENT_default.cmake

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

+ 3 - 0
Tests/RunCMake/CPack/ZIP_DEFLATE/Helpers.cmake

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

+ 4 - 0
Tests/RunCMake/CPack/ZIP_DEFLATE/Prerequirements.cmake

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

+ 1 - 0
Tests/RunCMake/CPack/ZIP_DEFLATE/packaging_COMPONENT_default.cmake

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

+ 3 - 0
Tests/RunCMake/CPack/ZIP_LZMA/Helpers.cmake

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

+ 4 - 0
Tests/RunCMake/CPack/ZIP_LZMA/Prerequirements.cmake

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

+ 1 - 0
Tests/RunCMake/CPack/ZIP_LZMA/packaging_COMPONENT_default.cmake

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

+ 3 - 0
Tests/RunCMake/CPack/ZIP_LZMA2/Helpers.cmake

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

+ 4 - 0
Tests/RunCMake/CPack/ZIP_LZMA2/Prerequirements.cmake

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

+ 1 - 0
Tests/RunCMake/CPack/ZIP_LZMA2/packaging_COMPONENT_default.cmake

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

+ 3 - 0
Tests/RunCMake/CPack/ZIP_STORE/Helpers.cmake

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

+ 4 - 0
Tests/RunCMake/CPack/ZIP_STORE/Prerequirements.cmake

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

+ 1 - 0
Tests/RunCMake/CPack/ZIP_STORE/packaging_COMPONENT_default.cmake

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

+ 3 - 0
Tests/RunCMake/CPack/ZIP_ZSTD/Helpers.cmake

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

+ 4 - 0
Tests/RunCMake/CPack/ZIP_ZSTD/Prerequirements.cmake

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

+ 1 - 0
Tests/RunCMake/CPack/ZIP_ZSTD/packaging_COMPONENT_default.cmake

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