[Cmake-commits] CMake branch, next, updated. v3.1.0-1785-gcd42577

Brad King brad.king at kitware.com
Mon Jan 12 09:37:39 EST 2015


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  cd42577b23fbda05bc2420ffc7050b7dc1dee5d6 (commit)
       via  4035ef786de80d4d2fc27cd5f03c629702f54762 (commit)
       via  d811d238abe2dcd04cebd7ee4c3f07f4b6da093f (commit)
      from  0899a4839407960ec19d421ceef03a3dcae42339 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=cd42577b23fbda05bc2420ffc7050b7dc1dee5d6
commit cd42577b23fbda05bc2420ffc7050b7dc1dee5d6
Merge: 0899a48 4035ef7
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Mon Jan 12 09:37:38 2015 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Mon Jan 12 09:37:38 2015 -0500

    Merge topic 'add-xz-support' into next
    
    4035ef78 cmake -E tar: error out on multiple compression formats
    d811d238 cmSystemTools: use an enumeration for compression formats


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4035ef786de80d4d2fc27cd5f03c629702f54762
commit 4035ef786de80d4d2fc27cd5f03c629702f54762
Author:     Ben Boeckel <ben.boeckel at kitware.com>
AuthorDate: Fri Jan 9 10:33:36 2015 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Mon Jan 12 09:36:25 2015 -0500

    cmake -E tar: error out on multiple compression formats

diff --git a/Source/cmcmd.cxx b/Source/cmcmd.cxx
index 91b9e94..27dd08b 100644
--- a/Source/cmcmd.cxx
+++ b/Source/cmcmd.cxx
@@ -736,17 +736,27 @@ int cmcmd::ExecuteCMakeCommand(std::vector<std::string>& args)
       cmSystemTools::cmTarCompression compress =
         cmSystemTools::TarCompressNone;
       bool verbose = false;
