diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2009-11-05 20:00:15 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2009-11-05 20:00:15 (GMT) |
commit | dd09d880656c71421acfd73776eac92c3f3ef77a (patch) | |
tree | 3465702ff785e584151c8f760d64b4aabe65a2a2 /Source/cmSystemTools.cxx | |
parent | a01badcc7a8d4813d2eb84923c4e03447745657e (diff) | |
download | CMake-dd09d880656c71421acfd73776eac92c3f3ef77a.zip CMake-dd09d880656c71421acfd73776eac92c3f3ef77a.tar.gz CMake-dd09d880656c71421acfd73776eac92c3f3ef77a.tar.bz2 |
Add JOM support and clean up some of the tar -E stuff
Diffstat (limited to 'Source/cmSystemTools.cxx')
-rw-r--r-- | Source/cmSystemTools.cxx | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx index df8bfbf..fe95b60 100644 --- a/Source/cmSystemTools.cxx +++ b/Source/cmSystemTools.cxx @@ -1704,7 +1704,7 @@ bool cmSystemTools::IsPathToFramework(const char* path) bool cmSystemTools::CreateTar(const char* outFileName, const std::vector<cmStdString>& files, - bool gzip, bool verbose) + bool gzip, bool bzip2, bool verbose) { #if defined(CMAKE_BUILD_WITH_CMAKE) std::string cwd = cmSystemTools::GetCurrentWorkingDirectory(); @@ -1755,6 +1755,14 @@ bool cmSystemTools::CreateTar(const char* outFileName, cmSystemTools::Error("Unable to use gzip in libarchive"); } } + if(bzip2) + { + res = archive_write_set_compression_bzip2(a); + if(res != ARCHIVE_OK) + { + cmSystemTools::Error("Unable to use bzip2 in libarchive"); + } + } res = archive_write_set_format_ustar(a); if(res != ARCHIVE_OK) { @@ -1822,7 +1830,7 @@ namespace{ #define BSDTAR_FILESIZE_PRINTF "%lu" #define BSDTAR_FILESIZE_TYPE unsigned long void -list_item_verbose(FILE *out, struct archive_entry *entry) + list_item_verbose(FILE *out, struct archive_entry *entry) { char tmp[100]; size_t w; @@ -1862,7 +1870,6 @@ list_item_verbose(FILE *out, struct archive_entry *entry) u_width = w; } fprintf(out, "%-*s ", (int)u_width, p); - /* Use gname if it's present, else gid. */ p = archive_entry_gname(entry); if (p != NULL && p[0] != '\0') @@ -1905,7 +1912,7 @@ list_item_verbose(FILE *out, struct archive_entry *entry) gs_width = w+strlen(tmp)+1; } fprintf(out, "%*s", (int)(gs_width - w), tmp); - + /* Format the time using 'ls -l' conventions. */ tim = archive_entry_mtime(entry); #define HALF_YEAR (time_t)365 * 86400 / 2 @@ -1926,7 +1933,7 @@ list_item_verbose(FILE *out, struct archive_entry *entry) strftime(tmp, sizeof(tmp), fmt, localtime(&tim)); fprintf(out, " %s ", tmp); fprintf(out, "%s", archive_entry_pathname(entry)); - + /* Extra information for links. */ if (archive_entry_hardlink(entry)) /* Hard link */ { @@ -1967,7 +1974,8 @@ int copy_data(struct archive *ar, struct archive *aw) } } -bool extract_tar(const char* outFileName, bool verbose, bool extract) +bool extract_tar(const char* outFileName, bool verbose, + bool extract) { struct archive* a = archive_read_new(); struct archive *ext = archive_write_disk_new(); @@ -2038,10 +2046,8 @@ bool extract_tar(const char* outFileName, bool verbose, bool extract) #endif bool cmSystemTools::ExtractTar(const char* outFileName, - const std::vector<cmStdString>& files, bool , bool verbose) { - (void)files; #if defined(CMAKE_BUILD_WITH_CMAKE) return extract_tar(outFileName, verbose, true); #else @@ -2052,11 +2058,10 @@ bool cmSystemTools::ExtractTar(const char* outFileName, } bool cmSystemTools::ListTar(const char* outFileName, - std::vector<cmStdString>& files, bool , + bool , bool verbose) { #if defined(CMAKE_BUILD_WITH_CMAKE) - (void)files; return extract_tar(outFileName, verbose, false); #else (void)outFileName; |