浏览代码

CPack: Add generator for .tar.zst packages

Regina Pfeifer 6 年之前
父节点
当前提交
e26f0e9dd5

+ 1 - 0
Help/cpack_gen/archive.rst

@@ -9,6 +9,7 @@ different formats:
   - TGZ (.tar.gz)
   - TXZ (.tar.xz)
   - TZ (.tar.Z)
+  - TZST (.tar.zst)
   - ZIP (.zip)
 
 Variables specific to CPack Archive generator

+ 5 - 0
Help/release/dev/cpack-zstd.rst

@@ -0,0 +1,5 @@
+cpack-zstd
+----------
+
+* The :cpack_gen:`CPack Archive Generator` learned to generate `.tar.zst`
+  packages with Zstandard compression.

+ 6 - 0
Source/CPack/cmCPackArchiveGenerator.cxx

@@ -46,6 +46,12 @@ cmCPackGenerator* cmCPackArchiveGenerator::CreateTZGenerator()
                                      ".tar.Z");
 }
 
+cmCPackGenerator* cmCPackArchiveGenerator::CreateTZSTGenerator()
+{
+  return new cmCPackArchiveGenerator(cmArchiveWrite::CompressZstd, "paxr",
+                                     ".tar.zst");
+}
+
 cmCPackGenerator* cmCPackArchiveGenerator::CreateZIPGenerator()
 {
   return new cmCPackArchiveGenerator(cmArchiveWrite::CompressNone, "zip",

+ 1 - 0
Source/CPack/cmCPackArchiveGenerator.h

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

+ 2 - 0
Source/CPack/cmCPackGeneratorFactory.cxx

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