[Cmake-commits] CMake branch, next, updated. v2.8.11.1-2592-gbb2996e

Stephen Kelly steveire at gmail.com
Tue Jun 11 08:41:42 EDT 2013


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  bb2996e47a04abb7bdb434cd499f4a1232b79481 (commit)
       via  2d9ec1dadfdd10043a98d425abb25d0aef117699 (commit)
      from  826cea1d4761c9a59d0a62a2cad25541250979e4 (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=bb2996e47a04abb7bdb434cd499f4a1232b79481
commit bb2996e47a04abb7bdb434cd499f4a1232b79481
Merge: 826cea1 2d9ec1d
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Tue Jun 11 08:41:40 2013 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Tue Jun 11 08:41:40 2013 -0400

    Merge topic 'COMPILER_TARGET' into next
    
    2d9ec1d Add compiler target compile options.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2d9ec1dadfdd10043a98d425abb25d0aef117699
commit 2d9ec1dadfdd10043a98d425abb25d0aef117699
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sun May 19 19:18:01 2013 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Tue Jun 11 14:41:16 2013 +0200

    Add compiler target compile options.
    
    For clang, this allows passing -target <triple> to the compiler, and
    for qcc, -V<arch> using toolchain files containing something like
    
     set(triple arm-linux-gnueabihf)
     set(CMAKE_C_COMPILER "/usr/bin/clang")
     set(CMAKE_C_COMPILER_TARGET ${triple})
     set(CMAKE_CXX_COMPILER "/usr/bin/clang++")
     set(CMAKE_CXX_COMPILER_TARGET ${triple})
    
    or
    
     set(arch gcc_ntoarmv7le)
     set(CMAKE_C_COMPILER /opt/qnx650/host/linux/x86/usr/bin/qcc)
     set(CMAKE_C_COMPILER_TARGET ${arch})
     set(CMAKE_CXX_COMPILER /opt/qnx650/host/linux/x86/usr/bin/QCC)
     set(CMAKE_CXX_COMPILER_TARGET ${arch})
    
    Both clang and qcc are inherently cross compiler( driver)s.

diff --git a/Modules/CMakeDetermineCompilerABI.cmake b/Modules/CMakeDetermineCompilerABI.cmake
index 25d6bbe..44cc04a 100644
--- a/Modules/CMakeDetermineCompilerABI.cmake
+++ b/Modules/CMakeDetermineCompilerABI.cmake
@@ -28,6 +28,9 @@ function(CMAKE_DETERMINE_COMPILER_ABI lang src)
     if(DEFINED CMAKE_${lang}_VERBOSE_FLAG)
       set(CMAKE_FLAGS "-DCMAKE_EXE_LINKER_FLAGS=${CMAKE_${lang}_VERBOSE_FLAG}")
     endif()
+    if(CMAKE_${lang}_COMPILER_TARGET)
+      set(CMAKE_FLAGS "${CMAKE_FLAGS} -DCMAKE_${lang}_COMPILER_TARGET=${CMAKE_${lang}_COMPILER_TARGET}")
+    endif()
     try_compile(CMAKE_${lang}_ABI_COMPILED
       ${CMAKE_BINARY_DIR} ${src}
       CMAKE_FLAGS "${CMAKE_FLAGS}"
diff --git a/Modules/Compiler/Clang.cmake b/Modules/Compiler/Clang.cmake
index ec4562a..66b00bd 100644
--- a/Modules/Compiler/Clang.cmake
+++ b/Modules/Compiler/Clang.cmake
@@ -25,4 +25,5 @@ macro(__compiler_clang lang)
   set(CMAKE_${lang}_COMPILE_OPTIONS_PIE "-fPIE")
   set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-isystem ")
   set(CMAKE_${lang}_COMPILE_OPTIONS_VISIBILITY "-fvisibility=")
+  set(CMAKE_${lang}_COMPILE_OPTION_TARGET "-target ")
 endmacro()
diff --git a/Modules/Platform/QNX.cmake b/Modules/Platform/QNX.cmake
index 2598411..315f721 100644
--- a/Modules/Platform/QNX.cmake
+++ b/Modules/Platform/QNX.cmake
@@ -13,6 +13,9 @@ set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":")
 set(CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG "-Wl,-rpath-link,")
 set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,")
 set(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic")
+# http://www.qnx.com/developers/docs/6.4.0/neutrino/utilities/q/qcc.html#examples
+set(CMAKE_C_COMPILE_OPTION_TARGET "-V")
+set(CMAKE_CXX_COMPILE_OPTION_TARGET "-V")
 
 # Shared libraries with no builtin soname may not be linked safely by
 # specifying the file path.
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index c2da4a9..b57a54e 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -1044,11 +1044,20 @@ cmLocalGenerator::ExpandRuleVariable(std::string const& variable,
       // If this is the compiler then look for the extra variable
       // _COMPILER_ARG1 which must be the first argument to the compiler
       const char* compilerArg1 = 0;
+      const char* compilerTarget = 0;
+      const char* compilerOptionTarget = 0;
       if(actualReplace == "CMAKE_${LANG}_COMPILER")
         {
         std::string arg1 = actualReplace + "_ARG1";
         cmSystemTools::ReplaceString(arg1, "${LANG}", lang);
         compilerArg1 = this->Makefile->GetDefinition(arg1.c_str());
+        compilerTarget
+              = this->Makefile->GetDefinition(
+                (std::string("CMAKE_") + lang + "_COMPILER_TARGET").c_str());
+        compilerOptionTarget
+              = this->Makefile->GetDefinition(
+                (std::string("CMAKE_") + lang +
+                                          "_COMPILE_OPTION_TARGET").c_str());
         }
       if(actualReplace.find("${LANG}") != actualReplace.npos)
         {
@@ -1069,6 +1078,11 @@ cmLocalGenerator::ExpandRuleVariable(std::string const& variable,
             ret += " ";
             ret += compilerArg1;
             }
+          if (compilerTarget && compilerOptionTarget)
+            {
+            ret += compilerOptionTarget;
+            ret += compilerTarget;
+            }
           return ret;
           }
         return replace;

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

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list