+      int nCompress = 0;
       if ( flags.find_first_of('j') != flags.npos )
         {
         compress = cmSystemTools::TarCompressBZip2;
+        ++nCompress;
         }
       if ( flags.find_first_of('J') != flags.npos )
         {
         compress = cmSystemTools::TarCompressXZ;
+        ++nCompress;
         }
       if ( flags.find_first_of('z') != flags.npos )
         {
         compress = cmSystemTools::TarCompressGZip;
+        ++nCompress;
+        }
+      if ( nCompress > 1 )
+        {
+        cmSystemTools::Error("Can only compress a tar file one way; "
+                             "at most one flag of z, j, or J may be used");
+        return 1;
         }
       if ( flags.find_first_of('v') != flags.npos )
         {

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d811d238abe2dcd04cebd7ee4c3f07f4b6da093f
commit d811d238abe2dcd04cebd7ee4c3f07f4b6da093f
Author:     Ben Boeckel <ben.boeckel at kitware.com>
AuthorDate: Fri Jan 9 10:33:00 2015 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Mon Jan 12 09:36:25 2015 -0500

    cmSystemTools: use an enumeration for compression formats
    
    Juggling 3 booleans was unwieldy.

diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx
index f02d78e..e1391a7 100644
--- a/Source/cmCTest.cxx
+++ b/Source/cmCTest.cxx
@@ -1675,7 +1675,7 @@ std::string cmCTest::Base64GzipEncodeFile(std::string file)
   files.push_back(file);
 
   if(!cmSystemTools::CreateTar(tarFile.c_str(), files,
-                               true, false, false, false))
+                               cmSystemTools::TarCompressGZip, false))
     {
     cmCTestLog(this, ERROR_MESSAGE, "Error creating tar while "
       "encoding file: " << file << std::endl);
diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx
index cd63347..963ca77 100644
--- a/Source/cmSystemTools.cxx
+++ b/Source/cmSystemTools.cxx
@@ -1482,7 +1482,7 @@ bool cmSystemTools::IsPathToFramework(const char* path)
 
 bool cmSystemTools::CreateTar(const char* outFileName,
                               const std::vector<std::string>& files,
-                              bool gzip, bool bzip2, bool xz,
+                              cmTarCompression compressType,
                               bool verbose)
 {
 #if defined(CMAKE_BUILD_WITH_CMAKE)
@@ -1497,11 +1497,24 @@ bool cmSystemTools::CreateTar(const char* outFileName,
     cmSystemTools::Error(e.c_str());
     return false;
     }
-  cmArchiveWrite a(fout, (gzip? cmArchiveWrite::CompressGZip :
-                          (bzip2? cmArchiveWrite::CompressBZip2 :
-                           (xz? cmArchiveWrite::CompressXZ :
-                           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)
@@ -1526,7 +1539,6 @@ bool cmSystemTools::CreateTar(const char* outFileName,
 #else
   (void)outFileName;
   (void)files;
-  (void)gzip;
   (void)verbose;
   return false;
 #endif
@@ -1787,7 +1799,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);
@@ -1799,7 +1811,6 @@ bool cmSystemTools::ExtractTar(const char* outFileName,
 }
 
 bool cmSystemTools::ListTar(const char* outFileName,
-                            bool ,
                             bool verbose)
 {
 #if defined(CMAKE_BUILD_WITH_CMAKE)
diff --git a/Source/cmSystemTools.h b/Source/cmSystemTools.h
index 47d2771..09ceea6 100644
--- a/Source/cmSystemTools.h
+++ b/Source/cmSystemTools.h
@@ -383,12 +383,19 @@ public:
   static void EnableVSConsoleOutput();
 
   /** Create tar */
+  enum cmTarCompression
+  {
+    TarCompressGZip,
+    TarCompressBZip2,
+    TarCompressXZ,
+    TarCompressNone
+  };
   static bool ListTar(const char* outFileName,
-                      bool gzip, bool verbose);
+                      bool verbose);
   static bool CreateTar(const char* outFileName,
-                        const std::vector<std::string>& files, bool gzip,
-                        bool bzip2, bool xz, bool verbose);
-  static bool ExtractTar(const char* inFileName, bool gzip,
+                        const std::vector<std::string>& files,
+                        cmTarCompression compressType, bool verbose);
+  static bool ExtractTar(const char* inFileName,
                          bool verbose);
   // This should be called first thing in main
   // it will keep child processes from inheriting the
diff --git a/Source/cmcmd.cxx b/Source/cmcmd.cxx
index 6b3efb5..91b9e94 100644
--- a/Source/cmcmd.cxx
+++ b/Source/cmcmd.cxx
@@ -733,21 +733,20 @@ int cmcmd::ExecuteCMakeCommand(std::vector<std::string>& args)
         {
         files.push_back(args[cc]);
         }
-      bool gzip = false;
-      bool bzip2 = false;
-      bool xz = false;
+      cmSystemTools::cmTarCompression compress =
+        cmSystemTools::TarCompressNone;
       bool verbose = false;
       if ( flags.find_first_of('j') != flags.npos )
         {
-        bzip2 = true;
+        compress = cmSystemTools::TarCompressBZip2;
         }
       if ( flags.find_first_of('J') != flags.npos )
         {
-        xz = true;
+        compress = cmSystemTools::TarCompressXZ;
         }
       if ( flags.find_first_of('z') != flags.npos )
         {
-        gzip = true;
+        compress = cmSystemTools::TarCompressGZip;
         }
       if ( flags.find_first_of('v') != flags.npos )
         {
@@ -756,7 +755,7 @@ int cmcmd::ExecuteCMakeCommand(std::vector<std::string>& args)
 
       if ( flags.find_first_of('t') != flags.npos )
         {
-        if ( !cmSystemTools::ListTar(outFile.c_str(), gzip, verbose) )
+        if ( !cmSystemTools::ListTar(outFile.c_str(), verbose) )
           {
           cmSystemTools::Error("Problem creating tar: ", outFile.c_str());
           return 1;
@@ -765,7 +764,7 @@ int cmcmd::ExecuteCMakeCommand(std::vector<std::string>& args)
       else if ( flags.find_first_of('c') != flags.npos )
         {
         if ( !cmSystemTools::CreateTar(
-               outFile.c_str(), files, gzip, bzip2, xz, verbose) )
+               outFile.c_str(), files, compress, verbose) )
           {
           cmSystemTools::Error("Problem creating tar: ", outFile.c_str());
           return 1;
@@ -774,7 +773,7 @@ int cmcmd::ExecuteCMakeCommand(std::vector<std::string>& args)
       else if ( flags.find_first_of('x') != flags.npos )
         {
         if ( !cmSystemTools::ExtractTar(
-            outFile.c_str(), gzip, verbose) )
+            outFile.c_str(), verbose) )
           {
           cmSystemTools::Error("Problem extracting tar: ", outFile.c_str());
           return 1;

-----------------------------------------------------------------------

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list