[Cmake-commits] CMake branch, next, updated. v2.8.9-630-g356a747

Brad King brad.king at kitware.com
Wed Sep 19 11:42:06 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  356a747a8eb66740b92eda940f97b8b9847e148e (commit)
       via  5598d9b2a06d4ec788b5e058435bb3bba99fd517 (commit)
      from  f797cb296dd31e22b9c010fec931035a4902dbe7 (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=356a747a8eb66740b92eda940f97b8b9847e148e
commit 356a747a8eb66740b92eda940f97b8b9847e148e
Merge: f797cb2 5598d9b
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Wed Sep 19 11:42:05 2012 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Wed Sep 19 11:42:05 2012 -0400

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


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5598d9b2a06d4ec788b5e058435bb3bba99fd517
commit 5598d9b2a06d4ec788b5e058435bb3bba99fd517
Author:     Peter Kuemmel <syntheticpp at gmx.net>
AuthorDate: Tue Aug 14 15:48:45 2012 +0200
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Sep 19 11:40:47 2012 -0400

    Ninja: don't expand any rsp files

diff --git a/Modules/Platform/Windows-Intel.cmake b/Modules/Platform/Windows-Intel.cmake
index 3a30a2e..41e150a 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-MSVC.cmake b/Modules/Platform/Windows-MSVC.cmake
index cc48cfe..da0dba9 100644
--- a/Modules/Platform/Windows-MSVC.cmake
+++ b/Modules/Platform/Windows-MSVC.cmake
@@ -212,8 +212,11 @@ set (CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL_INIT ${CMAKE_EXE_LINKER_FLAGS_MINSIZER
 macro(__windows_compiler_msvc lang)
   if(NOT "${CMAKE_${lang}_COMPILER_VERSION}" VERSION_LESS 14)
     # for 2005 make sure the manifest is put in the dll with mt
-    set(_CMAKE_VS_LINK_DLL "<CMAKE_COMMAND> -E vs_link_dll ")
-    set(_CMAKE_VS_LINK_EXE "<CMAKE_COMMAND> -E vs_link_exe ")
+    if(CMAKE_GENERATOR MATCHES "Ninja")
+      set(NO_RSP_EXPAND _no_rsp_expand)
+    endif()
+    set(_CMAKE_VS_LINK_DLL "<CMAKE_COMMAND> -E vs_link_dll${NO_RSP_EXPAND} ")
+    set(_CMAKE_VS_LINK_EXE "<CMAKE_COMMAND> -E vs_link_exe${NO_RSP_EXPAND} ")
   endif()
   set(CMAKE_${lang}_CREATE_SHARED_LIBRARY
     "${_CMAKE_VS_LINK_DLL}<CMAKE_LINKER> ${CMAKE_CL_NOLOGO} <OBJECTS> ${CMAKE_START_TEMP_FILE} /out:<TARGET> /implib:<TARGET_IMPLIB> /pdb:<TARGET_PDB> /dll /version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR> <LINK_FLAGS> <LINK_LIBRARIES> ${CMAKE_END_TEMP_FILE}")
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index c6787b9..14f1566 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.
@@ -4009,7 +4017,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)
     {
@@ -4024,13 +4033,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:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list