Browse Source

Add XZ compress support to libarchive-wrapper

This is not needed but it does not cost much to do it for all
potentially supported format in libarchive. XZ and LZMA are not
builtin libarchive and require external lib but if
CMAKE_USE_SYSTEM_LIBARCHIVE is ON then we may get it for free.
Eric NOULARD 15 years ago
parent
commit
1a3ad5c615
2 changed files with 10 additions and 1 deletions
  1. 8 0
      Source/cmArchiveWrite.cxx
  2. 2 1
      Source/cmArchiveWrite.h

+ 8 - 0
Source/cmArchiveWrite.cxx

@@ -87,6 +87,14 @@ cmArchiveWrite::cmArchiveWrite(std::ostream& os, Compress c, Type t):
         return;
         }
       break;
+    case CompressXZ:
+      if(archive_write_set_compression_xz(this->Archive) != ARCHIVE_OK)
+        {
+        this->Error = "archive_write_set_compression_xz: ";
+        this->Error += archive_error_string(this->Archive);
+        return;
+        }
+      break;
     };
 #if !defined(_WIN32) || defined(__CYGWIN__)
   if (archive_read_disk_set_standard_lookup(this->Disk) != ARCHIVE_OK)

+ 2 - 1
Source/cmArchiveWrite.h

@@ -33,7 +33,8 @@ public:
     CompressNone,
     CompressGZip,
     CompressBZip2,
-    CompressLZMA
+    CompressLZMA,
+    CompressXZ
   };
 
   /** Archive Type */