Mate Toth-Pal | 7686726 | 2018-03-09 13:15:36 +0100 | [diff] [blame] | 1 | #------------------------------------------------------------------------------- |
Ken Liu | 70db447 | 2018-08-20 17:11:43 +0800 | [diff] [blame] | 2 | # Copyright (c) 2017-2019, Arm Limited. All rights reserved. |
Mate Toth-Pal | 7686726 | 2018-03-09 13:15:36 +0100 | [diff] [blame] | 3 | # |
| 4 | # SPDX-License-Identifier: BSD-3-Clause |
| 5 | # |
| 6 | #------------------------------------------------------------------------------- |
| 7 | |
| 8 | if(_GNUARM_CMAKE_LOADED) |
| 9 | return() |
| 10 | endif() |
| 11 | set(_GNUARM_CMAKE_LOADED TRUE) |
| 12 | |
| 13 | get_filename_component(_CMAKE_C_TOOLCHAIN_LOCATION "${CMAKE_C_COMPILER}" PATH) |
| 14 | get_filename_component(_CMAKE_CXX_TOOLCHAIN_LOCATION "${CMAKE_CXX_COMPILER}" PATH) |
| 15 | |
| 16 | set(CMAKE_EXECUTABLE_SUFFIX ".axf") |
| 17 | |
Kumar Gala | 7946bdd | 2020-04-16 16:29:49 -0500 | [diff] [blame] | 18 | if(NOT DEFINED GNUARM_PREFIX) |
| 19 | get_filename_component(__c_bin ${CMAKE_C_COMPILER} NAME) |
| 20 | string(REPLACE "-gcc" "" GNUARM_PREFIX ${__c_bin}) |
Kumar Gala | 5892743 | 2020-06-26 11:36:34 -0500 | [diff] [blame] | 21 | string(REPLACE ".exe" "" GNUARM_PREFIX ${GNUARM_PREFIX}) |
Kumar Gala | 7946bdd | 2020-04-16 16:29:49 -0500 | [diff] [blame] | 22 | endif() |
| 23 | |
| 24 | find_program(CMAKE_GNUARM_LINKER ${GNUARM_PREFIX}-gcc HINTS "${_CMAKE_C_TOOLCHAIN_LOCATION}" "${_CMAKE_CXX_TOOLCHAIN_LOCATION}" ) |
| 25 | find_program(CMAKE_GNUARM_AR ${GNUARM_PREFIX}-ar HINTS "${_CMAKE_C_TOOLCHAIN_LOCATION}" "${_CMAKE_CXX_TOOLCHAIN_LOCATION}" ) |
| 26 | find_program(CMAKE_GNUARM_OBJCOPY ${GNUARM_PREFIX}-objcopy HINTS "${_CMAKE_C_TOOLCHAIN_LOCATION}" "${_CMAKE_CXX_TOOLCHAIN_LOCATION}" ) |
Mate Toth-Pal | 7686726 | 2018-03-09 13:15:36 +0100 | [diff] [blame] | 27 | |
| 28 | set(CMAKE_LINKER "${CMAKE_GNUARM_LINKER}" CACHE FILEPATH "The GNUARM linker" FORCE) |
| 29 | mark_as_advanced(CMAKE_GNUARM_LINKER) |
| 30 | set(CMAKE_AR "${CMAKE_GNUARM_AR}" CACHE FILEPATH "The GNUARM archiver" FORCE) |
| 31 | mark_as_advanced(CMAKE_GNUARM_AR) |
| 32 | |
Edison Ai | 75d69c8 | 2019-07-09 18:50:41 +0800 | [diff] [blame] | 33 | if(NOT DEFINED BUILD_DWARF_VERSION) |
| 34 | set(BUILD_DWARF_VERSION "") |
| 35 | else() |
| 36 | string(CONCAT BUILD_DWARF_VERSION "dwarf-" ${BUILD_DWARF_VERSION}) |
| 37 | endif() |
| 38 | |
Mate Toth-Pal | 7686726 | 2018-03-09 13:15:36 +0100 | [diff] [blame] | 39 | macro(__compiler_gnuarm lang) |
| 40 | if(NOT CMAKE_${lang}_FLAGS_SET) |
| 41 | set(CMAKE_${lang}_FLAGS_SET TRUE) |
| 42 | string(APPEND CMAKE_${lang}_FLAGS_INIT " ") |
Edison Ai | 75d69c8 | 2019-07-09 18:50:41 +0800 | [diff] [blame] | 43 | string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -g${BUILD_DWARF_VERSION} -O0") |
Mate Toth-Pal | 7686726 | 2018-03-09 13:15:36 +0100 | [diff] [blame] | 44 | string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -Os -DNDEBUG") |
| 45 | string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -O3 -DNDEBUG") |
Edison Ai | 75d69c8 | 2019-07-09 18:50:41 +0800 | [diff] [blame] | 46 | string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -O3 -g${BUILD_DWARF_VERSION} -DNDEBUG") |
Mate Toth-Pal | 7686726 | 2018-03-09 13:15:36 +0100 | [diff] [blame] | 47 | |
| 48 | set(CMAKE_${lang}_OUTPUT_EXTENSION ".o") |
| 49 | set(CMAKE_${lang}_OUTPUT_EXTENSION_REPLACE 1) |
| 50 | set(CMAKE_STATIC_LIBRARY_PREFIX_${lang} "") |
| 51 | set(CMAKE_STATIC_LIBRARY_SUFFIX_${lang} ".a") |
| 52 | |
Ken Liu | 70db447 | 2018-08-20 17:11:43 +0800 | [diff] [blame] | 53 | set(CMAKE_${lang}_RESPONSE_FILE_LINK_FLAG "@") |
| 54 | |
Mate Toth-Pal | 7686726 | 2018-03-09 13:15:36 +0100 | [diff] [blame] | 55 | set(CMAKE_${lang}_LINK_EXECUTABLE "<CMAKE_LINKER> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> <LINK_LIBRARIES> -o <TARGET> -Xlinker -Map=<TARGET_BASE>.map") |
| 56 | set(CMAKE_${lang}_CREATE_STATIC_LIBRARY "<CMAKE_AR> rsc <TARGET> <LINK_FLAGS> <OBJECTS>") |
| 57 | set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE "<CMAKE_${lang}_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>") |
| 58 | set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE "<CMAKE_${lang}_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>") |
| 59 | |
Kevin Townsend | 99c0a96 | 2020-06-02 12:50:12 +0200 | [diff] [blame] | 60 | set(CMAKE_DEPFILE_FLAGS_${lang} "-MD -MT <OBJECT> -MF <DEPFILE>") |
Mate Toth-Pal | 7686726 | 2018-03-09 13:15:36 +0100 | [diff] [blame] | 61 | endif() |
| 62 | endmacro() |