[Cmake-commits] CMake branch, next, updated. v2.8.9-580-gd2e906d

Peter Kuemmel syntheticpp at gmx.net
Tue Sep 18 12:07:32 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  d2e906db5887a95a3e78e6742f4c0e4b662bc99b (commit)
       via  a1c9c136c33bb9370e5d6c2780817590530c9fbc (commit)
       via  21f5fc12ee4ca043838264962fc7608a97b8f35f (commit)
      from  e56136c280ddb00a0d64dd117547156f782c0314 (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=d2e906db5887a95a3e78e6742f4c0e4b662bc99b
commit d2e906db5887a95a3e78e6742f4c0e4b662bc99b
Merge: e56136c a1c9c13
Author:     Peter Kuemmel <syntheticpp at gmx.net>
AuthorDate: Tue Sep 18 12:07:30 2012 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Tue Sep 18 12:07:30 2012 -0400

    Merge topic 'ninja-rc-compile-flag' into next
    
    a1c9c13 Ninja: filter target specific compile flags with language specific regex
    21f5fc1 CMake Nightly Date Stamp


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a1c9c136c33bb9370e5d6c2780817590530c9fbc
commit a1c9c136c33bb9370e5d6c2780817590530c9fbc
Author:     Peter Kümmel <syntheticpp at gmx.net>
AuthorDate: Wed Aug 22 00:11:17 2012 +0200
Commit:     Peter Kümmel <syntheticpp at gmx.net>
CommitDate: Tue Sep 18 18:02:10 2012 +0200

    Ninja: filter target specific compile flags with language specific regex
    
    sync with Makefile code.
    
    Bug: 13486
    
    Many thanks to Nils Gladitz

diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx
index 4cc23ca..385b4a0 100644
--- a/Source/cmNinjaTargetGenerator.cxx
+++ b/Source/cmNinjaTargetGenerator.cxx
@@ -167,11 +167,41 @@ cmNinjaTargetGenerator::ComputeFlagsForObject(cmSourceFile *source,
   // Append old-style preprocessor definition flags.
   this->LocalGenerator->AppendFlags(flags, this->Makefile->GetDefineFlags());
 
-  // Add target-specific and source-specific flags.
-  this->LocalGenerator->AppendFlags(flags,
-                                   this->Target->GetProperty("COMPILE_FLAGS"));
-  this->LocalGenerator->AppendFlags(flags,
-                                    source->GetProperty("COMPILE_FLAGS"));
+  // Add target-specific flags.
+  if(this->Target->GetProperty("COMPILE_FLAGS"))
+    {
+    std::string langIncludeExpr = "CMAKE_";
+    langIncludeExpr += language;
+    langIncludeExpr += "_FLAG_REGEX";
+    const char* regex = this->Makefile->
+      GetDefinition(langIncludeExpr.c_str());
+    if(regex)
+      {
+      cmsys::RegularExpression r(regex);
+      std::vector<std::string> args;
+      cmSystemTools::ParseWindowsCommandLine(
+        this->Target->GetProperty("COMPILE_FLAGS"),
+        args);
+      for(std::vector<std::string>::iterator i = args.begin();
+          i != args.end(); ++i)
+        {
+        if(r.find(i->c_str()))
+          {
+          this->LocalGenerator->AppendFlags
+            (flags, i->c_str());
+          }
+        }
+      }
+    else
+      {
+      this->LocalGenerator->AppendFlags
+        (flags, this->Target->GetProperty("COMPILE_FLAGS"));
+      }
+    }
+
+    // Add source file specific flags.
+    this->LocalGenerator->AppendFlags(flags,
+      source->GetProperty("COMPILE_FLAGS"));
 
   // TODO: Handle Apple frameworks.
 

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

Summary of changes:
 Source/CMakeVersion.cmake         |    2 +-
 Source/cmNinjaTargetGenerator.cxx |   40 ++++++++++++++++++++++++++++++++----
 2 files changed, 36 insertions(+), 6 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list