[Cmake-commits] CMake branch, next, updated. v2.8.9-62-g5e9e371

Peter Kuemmel syntheticpp at gmx.net
Tue Aug 14 10:04:34 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  5e9e371569dd5646bb0da5cf51853604c9a9fdc8 (commit)
       via  f50f3cbca8ef2f10a9c84935be9e9d5b4fef3917 (commit)
      from  790b655c49d3dc548474424afe69f19eb0834f1e (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=5e9e371569dd5646bb0da5cf51853604c9a9fdc8
commit 5e9e371569dd5646bb0da5cf51853604c9a9fdc8
Merge: 790b655 f50f3cb
Author:     Peter Kuemmel <syntheticpp at gmx.net>
AuthorDate: Tue Aug 14 10:04:33 2012 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Tue Aug 14 10:04:33 2012 -0400

    Merge topic 'vs-link-rsp' into next
    
    f50f3cb Ninja: don't expand any rsp files


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f50f3cbca8ef2f10a9c84935be9e9d5b4fef3917
commit f50f3cbca8ef2f10a9c84935be9e9d5b4fef3917
Author:     Peter Kuemmel <syntheticpp at gmx.net>
AuthorDate: Tue Aug 14 15:48:45 2012 +0200
Commit:     Peter Kuemmel <syntheticpp at gmx.net>
CommitDate: Tue Aug 14 15:48:45 2012 +0200

    Ninja: don't expand any rsp files

diff --git a/Modules/Platform/Windows-Intel.cmake b/Modules/Platform/Windows-Intel.cmake
index 3370557..3c1ad84 100644
--- a/Modules/Platform/Windows-Intel.cmake
+++ b/Modules/Platform/Windows-Intel.cmake
@@ -98,11 +98,14 @@ macro(__windows_compiler_intel lang)
   set(CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT "/DNDEBUG /MD /Zi /O2")
 
   if(_INTEL_COMPILER_SUPPORTS_MANIFEST)
+    if(CMAKE_GENERATOR MATCHES "Ninja")
+      set(NO_RSP_EXPAND _no_rsp_expand)
+    endif()
     set(CMAKE_${lang}_LINK_EXECUTABLE
-      "<CMAKE_COMMAND> -E vs_link_exe ${CMAKE_${lang}_LINK_EXECUTABLE}")
+      "<CMAKE_COMMAND> -E vs_link_exe${NO_RSP_EXPAND} ${CMAKE_${lang}_LINK_EXECUTABLE}")
     set(CMAKE_${lang}_CREATE_SHARED_LIBRARY
-      "<CMAKE_COMMAND> -E vs_link_dll ${CMAKE_${lang}_CREATE_SHARED_LIBRARY}")
+      "<CMAKE_COMMAND> -E vs_link_dll${NO_RSP_EXPAND} ${CMAKE_${lang}_CREATE_SHARED_LIBRARY}")
     set(CMAKE_${lang}_CREATE_SHARED_MODULE
-      "<CMAKE_COMMAND> -E vs_link_dll ${CMAKE_${lang}_CREATE_SHARED_MODULE}")
+      "<CMAKE_COMMAND> -E vs_link_dll${NO_RSP_EXPAND} ${CMAKE_${lang}_CREATE_SHARED_MODULE}")
   endif()
 endmacro()
diff --git a/Modules/Platform/Windows-cl.cmake b/Modules/Platform/Windows-cl.cmake
index 05df946..64c3e69 100644
--- a/Modules/Platform/Windows-cl.cmake
+++ b/Modules/Platform/Windows-cl.cmake
@@ -142,15 +142,18 @@ endif()
 
 # default to Debug builds
 if(MSVC_VERSION GREATER 1310)
+  if(CMAKE_GENERATOR MATCHES "Ninja")
+    set(NO_RSP_EXPAND _no_rsp_expand)
+  endif()
   # for 2005 make sure the manifest is put in the dll with mt
-  set(CMAKE_CXX_CREATE_SHARED_LIBRARY "<CMAKE_COMMAND> -E vs_link_dll ${CMAKE_CXX_CREATE_SHARED_LIBRARY}")
-  set(CMAKE_CXX_CREATE_SHARED_MODULE "<CMAKE_COMMAND> -E vs_link_dll ${CMAKE_CXX_CREATE_SHARED_MODULE}")
+  set(CMAKE_CXX_CREATE_SHARED_LIBRARY "<CMAKE_COMMAND> -E vs_link_dll${NO_RSP_EXPAND} ${CMAKE_CXX_CREATE_SHARED_LIBRARY}")
+  set(CMAKE_CXX_CREATE_SHARED_MODULE "<CMAKE_COMMAND> -E vs_link_dll${NO_RSP_EXPAND} ${CMAKE_CXX_CREATE_SHARED_MODULE}")
   # create a C shared library
   set(CMAKE_C_CREATE_SHARED_LIBRARY "${CMAKE_CXX_CREATE_SHARED_LIBRARY}")
   # create a C shared module just copy the shared library rule
   set(CMAKE_C_CREATE_SHARED_MODULE "${CMAKE_CXX_CREATE_SHARED_MODULE}")
