Browse Source

CPack/DEB: Add zstd compression for deb packages

Russell Greene 4 years ago
parent
commit
051da997da

+ 17 - 4
Help/cpack_gen/deb.rst

@@ -274,10 +274,23 @@ List of CPack DEB generator specific variables:
 
  Possible values are:
 
- - lzma
- - xz
- - bzip2
- - gzip
+  ``lzma``
+    Lempel–Ziv–Markov chain algorithm
+
+  ``xz``
+    XZ Utils compression
+
+  ``bzip2``
+    bzip2 Burrows–Wheeler algorithm
+
+  ``gzip``
+    GNU Gzip compression
+
+  ``zstd``
+    .. versionadded:: 3.22
+
+    Zstandard compression
+
 
 .. variable:: CPACK_DEBIAN_PACKAGE_PRIORITY
               CPACK_DEBIAN_<COMPONENT>_PACKAGE_PRIORITY

+ 6 - 0
Help/release/dev/cpack-deb-add-zstd-compression.rst

@@ -0,0 +1,6 @@
+cpack-deb-add-zstd-compression
+------------------------------
+
+* The :cpack_gen:`CPack DEB Generator` gained the
+  option to set :variable:`CPACK_DEBIAN_COMPRESSION_TYPE` to zstd,
+  which enables Zstandard compression for deb packages.

+ 3 - 0
Source/CPack/cmCPackDebGenerator.cxx

@@ -111,6 +111,9 @@ DebGenerator::DebGenerator(
   } else if (!std::strcmp(debianCompressionType, "gzip")) {
     this->CompressionSuffix = ".gz";
     this->TarCompressionType = cmArchiveWrite::CompressGZip;
+  } else if (!std::strcmp(debianCompressionType, "zstd")) {
+    this->CompressionSuffix = ".zst";
+    this->TarCompressionType = cmArchiveWrite::CompressZstd;
   } else if (!std::strcmp(debianCompressionType, "none")) {
     this->CompressionSuffix.clear();
     this->TarCompressionType = cmArchiveWrite::CompressNone;