aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmake/Common/CompilerGNUARMCommon.cmake12
-rw-r--r--cmake/Common/FindGNUARM.cmake7
-rw-r--r--cmake/Compiler/GNUARM.cmake11
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)