diff options
Diffstat (limited to 'Source/cmSystemTools.cxx')
-rw-r--r-- | Source/cmSystemTools.cxx | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx index fb973d4..eea4986 100644 --- a/Source/cmSystemTools.cxx +++ b/Source/cmSystemTools.cxx @@ -1474,7 +1474,8 @@ bool cmSystemTools::IsPathToFramework(const char* path) bool cmSystemTools::CreateTar(const char* outFileName, const std::vector<std::string>& files, - bool gzip, bool bzip2, bool verbose) + cmTarCompression compressType, + bool verbose) { #if defined(CMAKE_BUILD_WITH_CMAKE) std::string cwd = cmSystemTools::GetCurrentWorkingDirectory(); @@ -1488,10 +1489,24 @@ bool cmSystemTools::CreateTar(const char* outFileName, cmSystemTools::Error(e.c_str()); return false; } - cmArchiveWrite a(fout, (gzip? cmArchiveWrite::CompressGZip : - (bzip2? cmArchiveWrite::CompressBZip2 : - cmArchiveWrite::CompressNone)), - cmArchiveWrite::TypeTAR); + cmArchiveWrite::Compress compress = cmArchiveWrite::CompressNone; + switch (compressType) + { + case TarCompressGZip: + compress = cmArchiveWrite::CompressGZip; + break; + case TarCompressBZip2: + compress = cmArchiveWrite::CompressBZip2; + break; + case TarCompressXZ: + compress = cmArchiveWrite::CompressXZ; + break; + case TarCompressNone: + compress = cmArchiveWrite::CompressNone; + break; + } + cmArchiveWrite a(fout, compress, + cmArchiveWrite::TypeTAR); a.SetVerbose(verbose); for(std::vector<std::string>::const_iterator i = files.begin(); i != files.end(); ++i) @@ -1516,7 +1531,6 @@ bool cmSystemTools::CreateTar(const char* outFileName, #else (void)outFileName; (void)files; - (void)gzip; (void)verbose; return false; #endif @@ -1777,7 +1791,7 @@ bool extract_tar(const char* outFileName, bool verbose, #endif bool cmSystemTools::ExtractTar(const char* outFileName, - bool , bool verbose) + bool verbose) { #if defined(CMAKE_BUILD_WITH_CMAKE) return extract_tar(outFileName, verbose, true); @@ -1789,7 +1803,6 @@ bool cmSystemTools::ExtractTar(const char* outFileName, } bool cmSystemTools::ListTar(const char* outFileName, - bool , bool verbose) { #if defined(CMAKE_BUILD_WITH_CMAKE) |