[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