[Cmake-commits] CMake branch, next, updated. v3.2.2-2397-ge6c6584

Brad King brad.king at kitware.com
Fri May 1 08:23:41 EDT 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  e6c6584e5662e83f7a3e056ae246a1d589085c67 (commit)
       via  bb6663ca0a73872b063477e92272418b7d49e39b (commit)
      from  c8dc2648568e81c418c1a012dc6b2a59e8e260cb (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=e6c6584e5662e83f7a3e056ae246a1d589085c67
commit e6c6584e5662e83f7a3e056ae246a1d589085c67
Merge: c8dc264 bb6663c
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri May 1 08:23:40 2015 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Fri May 1 08:23:40 2015 -0400

    Merge topic 'mingw32-make-backslash-workaround' into next
    
    bb6663ca Makefile: Workaround mingw32-make trailing backslash trouble (#15546)


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bb6663ca0a73872b063477e92272418b7d49e39b
commit bb6663ca0a73872b063477e92272418b7d49e39b
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Thu Apr 30 15:25:16 2015 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Fri May 1 08:23:22 2015 -0400

    Makefile: Workaround mingw32-make trailing backslash trouble (#15546)
    
    When given the command line
    
      tool a\ b c
    
    mingw32-make incorrectly passes "a b" and "c" to the tool.  When given
    the command line
    
      tool a\ b "c"
    
    mingw32-make correctly passes "a\", "b", and "c" to the tool.
    
    Since commit v3.1.0-rc1~861^2 (MSVC: Add properties to configure
    compiler PDB files, 2014-02-24) we pass the compiler pdb option to
    MS-style compiler tools as "/Fd<dir>\" but mingw32-make may consume
    the backslash as escaping a following space as described above.
    Workaround this problem by changing the backslash to a forward
    slash as had been used prior to the above commit.

diff --git a/Source/cmLocalUnixMakefileGenerator3.h b/Source/cmLocalUnixMakefileGenerator3.h
index 4f2e4a0..c9b9ccc 100644
--- a/Source/cmLocalUnixMakefileGenerator3.h
+++ b/Source/cmLocalUnixMakefileGenerator3.h
@@ -95,6 +95,7 @@ public:
    * Set to true if the make tool being used is MinGW Make.
    */
   void SetMinGWMake(bool v)  {this->MinGWMake = v;}
+  bool IsMinGWMake() const { return this->MinGWMake; }
 
   /**
    * Set to true if the make tool being used is NMake.
diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx
index ea11c79..b7e4e37 100644
--- a/Source/cmMakefileTargetGenerator.cxx
+++ b/Source/cmMakefileTargetGenerator.cxx
@@ -23,6 +23,7 @@
 #include "cmComputeLinkInformation.h"
 #include "cmCustomCommandGenerator.h"
 #include "cmGeneratorExpression.h"
+#include "cmAlgorithms.h"
 
 #include "cmMakefileExecutableTargetGenerator.h"
 #include "cmMakefileLibraryTargetGenerator.h"
@@ -668,6 +669,15 @@ cmMakefileTargetGenerator
     this->Convert(targetFullPathCompilePDB,
                   cmLocalGenerator::START_OUTPUT,
                   cmLocalGenerator::SHELL);
+
+  if (this->LocalGenerator->IsMinGWMake() &&
+      cmHasLiteralSuffix(targetOutPathCompilePDB, "\\"))
+    {
+    // mingw32-make incorrectly interprets 'a\ b c' as 'a b' and 'c'
+    // (but 'a\ b "c"' as 'a\', 'b', and 'c'!).  Workaround this by
+    // avoiding a trailing backslash in the argument.
+    targetOutPathCompilePDB[targetOutPathCompilePDB.size()-1] = '/';
+    }
   }
   cmLocalGenerator::RuleVariables vars;
   vars.RuleLauncher = "RULE_LAUNCH_COMPILE";

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

Summary of changes:
 Source/cmLocalUnixMakefileGenerator3.h |    1 +
 Source/cmMakefileTargetGenerator.cxx   |   10 ++++++++++
 2 files changed, 11 insertions(+)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list