[Cmake-commits] CMake branch, next, updated. v2.8.9-818-g0ce6f26

Brad King brad.king at kitware.com
Fri Sep 28 08:31:51 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  0ce6f269cc717aec242253be45fcdf8bb784cb16 (commit)
       via  f1670ab18a21b635e58e1a53178c25c722911504 (commit)
       via  64d64b4edfe9a64fdc88c97e67681c9a16fb5eca (commit)
       via  137ad7c7559d379f192bb4561a8a51a8bfac3347 (commit)
      from  61ec1b7a9069bee2a1f8f4785d653667cabda819 (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=0ce6f269cc717aec242253be45fcdf8bb784cb16
commit 0ce6f269cc717aec242253be45fcdf8bb784cb16
Merge: 61ec1b7 f1670ab
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Sep 28 08:30:47 2012 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Fri Sep 28 08:30:47 2012 -0400

    Merge topic 'ninja-link-rsp-expand' into next
    
    f1670ab Ninja: don't confuse ninja's rsp files with nmake's
    64d64b4 CMake Nightly Date Stamp
    137ad7c CMake Nightly Date Stamp

diff --cc Source/cmNinjaNormalTargetGenerator.cxx
index 1ce321e,a13e1f0..b51ac72
--- a/Source/cmNinjaNormalTargetGenerator.cxx
+++ b/Source/cmNinjaNormalTargetGenerator.cxx
@@@ -181,16 -179,9 +181,16 @@@ cmNinjaNormalTargetGenerato
          } else {
            responseFlag = "@";
          }
-         rspfile = "$out.rsp";
+         rspfile = "$RSP_FILE";
          responseFlag += rspfile;
 -        rspcontent = "$in $LINK_LIBRARIES";
 +
 +        // build response file content
 +        std::string linkOptionVar = cmakeVarLang;
 +        linkOptionVar += "_COMPILER_LINKER_OPTION_FLAG_";
 +        linkOptionVar += cmTarget::GetTargetTypeName(targetType);
 +        const std::string linkOption =
 +                GetMakefile()->GetSafeDefinition(linkOptionVar.c_str());
 +        rspcontent = "$in " + linkOption + " $LINK_PATH $LINK_LIBRARIES";
          vars.Objects = responseFlag.c_str();
          vars.LinkLibraries = "";
      }
@@@ -553,21 -539,20 +553,25 @@@ void cmNinjaNormalTargetGenerator::Writ
  
    int linkRuleLength = this->GetGlobalGenerator()->
                                   GetRuleCmdLength(this->LanguageLinkerRule());
 +
 +  int commandLineLengthLimit = 1;
 +  const char* forceRspFile = "CMAKE_NINJA_FORCE_RESPONSE_FILE";
 +  if (!this->GetMakefile()->IsDefinitionSet(forceRspFile) &&
 +      cmSystemTools::GetEnv(forceRspFile) == 0) {
  #ifdef _WIN32
 -  int commandLineLengthLimit = 8000 - linkRuleLength;
 +    commandLineLengthLimit = 8000 - linkRuleLength;
  #elif defined(__linux) || defined(__APPLE__)
 -  // for instance ARG_MAX is 2096152 on Ubuntu or 262144 on Mac
 -  int commandLineLengthLimit = ((int)sysconf(_SC_ARG_MAX))
 -                                    - linkRuleLength - 1000;
 +    // for instance ARG_MAX is 2096152 on Ubuntu or 262144 on Mac
 +    commandLineLengthLimit = ((int)sysconf(_SC_ARG_MAX))- linkRuleLength - 1000;
  #else
 -  int commandLineLengthLimit = -1;
 +    commandLineLengthLimit = -1;
  #endif
 +  }
  
+   const std::string rspfile = std::string
+                               (cmake::GetCMakeFilesDirectoryPostSlash()) +
+                               this->GetTarget()->GetName() + ".rsp";
+ 
    // Write the build statement for this target.
    cmGlobalNinjaGenerator::WriteBuild(this->GetBuildFileStream(),
                                       comment.str(),

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f1670ab18a21b635e58e1a53178c25c722911504
commit f1670ab18a21b635e58e1a53178c25c722911504
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: Fri Sep 28 12:33:57 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..05f5b4c 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)
-    buildstr += "_RSPFILE";
+                                                    > (size_t) cmdLineLimit) {
+    buildstr += "_RSP_FILE";
+    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..24c3916 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..a13e1f0 100644
--- a/Source/cmNinjaNormalTargetGenerator.cxx
+++ b/Source/cmNinjaNormalTargetGenerator.cxx
@@ -153,7 +153,7 @@ cmNinjaNormalTargetGenerator
   cmTarget::TargetType targetType = this->GetTarget()->GetType();
   std::string ruleName = this->LanguageLinkerRule();
   if (useResponseFile)
-    ruleName += "_RSPFILE";
+    ruleName += "_RSP_FILE";
 
   // Select whether to use a response file for objects.
   std::string rspfile;
@@ -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,10 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement()
   int commandLineLengthLimit = -1;
 #endif
 
+  const std::string rspfile = std::string
+                              (cmake::GetCMakeFilesDirectoryPostSlash()) +
+                              this->GetTarget()->GetName() + ".rsp";
+
   // Write the build statement for this target.
   cmGlobalNinjaGenerator::WriteBuild(this->GetBuildFileStream(),
                                      comment.str(),
@@ -558,6 +562,7 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement()
                                      implicitDeps,
                                      emptyDeps,
                                      vars,
+                                     rspfile,
                                      commandLineLengthLimit);
 
   if (targetOutput != targetOutputReal) {

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

Summary of changes:
 Source/CMakeVersion.cmake               |    2 +-
 Source/cmGlobalNinjaGenerator.cxx       |   12 +++++++++---
 Source/cmGlobalNinjaGenerator.h         |    1 +
 Source/cmNinjaNormalTargetGenerator.cxx |    9 +++++++--
 4 files changed, 18 insertions(+), 6 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list