diff options
-rw-r--r-- | cmake/Common/CompilerGNUARMCommon.cmake | 12 | ||||
-rw-r--r-- | cmake/Common/FindGNUARM.cmake | 7 | ||||
-rw-r--r-- | cmake/Compiler/GNUARM.cmake | 11 |
3 files changed, 20 insertions, 10 deletions
diff --git a/cmake/Common/CompilerGNUARMCommon.cmake b/cmake/Common/CompilerGNUARMCommon.cmake index be1ac8faae..32e805bbe7 100644 --- a/cmake/Common/CompilerGNUARMCommon.cmake +++ b/cmake/Common/CompilerGNUARMCommon.cmake @@ -32,13 +32,13 @@ message(STATUS "Using gcc compiler package v${GNUARM_VER} from ${GNUARM_PATH}") #Tell cmake which compiler we use if (EXISTS "c:/") - set (CMAKE_C_COMPILER "${GNUARM_PATH}/bin/arm-none-eabi-gcc.exe") - set (CMAKE_CXX_COMPILER "${GNUARM_PATH}/bin/arm-none-eabi-g++.exe") - set (CMAKE_ASM_COMPILER "${GNUARM_PATH}/bin/arm-none-eabi-gcc.exe") + set (CMAKE_C_COMPILER "${GNUARM_PATH}/bin/${GNUARM_PREFIX}-gcc.exe") + set (CMAKE_CXX_COMPILER "${GNUARM_PATH}/bin/${GNUARM_PREFIX}-g++.exe") + set (CMAKE_ASM_COMPILER "${GNUARM_PATH}/bin/${GNUARM_PREFIX}-gcc.exe") else() - set (CMAKE_C_COMPILER "${GNUARM_PATH}/bin/arm-none-eabi-gcc") - set (CMAKE_CXX_COMPILER "${GNUARM_PATH}/bin/arm-none-eabi-g++") - set (CMAKE_ASM_COMPILER "${GNUARM_PATH}/bin/arm-none-eabi-gcc") + set (CMAKE_C_COMPILER "${GNUARM_PATH}/bin/${GNUARM_PREFIX}-gcc") + set (CMAKE_CXX_COMPILER "${GNUARM_PATH}/bin/${GNUARM_PREFIX}-g++") + set (CMAKE_ASM_COMPILER "${GNUARM_PATH}/bin/${GNUARM_PREFIX}-gcc") endif() if("CXX" IN_LIST languages) diff --git a/cmake/Common/FindGNUARM.cmake b/cmake/Common/FindGNUARM.cmake index 5454c68819..d178716606 100644 --- a/cmake/Common/FindGNUARM.cmake +++ b/cmake/Common/FindGNUARM.cmake @@ -15,6 +15,8 @@ # the compiler on the PATH is used. # GNUARM_VER - (optional)- version number. If set the module will validate # the compiler version. +# GNUARM_PREFIX (optional)- execute prefix for toolchain, allow for vendor +# toolchains, default to arm-none-eabi # #outputs: # GNUARM_PATH - will be set to the root directory of the compiler. Only set @@ -28,7 +30,10 @@ #Include some dependencies Include(Common/Utils) -set(_GCC_BINARY_NAME "arm-none-eabi-gcc") +if(NOT DEFINED GNUARM_PREFIX) + set(GNUARM_PREFIX "arm-none-eabi") +endif() +set(_GCC_BINARY_NAME "${GNUARM_PREFIX}-gcc") #Get the version of armgcc. # diff --git a/cmake/Compiler/GNUARM.cmake b/cmake/Compiler/GNUARM.cmake index ed05d92426..fc9db7a0d5 100644 --- a/cmake/Compiler/GNUARM.cmake +++ b/cmake/Compiler/GNUARM.cmake @@ -15,9 +15,14 @@ get_filename_component(_CMAKE_CXX_TOOLCHAIN_LOCATION "${CMAKE_CXX_COMPILER}" PAT set(CMAKE_EXECUTABLE_SUFFIX ".axf") -find_program(CMAKE_GNUARM_LINKER arm-none-eabi-gcc HINTS "${_CMAKE_C_TOOLCHAIN_LOCATION}" "${_CMAKE_CXX_TOOLCHAIN_LOCATION}" ) -find_program(CMAKE_GNUARM_AR arm-none-eabi-ar HINTS "${_CMAKE_C_TOOLCHAIN_LOCATION}" "${_CMAKE_CXX_TOOLCHAIN_LOCATION}" ) -find_program(CMAKE_GNUARM_OBJCOPY arm-none-eabi-objcopy HINTS "${_CMAKE_C_TOOLCHAIN_LOCATION}" "${_CMAKE_CXX_TOOLCHAIN_LOCATION}" ) +if(NOT DEFINED GNUARM_PREFIX) + get_filename_component(__c_bin ${CMAKE_C_COMPILER} NAME) + string(REPLACE "-gcc" "" GNUARM_PREFIX ${__c_bin}) +endif() + +find_program(CMAKE_GNUARM_LINKER ${GNUARM_PREFIX}-gcc HINTS "${_CMAKE_C_TOOLCHAIN_LOCATION}" "${_CMAKE_CXX_TOOLCHAIN_LOCATION}" ) +find_program(CMAKE_GNUARM_AR ${GNUARM_PREFIX}-ar HINTS "${_CMAKE_C_TOOLCHAIN_LOCATION}" "${_CMAKE_CXX_TOOLCHAIN_LOCATION}" ) +find_program(CMAKE_GNUARM_OBJCOPY ${GNUARM_PREFIX}-objcopy HINTS "${_CMAKE_C_TOOLCHAIN_LOCATION}" "${_CMAKE_CXX_TOOLCHAIN_LOCATION}" ) set(CMAKE_LINKER "${CMAKE_GNUARM_LINKER}" CACHE FILEPATH "The GNUARM linker" FORCE) mark_as_advanced(CMAKE_GNUARM_LINKER) |