Fix finding binutils when cross-compiling with Clang
Since commit v3.0.0-rc1~342^2~2 (Add compiler target compile options, 2013-05-19) we use CMAKE_<LANG>_COMPILER_TARGET as the binutils prefix when cross-compiling with Clang. Fix the implementation to use the compiler target as the prefix only when it is set. Otherwise toolchain files not using CMAKE_<LANG>_COMPILER_TARGET cause the logic to use a prefix of just "-" and of course cannot find "-ar" or "-ld".
This commit is contained in:
parent
55d6aa36a5
commit
72d6681826
|
@ -136,7 +136,9 @@ if (CMAKE_CROSSCOMPILING AND NOT _CMAKE_TOOLCHAIN_PREFIX)
|
|||
if (COMPILER_BASENAME MATCHES "^(.+-)(clang|g?cc)(-[0-9]+\\.[0-9]+\\.[0-9]+)?(\\.exe)?$")
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
|
||||
elseif("${CMAKE_C_COMPILER_ID}" MATCHES "Clang")
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_C_COMPILER_TARGET}-)
|
||||
if(CMAKE_C_COMPILER_TARGET)
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_C_COMPILER_TARGET}-)
|
||||
endif()
|
||||
elseif(COMPILER_BASENAME MATCHES "qcc(\\.exe)?$")
|
||||
if(CMAKE_C_COMPILER_TARGET MATCHES "gcc_nto([^_le]+)(le)?.*$")
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX nto${CMAKE_MATCH_1}-)
|
||||
|
|
|
@ -133,7 +133,9 @@ if (CMAKE_CROSSCOMPILING AND NOT _CMAKE_TOOLCHAIN_PREFIX)
|
|||
if (COMPILER_BASENAME MATCHES "^(.+-)(clan)?[gc]\\+\\+(-[0-9]+\\.[0-9]+\\.[0-9]+)?(\\.exe)?$")
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
|
||||
elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_CXX_COMPILER_TARGET}-)
|
||||
if(CMAKE_CXX_COMPILER_TARGET)
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_CXX_COMPILER_TARGET}-)
|
||||
endif()
|
||||
elseif(COMPILER_BASENAME MATCHES "QCC(\\.exe)?$")
|
||||
if(CMAKE_CXX_COMPILER_TARGET MATCHES "gcc_nto([^_le]+)(le)?.*$")
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX nto${CMAKE_MATCH_1}-)
|
||||
|
|
Loading…
Reference in New Issue