[Cmake-commits] CMake branch, next, updated. v2.8.9-788-g0c88091

Peter Kuemmel syntheticpp at gmx.net
Wed Sep 26 04:40:09 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  0c88091715f950da9a63e58a5b418dc44d6fdf29 (commit)
       via  558881d6dfafe0ef98e3407d09a893c4773dffac (commit)
       via  883881d228c5369831f5a430009cca492893ea55 (commit)
      from  f53759e51af2eb3413106ff90330a420b7ef9db7 (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=0c88091715f950da9a63e58a5b418dc44d6fdf29
commit 0c88091715f950da9a63e58a5b418dc44d6fdf29
Merge: f53759e 558881d
Author:     Peter Kuemmel <syntheticpp at gmx.net>
AuthorDate: Wed Sep 26 04:40:05 2012 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Wed Sep 26 04:40:05 2012 -0400

    Merge topic 'ninja-link-rsp-expand' into next
    
    558881d Ninja: don't confuse ninja's rsp files with nmake's
    883881d Revert "Ninja: don't expand any rsp files"


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=558881d6dfafe0ef98e3407d09a893c4773dffac
commit 558881d6dfafe0ef98e3407d09a893c4773dffac
Author:     Peter Kümmel <syntheticpp at gmx.net>
AuthorDate: Wed Sep 26 10:07:25 2012 +0200
Commit:     Peter Kümmel <syntheticpp at gmx.net>
CommitDate: Wed Sep 26 10:35:45 2012 +0200

    Ninja: don't confuse ninja's rsp files with nmake's
    
    Move response files into CMakeFiles/ which makes them different to nmake's.

diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx
index 3f3cfbb..d9ef3f9 100644
--- a/Source/cmGlobalNinjaGenerator.cxx
+++ b/Source/cmGlobalNinjaGenerator.cxx
@@ -106,6 +106,7 @@ void cmGlobalNinjaGenerator::WriteBuild(std::ostream& os,
                                         const cmNinjaDeps& implicitDeps,
                                         const cmNinjaDeps& orderOnlyDeps,
                                         const cmNinjaVars& variables,
+                                        const std::string& rspfile,
                                         int cmdLineLimit)
 {
   // Make sure there is a rule.
@@ -181,12 +182,17 @@ void cmGlobalNinjaGenerator::WriteBuild(std::ostream& os,
 
   // check if a response file rule should be used
   std::string buildstr = build.str();
-  const std::string assignments = variable_assignments.str();
+  std::string assignments = variable_assignments.str();
   const std::string args = arguments.str();
   if (cmdLineLimit > 0
       && args.size() + buildstr.size() + assignments.size()
-         > (size_t) cmdLineLimit)
+                                                    > (size_t) cmdLineLimit) {
     buildstr += "_RSPFILE";
+    variable_assignments.clear();
+    cmGlobalNinjaGenerator::WriteVariable(variable_assignments,
+                                          "RSP_FILE", rspfile, "", 1);
+    assignments += variable_assignments.str();
+  }
 
   os << buildstr << args << assignments;
 }
diff --git a/Source/cmGlobalNinjaGenerator.h b/Source/cmGlobalNinjaGenerator.h
index b2fe243..0df450e 100644
--- a/Source/cmGlobalNinjaGenerator.h
+++ b/Source/cmGlobalNinjaGenerator.h
@@ -84,6 +84,7 @@ public:
                          const cmNinjaDeps& implicitDeps,
                          const cmNinjaDeps& orderOnlyDeps,
                          const cmNinjaVars& variables,
+                         const std::string &rspfile = std::string(),
                          int cmdLineLimit = -1);
 
   /**
diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx
index 6f991e2..3cd3e4d 100644
--- a/Source/cmNinjaNormalTargetGenerator.cxx
+++ b/Source/cmNinjaNormalTargetGenerator.cxx
@@ -179,7 +179,7 @@ cmNinjaNormalTargetGenerator
         } else {
           responseFlag = "@";
         }
-        rspfile = "$out.rsp";
+        rspfile = "$RSP_FILE";
         responseFlag += rspfile;
         rspcontent = "$in $LINK_LIBRARIES";
         vars.Objects = responseFlag.c_str();
@@ -549,6 +549,9 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement()
   int commandLineLengthLimit = -1;
 #endif
 
+  std::string rspfile = std::string("CMakeFiles/") +
+                                        this->GetTarget()->GetName() + ".rsp";
+
   // Write the build statement for this target.
   cmGlobalNinjaGenerator::WriteBuild(this->GetBuildFileStream(),
                                      comment.str(),
@@ -558,6 +561,7 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement()
                                      implicitDeps,
                                      emptyDeps,
                                      vars,
+                                     rspfile,
                                      commandLineLengthLimit);
 
   if (targetOutput != targetOutputReal) {

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=883881d228c5369831f5a430009cca492893ea55
commit 883881d228c5369831f5a430009cca492893ea55
Author:     Peter Kümmel <syntheticpp at gmx.net>
AuthorDate: Wed Sep 26 10:34:25 2012 +0200
Commit:     Peter Kümmel <syntheticpp at gmx.net>
CommitDate: Wed Sep 26 10:34:25 2012 +0200

    Revert "Ninja: don't expand any rsp files"
    
    This reverts commit f50f3cbca8ef2f10a9c84935be9e9d5b4fef3917.
    
    A simpler solution is used in next commit.
    
    Conflicts:
    	Modules/Platform/Windows-cl.cmake

diff --git a/Modules/Platform/Windows-Intel.cmake b/Modules/Platform/Windows-Intel.cmake
index 41e150a..3a30a2e 100644
--- a/Modules/Platform/Windows-Intel.cmake
+++ b/Modules/Platform/Windows-Intel.cmake
@@ -98,14 +98,11 @@ 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${NO_RSP_EXPAND} ${CMAKE_${lang}_LINK_EXECUTABLE}")
+      "<CMAKE_COMMAND> -E vs_link_exe ${CMAKE_${lang}_LINK_EXECUTABLE}")
     set(CMAKE_${lang}_CREATE_SHARED_LIBRARY
-      "<CMAKE_COMMAND> -E vs_link_dll${NO_RSP_EXPAND} ${CMAKE_${lang}_CREATE_SHARED_LIBRARY}")
+      "<CMAKE_COMMAND> -E vs_link_dll ${CMAKE_${lang}_CREATE_SHARED_LIBRARY}")
     set(CMAKE_${lang}_CREATE_SHARED_MODULE
-      "<CMAKE_COMMAND> -E vs_link_dll${NO_RSP_EXPAND} ${CMAKE_${lang}_CREATE_SHARED_MODULE}")
+      "<CMAKE_COMMAND> -E vs_link_dll ${CMAKE_${lang}_CREATE_SHARED_MODULE}")
   endif()
 endmacro()
diff --git a/Modules/Platform/Windows-MSVC.cmake b/Modules/Platform/Windows-MSVC.cmake
index da0dba9..cc48cfe 100644
--- a/Modules/Platform/Windows-MSVC.cmake
+++ b/Modules/Platform/Windows-MSVC.cmake
@@ -212,11 +212,8 @@ 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
-    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} ")
+    set(_CMAKE_VS_LINK_DLL "<CMAKE_COMMAND> -E vs_link_dll ")
+    set(_CMAKE_VS_LINK_EXE "<CMAKE_COMMAND> -E vs_link_exe ")
   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 6cb7aa4..745d513 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -1683,19 +1683,11 @@ int cmake::ExecuteCMakeCommand(std::vector<std::string>& args)
       }
     else if (args[1] == "vs_link_exe")
       {
-      return cmake::VisualStudioLink(args, 1, false);
+      return cmake::VisualStudioLink(args, 1);
       }
     else if (args[1] == "vs_link_dll")
       {
-      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);
+      return cmake::VisualStudioLink(args, 2);
       }
 #ifdef CMAKE_BUILD_WITH_CMAKE
     // Internal CMake color makefile support.
@@ -4021,8 +4013,7 @@ 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,
-                            bool no_rsp_expand)
+int cmake::VisualStudioLink(std::vector<std::string>& args, int type)
 {
   if(args.size() < 2)
     {
@@ -4037,12 +4028,13 @@ 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 (there are two rsp files)
-    if(!no_rsp_expand && (*i)[0] == '@' && i->find("@CMakeFiles") != 0 )
+    // check for nmake temporary files
+    if((*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 12e5edf..94c6f12 100644
--- a/Source/cmake.h
+++ b/Source/cmake.h
@@ -447,8 +447,7 @@ 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,
-                              bool no_rsp_expand);
+  static int VisualStudioLink(std::vector<std::string>& args, int type);
   static int VisualStudioLinkIncremental(std::vector<std::string>& args,
                                          int type,
                                          bool verbose);

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

Summary of changes:
 Modules/Platform/Windows-Intel.cmake    |    9 +++------
 Modules/Platform/Windows-MSVC.cmake     |    7 ++-----
 Source/cmGlobalNinjaGenerator.cxx       |   10 ++++++++--
 Source/cmGlobalNinjaGenerator.h         |    1 +
 Source/cmNinjaNormalTargetGenerator.cxx |    6 +++++-
 Source/cmake.cxx                        |   22 +++++++---------------
 Source/cmake.h                          |    3 +--
 7 files changed, 27 insertions(+), 31 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list