[Cmake-commits] CMake branch, next, updated. v2.8.9-136-gf8133bf

Peter Kuemmel syntheticpp at gmx.net
Fri Aug 17 13:18:47 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  f8133bf98febcd02690548edfbe476aaabdd0623 (commit)
       via  4a35bd0e69e5cfaf7ca9604c90b609d1d333bb37 (commit)
      from  2b5ea38ce9a47e5b7ca234d7fda7570e3e8d0d44 (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=f8133bf98febcd02690548edfbe476aaabdd0623
commit f8133bf98febcd02690548edfbe476aaabdd0623
Merge: 2b5ea38 4a35bd0
Author:     Peter Kuemmel <syntheticpp at gmx.net>
AuthorDate: Fri Aug 17 13:18:46 2012 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Fri Aug 17 13:18:46 2012 -0400

    Merge topic 'cmcldeps-needs-cl' into next
    
    4a35bd0 Ninja: don't crash on returned 0 pointer


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4a35bd0e69e5cfaf7ca9604c90b609d1d333bb37
commit 4a35bd0e69e5cfaf7ca9604c90b609d1d333bb37
Author:     Peter Kümmel <syntheticpp at gmx.net>
AuthorDate: Fri Aug 17 16:01:53 2012 +0200
Commit:     Peter Kümmel <syntheticpp at gmx.net>
CommitDate: Fri Aug 17 16:33:59 2012 +0200

    Ninja: don't crash on returned 0 pointer

diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx
index 793dfa0..b6bdfdc 100644
--- a/Source/cmNinjaTargetGenerator.cxx
+++ b/Source/cmNinjaTargetGenerator.cxx
@@ -342,26 +342,26 @@ cmNinjaTargetGenerator
   cmMakefile* mf = this->GetMakefile();
 
   bool useClDeps = false;
+  std::string clBinary;
   std::string clDepsBinary;
   std::string clShowPrefix;
   if (lang == "C" || lang == "CXX" || lang == "RC")
     {
-    const char* depsPtr = mf->GetDefinition("CMAKE_CMCLDEPS_EXECUTABLE");
-    const char* showPtr = mf->GetDefinition("CMAKE_CL_SHOWINCLUDE_PREFIX");
-    if (depsPtr && showPtr)
+    clDepsBinary = mf->GetSafeDefinition("CMAKE_CMCLDEPS_EXECUTABLE");
+    if (!clDepsBinary.empty() &&
+        !this->GetGlobalGenerator()->GetCMakeInstance()->GetIsInTryCompile())
       {
-      // don't wrap for try_compile,
-      // TODO but why doesn't it work with cmcldeps?
-      const std::string projectName  = mf->GetProjectName() ?
-                                       mf->GetProjectName() : "";
-      if (projectName != "CMAKE_TRY_COMPILE"
-          && (mf->GetDefinition("CMAKE_C_COMPILER") ||
-              mf->GetDefinition("CMAKE_CXX_COMPILER")))
+      clShowPrefix = mf->GetSafeDefinition("CMAKE_CL_SHOWINCLUDE_PREFIX");
+      clBinary = mf->GetDefinition("CMAKE_C_COMPILER") ?
+                 mf->GetSafeDefinition("CMAKE_C_COMPILER") :
+                 mf->GetSafeDefinition("CMAKE_CXX_COMPILER");
+      if (!clBinary.empty() && !clShowPrefix.empty())
         {
         useClDeps = true;
-        std::string qu = "\"";
-        clDepsBinary = qu + depsPtr + qu;
-        clShowPrefix = qu + showPtr + qu;
+        const std::string quote = " \"";
+        clBinary     = quote + clBinary     + "\" ";
+        clDepsBinary = quote + clDepsBinary + "\" ";
+        clShowPrefix = quote + clShowPrefix + "\" ";
         vars.DependencyFile = "$DEP_FILE";
         }
       }
@@ -395,17 +395,14 @@ cmNinjaTargetGenerator
        i != compileCmds.end(); ++i)
     this->GetLocalGenerator()->ExpandRuleVariables(*i, vars);
 
-  std::string cmdLine =
-    this->GetLocalGenerator()->BuildCommandLine(compileCmds);
-
+  std::string cmdLine;
   if(useClDeps)
     {
-    std::string cl = mf->GetDefinition("CMAKE_C_COMPILER");
-    if (cl.empty())
-      cl = mf->GetDefinition("CMAKE_CXX_COMPILER");
-    cmdLine =   clDepsBinary + " "   + lang + " $in \"$DEP_FILE\" $out "
-              + clShowPrefix + " \"" + cl   + "\" " + cmdLine;
+    cmdLine = clDepsBinary + lang + " $in \"$DEP_FILE\" $out " +
+              clShowPrefix + clBinary;
     }
+  cmdLine += this->GetLocalGenerator()->BuildCommandLine(compileCmds);
+
 
   // Write the rule for compiling file of the given language.
   cmOStringStream comment;

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

Summary of changes:
 Source/cmNinjaTargetGenerator.cxx |   39 +++++++++++++++++-------------------
 1 files changed, 18 insertions(+), 21 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list