BUG: only check for a toolchain prefix (e.g. "arm-linux-" in
"arm-linux-gcc") if we are cross compiling and the compiler is gcc Alex
This commit is contained in:
parent
43837fb3e1
commit
1bcf48de98
@ -88,27 +88,6 @@ IF (NOT _CMAKE_TOOLCHAIN_LOCATION)
|
|||||||
GET_FILENAME_COMPONENT(_CMAKE_TOOLCHAIN_LOCATION "${CMAKE_C_COMPILER}" PATH)
|
GET_FILENAME_COMPONENT(_CMAKE_TOOLCHAIN_LOCATION "${CMAKE_C_COMPILER}" PATH)
|
||||||
ENDIF (NOT _CMAKE_TOOLCHAIN_LOCATION)
|
ENDIF (NOT _CMAKE_TOOLCHAIN_LOCATION)
|
||||||
|
|
||||||
# If we have a gcc cross compiler, they have usually some prefix, like
|
|
||||||
# e.g. powerpc-linux-gcc, arm-elf-gcc or i586-mingw32msvc-gcc .
|
|
||||||
# The other tools of the toolchain usually have the same prefix
|
|
||||||
# NAME_WE cannot be used since then this test will fail for names lile
|
|
||||||
# "arm-unknown-nto-qnx6.3.0-gcc.exe", where BASENAME would be
|
|
||||||
# "arm-unknown-nto-qnx6" instead of the correct "arm-unknown-nto-qnx6.3.0-"
|
|
||||||
IF (NOT _CMAKE_TOOLCHAIN_PREFIX)
|
|
||||||
GET_FILENAME_COMPONENT(COMPILER_BASENAME "${CMAKE_C_COMPILER}" NAME)
|
|
||||||
IF (COMPILER_BASENAME MATCHES "^(.+-)g?cc(\\.exe)?$")
|
|
||||||
SET(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
|
|
||||||
ENDIF (COMPILER_BASENAME MATCHES "^(.+-)g?cc(\\.exe)?$")
|
|
||||||
|
|
||||||
# if "llvm-" is part of the prefix, remove it, since llvm doesn't have its own binutils
|
|
||||||
# but uses the regular ar, objcopy, etc. (instead of llvm-objcopy etc.)
|
|
||||||
IF ("${_CMAKE_TOOLCHAIN_PREFIX}" MATCHES "(.+-)?llvm-$")
|
|
||||||
SET(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
|
|
||||||
ENDIF ("${_CMAKE_TOOLCHAIN_PREFIX}" MATCHES "(.+-)?llvm-$")
|
|
||||||
|
|
||||||
ENDIF (NOT _CMAKE_TOOLCHAIN_PREFIX)
|
|
||||||
|
|
||||||
|
|
||||||
# Build a small source file to identify the compiler.
|
# Build a small source file to identify the compiler.
|
||||||
IF(${CMAKE_GENERATOR} MATCHES "Visual Studio")
|
IF(${CMAKE_GENERATOR} MATCHES "Visual Studio")
|
||||||
SET(CMAKE_C_COMPILER_ID_RUN 1)
|
SET(CMAKE_C_COMPILER_ID_RUN 1)
|
||||||
@ -148,6 +127,33 @@ IF(NOT CMAKE_C_COMPILER_ID_RUN)
|
|||||||
ENDIF("${CMAKE_C_PLATFORM_ID}" MATCHES "MinGW")
|
ENDIF("${CMAKE_C_PLATFORM_ID}" MATCHES "MinGW")
|
||||||
ENDIF(NOT CMAKE_C_COMPILER_ID_RUN)
|
ENDIF(NOT CMAKE_C_COMPILER_ID_RUN)
|
||||||
|
|
||||||
|
# If we have a gcc cross compiler, they have usually some prefix, like
|
||||||
|
# e.g. powerpc-linux-gcc, arm-elf-gcc or i586-mingw32msvc-gcc .
|
||||||
|
# The other tools of the toolchain usually have the same prefix
|
||||||
|
# NAME_WE cannot be used since then this test will fail for names lile
|
||||||
|
# "arm-unknown-nto-qnx6.3.0-gcc.exe", where BASENAME would be
|
||||||
|
# "arm-unknown-nto-qnx6" instead of the correct "arm-unknown-nto-qnx6.3.0-"
|
||||||
|
IF (CMAKE_CROSSCOMPILING
|
||||||
|
AND "${CMAKE_C_COMPILER_ID}" MATCHES "GNU"
|
||||||
|
AND NOT _CMAKE_TOOLCHAIN_PREFIX)
|
||||||
|
GET_FILENAME_COMPONENT(COMPILER_BASENAME "${CMAKE_C_COMPILER}" NAME)
|
||||||
|
IF (COMPILER_BASENAME MATCHES "^(.+-)g?cc(\\.exe)?$")
|
||||||
|
SET(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
|
||||||
|
ENDIF (COMPILER_BASENAME MATCHES "^(.+-)g?cc(\\.exe)?$")
|
||||||
|
|
||||||
|
# if "llvm-" is part of the prefix, remove it, since llvm doesn't have its own binutils
|
||||||
|
# but uses the regular ar, objcopy, etc. (instead of llvm-objcopy etc.)
|
||||||
|
IF ("${_CMAKE_TOOLCHAIN_PREFIX}" MATCHES "(.+-)?llvm-$")
|
||||||
|
SET(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
|
||||||
|
ENDIF ("${_CMAKE_TOOLCHAIN_PREFIX}" MATCHES "(.+-)?llvm-$")
|
||||||
|
|
||||||
|
ENDIF (CMAKE_CROSSCOMPILING
|
||||||
|
AND "${CMAKE_C_COMPILER_ID}" MATCHES "GNU"
|
||||||
|
AND NOT _CMAKE_TOOLCHAIN_PREFIX)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
INCLUDE(CMakeFindBinUtils)
|
INCLUDE(CMakeFindBinUtils)
|
||||||
|
|
||||||
# configure variables set in this file for fast reload later on
|
# configure variables set in this file for fast reload later on
|
||||||
|
@ -88,26 +88,6 @@ IF (NOT _CMAKE_TOOLCHAIN_LOCATION)
|
|||||||
GET_FILENAME_COMPONENT(_CMAKE_TOOLCHAIN_LOCATION "${CMAKE_CXX_COMPILER}" PATH)
|
GET_FILENAME_COMPONENT(_CMAKE_TOOLCHAIN_LOCATION "${CMAKE_CXX_COMPILER}" PATH)
|
||||||
ENDIF (NOT _CMAKE_TOOLCHAIN_LOCATION)
|
ENDIF (NOT _CMAKE_TOOLCHAIN_LOCATION)
|
||||||
|
|
||||||
# if we have a g++ cross compiler, they have usually some prefix, like
|
|
||||||
# e.g. powerpc-linux-g++, arm-elf-g++ or i586-mingw32msvc-g++
|
|
||||||
# the other tools of the toolchain usually have the same prefix
|
|
||||||
# NAME_WE cannot be used since then this test will fail for names lile
|
|
||||||
# "arm-unknown-nto-qnx6.3.0-gcc.exe", where BASENAME would be
|
|
||||||
# "arm-unknown-nto-qnx6" instead of the correct "arm-unknown-nto-qnx6.3.0-"
|
|
||||||
IF (NOT _CMAKE_TOOLCHAIN_PREFIX)
|
|
||||||
GET_FILENAME_COMPONENT(COMPILER_BASENAME "${CMAKE_CXX_COMPILER}" NAME)
|
|
||||||
IF (COMPILER_BASENAME MATCHES "^(.+-)[gc]\\+\\+(\\.exe)?$")
|
|
||||||
SET(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
|
|
||||||
ENDIF (COMPILER_BASENAME MATCHES "^(.+-)[gc]\\+\\+(\\.exe)?$")
|
|
||||||
|
|
||||||
# if "llvm-" is part of the prefix, remove it, since llvm doesn't have its own binutils
|
|
||||||
# but uses the regular ar, objcopy, etc. (instead of llvm-objcopy etc.)
|
|
||||||
IF ("${_CMAKE_TOOLCHAIN_PREFIX}" MATCHES "(.+-)?llvm-$")
|
|
||||||
SET(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
|
|
||||||
ENDIF ("${_CMAKE_TOOLCHAIN_PREFIX}" MATCHES "(.+-)?llvm-$")
|
|
||||||
|
|
||||||
ENDIF (NOT _CMAKE_TOOLCHAIN_PREFIX)
|
|
||||||
|
|
||||||
# This block was used before the compiler was identified by building a
|
# This block was used before the compiler was identified by building a
|
||||||
# source file. Unless g++ crashes when building a small C++
|
# source file. Unless g++ crashes when building a small C++
|
||||||
# executable this should no longer be needed.
|
# executable this should no longer be needed.
|
||||||
@ -158,6 +138,30 @@ IF(NOT CMAKE_CXX_COMPILER_ID_RUN)
|
|||||||
ENDIF("${CMAKE_CXX_PLATFORM_ID}" MATCHES "MinGW")
|
ENDIF("${CMAKE_CXX_PLATFORM_ID}" MATCHES "MinGW")
|
||||||
ENDIF(NOT CMAKE_CXX_COMPILER_ID_RUN)
|
ENDIF(NOT CMAKE_CXX_COMPILER_ID_RUN)
|
||||||
|
|
||||||
|
# if we have a g++ cross compiler, they have usually some prefix, like
|
||||||
|
# e.g. powerpc-linux-g++, arm-elf-g++ or i586-mingw32msvc-g++
|
||||||
|
# the other tools of the toolchain usually have the same prefix
|
||||||
|
# NAME_WE cannot be used since then this test will fail for names lile
|
||||||
|
# "arm-unknown-nto-qnx6.3.0-gcc.exe", where BASENAME would be
|
||||||
|
# "arm-unknown-nto-qnx6" instead of the correct "arm-unknown-nto-qnx6.3.0-"
|
||||||
|
IF (CMAKE_CROSSCOMPILING
|
||||||
|
AND "${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU"
|
||||||
|
AND NOT _CMAKE_TOOLCHAIN_PREFIX)
|
||||||
|
GET_FILENAME_COMPONENT(COMPILER_BASENAME "${CMAKE_CXX_COMPILER}" NAME)
|
||||||
|
IF (COMPILER_BASENAME MATCHES "^(.+-)[gc]\\+\\+(\\.exe)?$")
|
||||||
|
SET(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
|
||||||
|
ENDIF (COMPILER_BASENAME MATCHES "^(.+-)[gc]\\+\\+(\\.exe)?$")
|
||||||
|
|
||||||
|
# if "llvm-" is part of the prefix, remove it, since llvm doesn't have its own binutils
|
||||||
|
# but uses the regular ar, objcopy, etc. (instead of llvm-objcopy etc.)
|
||||||
|
IF ("${_CMAKE_TOOLCHAIN_PREFIX}" MATCHES "(.+-)?llvm-$")
|
||||||
|
SET(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
|
||||||
|
ENDIF ("${_CMAKE_TOOLCHAIN_PREFIX}" MATCHES "(.+-)?llvm-$")
|
||||||
|
|
||||||
|
ENDIF (CMAKE_CROSSCOMPILING
|
||||||
|
AND "${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU"
|
||||||
|
AND NOT _CMAKE_TOOLCHAIN_PREFIX)
|
||||||
|
|
||||||
INCLUDE(CMakeFindBinUtils)
|
INCLUDE(CMakeFindBinUtils)
|
||||||
|
|
||||||
# configure all variables set in this file
|
# configure all variables set in this file
|
||||||
|
Loading…
x
Reference in New Issue
Block a user