[Cmake-commits] CMake branch, next, updated. v3.1.0-1609-g8b355d6

Ben Boeckel ben.boeckel at kitware.com
Fri Jan 9 10:34:52 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  8b355d64de0d1d899a0c58a12285b7514f8d8e18 (commit)
       via  8833206e35bafa04a2264e3e60061651e4b41c2d (commit)
       via  f98c15814512d7e111f8ac738cedd39d1bfbd9e2 (commit)
       via  e0d8912dea950faf8d3ee875896d2ad2197b6e73 (commit)
      from  e51cf4204b190f9e85186b3552634bb7bc22f76d (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=8b355d64de0d1d899a0c58a12285b7514f8d8e18
commit 8b355d64de0d1d899a0c58a12285b7514f8d8e18
Merge: e51cf42 8833206
Author:     Ben Boeckel <ben.boeckel at kitware.com>
AuthorDate: Fri Jan 9 10:34:50 2015 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Fri Jan 9 10:34:50 2015 -0500

    Merge topic 'add-xz-support' into next
    
    8833206e cmake -E tar: error out on multiple compression formats
    f98c1581 cmSystemTools: use an enumeration for compression formats
    e0d8912d fixup! cmake -E tar: add support for .xz files with 'J'


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8833206e35bafa04a2264e3e60061651e4b41c2d
commit 8833206e35bafa04a2264e3e60061651e4b41c2d
Author:     Ben Boeckel <ben.boeckel at kitware.com>
AuthorDate: Fri Jan 9 10:33:36 2015 -0500
Commit:     Ben Boeckel <ben.boeckel at kitware.com>
CommitDate: Fri Jan 9 10:33:36 2015 -0500

    cmake -E tar: error out on multiple compression formats

diff --git a/Source/cmcmd.cxx b/Source/cmcmd.cxx
index cf3b2de..1bfbb55 100644
--- a/Source/cmcmd.cxx
+++ b/Source/cmcmd.cxx
@@ -735,17 +735,27 @@ int cmcmd::ExecuteCMakeCommand(std::vector<std::string>& args)
         }
       cmSystemTools::cmTarCompression compress =
         cmSystemTools::TarCompressNone;
+      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=f98c15814512d7e111f8ac738cedd39d1bfbd9e2
commit f98c15814512d7e111f8ac738cedd39d1bfbd9e2
Author:     Ben Boeckel <ben.boeckel at kitware.com>
AuthorDate: Fri Jan 9 10:33:00 2015 -0500
Commit:     Ben Boeckel <ben.boeckel at kitware.com>
CommitDate: Fri Jan 9 10:33:00 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..036e859 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)
diff --git a/Source/cmSystemTools.h b/Source/cmSystemTools.h
index 47d2771..ad269b1 100644
--- a/Source/cmSystemTools.h
+++ b/Source/cmSystemTools.h
@@ -383,11 +383,18 @@ public:
   static void EnableVSConsoleOutput();
 
   /** Create tar */
+  enum cmTarCompression
+  {
+    TarCompressGZip,
+    TarCompressBZip2,
+    TarCompressXZ,
+    TarCompressNone
+  };
   static bool ListTar(const char* outFileName,
                       bool gzip, bool verbose);
   static bool CreateTar(const char* outFileName,
-                        const std::vector<std::string>& files, bool gzip,
-                        bool bzip2, bool xz, bool verbose);
+                        const std::vector<std::string>& files,
+                        cmTarCompression compressType, bool verbose);
   static bool ExtractTar(const char* inFileName, bool gzip,
                          bool verbose);
   // This should be called first thing in main
diff --git a/Source/cmcmd.cxx b/Source/cmcmd.cxx
index 6b3efb5..cf3b2de 100644
--- a/Source/cmcmd.cxx
+++ b/Source/cmcmd.cxx
@@ -733,21 +733,19 @@ int cmcmd::ExecuteCMakeCommand(std::vector<std::string>& args)
         {
         files.push_back(args[cc]);
         }
-      bool gzip = false;
-      bool bzip2 = false;
-      bool xz = false;
-      bool verbose = false;
+      cmSystemTools::cmTarCompression compress =
+        cmSystemTools::TarCompressNone;
       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 )
         {
@@ -765,7 +763,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;

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e0d8912dea950faf8d3ee875896d2ad2197b6e73
commit e0d8912dea950faf8d3ee875896d2ad2197b6e73
Author:     Ben Boeckel <ben.boeckel at kitware.com>
AuthorDate: Fri Jan 9 10:24:45 2015 -0500
Commit:     Ben Boeckel <ben.boeckel at kitware.com>
CommitDate: Fri Jan 9 10:24:45 2015 -0500

    fixup! cmake -E tar: add support for .xz files with 'J'

diff --git a/Help/release/dev/add-xz-support.rst b/Help/release/dev/add-xz-support.rst
index 0dcea9c..9bdf528 100644
--- a/Help/release/dev/add-xz-support.rst
+++ b/Help/release/dev/add-xz-support.rst
@@ -1,5 +1,5 @@
 add-xz-support
 --------------
 
-The :manual:`cmake(1)` ``-E tar`` command now supports creating
-``.xz``-compressed archives with the ``J`` flag.
+* The :manual:`cmake(1)` ``-E tar`` command now supports creating
+  ``.xz``-compressed archives with the ``J`` flag.

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

Summary of changes:
 Help/release/dev/add-xz-support.rst |    4 ++--
 Source/cmCTest.cxx                  |    2 +-
 Source/cmSystemTools.cxx            |   25 +++++++++++++++++++------
 Source/cmSystemTools.h              |   11 +++++++++--
 Source/cmcmd.cxx                    |   24 ++++++++++++++++--------
 5 files changed, 47 insertions(+), 19 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list