[Cmake-commits] CMake branch, next, updated. v2.8.11.1-2588-g81141da

Stephen Kelly steveire at gmail.com
Tue Jun 11 06:29: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  81141da33ec6e72f5bc4a5ebc9f6628731e9450e (commit)
       via  fc2001a0bbc73d3769dd87717867affb80239d0c (commit)
       via  a2021e578c6b6c944b1d1442cfb76c3f9543c839 (commit)
      from  56c5bc75c26a24334e38e193ca5bc7908107a14b (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=81141da33ec6e72f5bc4a5ebc9f6628731e9450e
commit 81141da33ec6e72f5bc4a5ebc9f6628731e9450e
Merge: 56c5bc7 fc2001a
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Tue Jun 11 06:29:36 2013 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Tue Jun 11 06:29:36 2013 -0400

    Merge topic 'COMPILER_TARGET' into next
    
    fc2001a Add compiler target compile options.
    a2021e5 CMake Nightly Date Stamp


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fc2001a0bbc73d3769dd87717867affb80239d0c
commit fc2001a0bbc73d3769dd87717867affb80239d0c
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 12:19:24 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..6b11237 100644
--- a/Modules/CMakeDetermineCompilerABI.cmake
+++ b/Modules/CMakeDetermineCompilerABI.cmake
@@ -28,6 +28,12 @@ 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_C_COMPILER_TARGET)
+      set(CMAKE_FLAGS "-DCMAKE_C_COMPILER_TARGET=${CMAKE_C_COMPILER_TARGET}")
+    endif()
+    if(CMAKE_CXX_COMPILER_TARGET)
+      set(CMAKE_FLAGS "-DCMAKE_CXX_COMPILER_TARGET=${CMAKE_CXX_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..2299b38 100644
--- a/Modules/Compiler/Clang.cmake
+++ b/Modules/Compiler/Clang.cmake
@@ -25,4 +25,6 @@ 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 ")
+  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:
 Modules/CMakeDetermineCompilerABI.cmake |    6 ++++++
 Modules/Compiler/Clang.cmake            |    2 ++
 Modules/Platform/QNX.cmake              |    3 +++
 Source/CMakeVersion.cmake               |    2 +-
 Source/cmLocalGenerator.cxx             |   14 ++++++++++++++
 5 files changed, 26 insertions(+), 1 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list