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 3de1b93734635585aeb47e9ed162ff45b0c2269e (commit)
via 3a2c8e8e666ebf63c20d933cc255237a18153867 (commit)
from e7cd5ad30a978835dab8006915ca4429454fb7bb (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=3de1b93734635585aeb47e9ed162ff45b0c2269e
commit 3de1b93734635585aeb47e9ed162ff45b0c2269e
Merge: e7cd5ad 3a2c8e8
Author: Peter Kuemmel <[email protected]>
AuthorDate: Wed Jul 11 03:01:15 2012 -0400
Commit: CMake Topic Stage <[email protected]>
CommitDate: Wed Jul 11 03:01:15 2012 -0400
Merge topic 'ninja-rspfile-link-libraries' into next
3a2c8e8 Ninja: disable work around when linking with mingw
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3a2c8e8e666ebf63c20d933cc255237a18153867
commit 3a2c8e8e666ebf63c20d933cc255237a18153867
Author: Peter Kümmel <[email protected]>
AuthorDate: Wed Jul 11 08:55:00 2012 +0200
Commit: Peter Kümmel <[email protected]>
CommitDate: Wed Jul 11 08:55:00 2012 +0200
Ninja: disable work around when linking with mingw
The work around is only needed by older GCCs (only testet 4.4/4.7)
Ninja is very new so chances are high that there is also a new mingw.
Use slashes in link rsp file, because ar.exe can't handle \.
diff --git a/Modules/Platform/Windows-GNU.cmake
b/Modules/Platform/Windows-GNU.cmake
index 1a2ee5e..4a37eca 100644
--- a/Modules/Platform/Windows-GNU.cmake
+++ b/Modules/Platform/Windows-GNU.cmake
@@ -115,7 +115,9 @@ macro(__windows_compiler_gnu lang)
list(APPEND CMAKE_${lang}_ABI_FILES "Platform/Windows-GNU-${lang}-ABI")
# Support very long lists of object files.
- if("${CMAKE_${lang}_RESPONSE_FILE_LINK_FLAG}" STREQUAL "@")
+ # TODO: check for which gcc versions this is still needed, not needed for
gcc >= 4.4.
+ # Ninja generator doesn't support this work around.
+ if("${CMAKE_${lang}_RESPONSE_FILE_LINK_FLAG}" STREQUAL "@" AND NOT
CMAKE_GENERATOR MATCHES "Ninja")
foreach(rule CREATE_SHARED_MODULE CREATE_SHARED_LIBRARY LINK_EXECUTABLE)
# The gcc/collect2/ld toolchain does not use response files
# internally so we cannot pass long object lists. Instead pass
diff --git a/Source/cmNinjaNormalTargetGenerator.cxx
b/Source/cmNinjaNormalTargetGenerator.cxx
index 1fd6a16..f6f235c 100644
--- a/Source/cmNinjaNormalTargetGenerator.cxx
+++ b/Source/cmNinjaNormalTargetGenerator.cxx
@@ -18,6 +18,7 @@
#include "cmMakefile.h"
#include <assert.h>
+#include <algorithm>
cmNinjaNormalTargetGenerator::
cmNinjaNormalTargetGenerator(cmTarget* target)
@@ -367,8 +368,8 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement()
outputs.push_back(targetOutputReal);
// Compute specific libraries to link with.
- cmNinjaDeps explicitDeps = this->GetObjects(),
- implicitDeps = this->ComputeLinkDeps();
+ cmNinjaDeps explicitDeps = this->GetObjects();
+ cmNinjaDeps implicitDeps = this->ComputeLinkDeps();
this->GetLocalGenerator()->GetTargetFlags(vars["LINK_LIBRARIES"],
vars["FLAGS"],
@@ -434,6 +435,9 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement()
path = GetTarget()->GetSupportDirectory();
vars["OBJECT_DIR"] = ConvertToNinjaPath(path.c_str());
EnsureDirectoryExists(path);
+ // ar.exe can't handle backslashes in rsp files (implictly used by gcc)
+ std::string& linkLibraries = vars["LINK_LIBRARIES"];
+ std::replace(linkLibraries.begin(), linkLibraries.end(), '\\', '/');
}
std::vector<cmCustomCommand> *cmdLists[3] = {
-----------------------------------------------------------------------
Summary of changes:
Modules/Platform/Windows-GNU.cmake | 4 +++-
Source/cmNinjaNormalTargetGenerator.cxx | 8 ++++++--
2 files changed, 9 insertions(+), 3 deletions(-)
hooks/post-receive
--
CMake
_______________________________________________
Cmake-commits mailing list
[email protected]
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits