[Cmake-commits] CMake branch, next, updated. v2.8.8-3437-g3de1b93

Peter Kuemmel syntheticpp at gmx.net
Wed Jul 11 03:01:18 EDT 2012


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 <syntheticpp at gmx.net>
AuthorDate: Wed Jul 11 03:01:15 2012 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
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 <syntheticpp at gmx.net>
AuthorDate: Wed Jul 11 08:55:00 2012 +0200
Commit:     Peter Kümmel <syntheticpp at gmx.net>
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


More information about the Cmake-commits mailing list