-  set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_COMMAND> -E vs_link_exe ${CMAKE_CXX_LINK_EXECUTABLE}")
-  set(CMAKE_C_LINK_EXECUTABLE "<CMAKE_COMMAND> -E vs_link_exe ${CMAKE_C_LINK_EXECUTABLE}")
+  set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_COMMAND> -E vs_link_exe${NO_RSP_EXPAND} ${CMAKE_CXX_LINK_EXECUTABLE}")
+  set(CMAKE_C_LINK_EXECUTABLE "<CMAKE_COMMAND> -E vs_link_exe${NO_RSP_EXPAND} ${CMAKE_C_LINK_EXECUTABLE}")
 
   set(CMAKE_BUILD_TYPE_INIT Debug)
   set (CMAKE_CXX_FLAGS_INIT "/DWIN32 /D_WINDOWS /W3 /Zm1000 /EHsc /GR")
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 75aa471..840a6c8 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -1682,11 +1682,19 @@ int cmake::ExecuteCMakeCommand(std::vector<std::string>& args)
       }
     else if (args[1] == "vs_link_exe")
       {
-      return cmake::VisualStudioLink(args, 1);
+      return cmake::VisualStudioLink(args, 1, false);
       }
     else if (args[1] == "vs_link_dll")
       {
-      return cmake::VisualStudioLink(args, 2);
+      return cmake::VisualStudioLink(args, 2, false);
+      }
+    else if (args[1] == "vs_link_exe_no_rsp_expand")
+      {
+      return cmake::VisualStudioLink(args, 1, true);
+      }
+    else if (args[1] == "vs_link_dll_no_rsp_expand")
+      {
+      return cmake::VisualStudioLink(args, 2, true);
       }
 #ifdef CMAKE_BUILD_WITH_CMAKE
     // Internal CMake color makefile support.
@@ -4001,7 +4009,8 @@ static bool cmakeCheckStampList(const char* stampList)
 // For visual studio 2005 and newer manifest files need to be embeded into
 // exe and dll's.  This code does that in such a way that incremental linking
 // still works.
-int cmake::VisualStudioLink(std::vector<std::string>& args, int type)
+int cmake::VisualStudioLink(std::vector<std::string>& args, int type,
+                            bool no_rsp_expand)
 {
   if(args.size() < 2)
     {
@@ -4016,13 +4025,12 @@ int cmake::VisualStudioLink(std::vector<std::string>& args, int type)
   for(std::vector<std::string>::iterator i = args.begin();
       i != args.end(); ++i)
     {
-    // check for nmake temporary files
-    if((*i)[0] == '@' && i->find("@CMakeFiles") != 0 )
+    // check for nmake temporary files (there are two rsp files)
+    if(!no_rsp_expand && (*i)[0] == '@' && i->find("@CMakeFiles") != 0 )
       {
       std::ifstream fin(i->substr(1).c_str());
       std::string line;
-      while(cmSystemTools::GetLineFromStream(fin,
-                                             line))
+      while(cmSystemTools::GetLineFromStream(fin, line))
         {
         cmSystemTools::ParseWindowsCommandLine(line.c_str(), expandedArgs);
         }
diff --git a/Source/cmake.h b/Source/cmake.h
index 94c6f12..12e5edf 100644
--- a/Source/cmake.h
+++ b/Source/cmake.h
@@ -447,7 +447,8 @@ protected:
                               std::string const& link);
   static int ExecuteEchoColor(std::vector<std::string>& args);
   static int ExecuteLinkScript(std::vector<std::string>& args);
-  static int VisualStudioLink(std::vector<std::string>& args, int type);
+  static int VisualStudioLink(std::vector<std::string>& args, int type,
+                              bool no_rsp_expand);
   static int VisualStudioLinkIncremental(std::vector<std::string>& args,
                                          int type,
                                          bool verbose);

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

Summary of changes:
 Modules/Platform/Windows-Intel.cmake |    9 ++++++---
 Modules/Platform/Windows-cl.cmake    |   11 +++++++----
 Source/cmake.cxx                     |   22 +++++++++++++++-------
 Source/cmake.h                       |    3 ++-
 4 files changed, 30 insertions(+), 15 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list