aboutsummaryrefslogtreecommitdiff
path: root/cmake/toolchain/arm-none-eabi-gcc.cmake
diff options
context:
space:
mode:
authorLedion Daja <ledion.daja@arm.com>2022-06-21 12:06:59 +0200
committerKristofer Jonsson <kristofer.jonsson@arm.com>2022-09-13 09:41:31 +0200
commitba6210baeebc24dbd6cd50b2afeee158f2a5843a (patch)
tree9389a6dab1031c74af5ca19de76ad9107093d531 /cmake/toolchain/arm-none-eabi-gcc.cmake
parentffb8ccdc3a851b7c86a58e449f0651a4413d8fd8 (diff)
downloadethos-u-core-platform-ba6210baeebc24dbd6cd50b2afeee158f2a5843a.tar.gz
Remove CMake workaround for Arm Clang
Previous version of CMake did not allow CMAKE_SYSTEM_PROCESSOR to contain CPU features for Arm Clang toolchain. A workaround was added to manually strip the CPU features. Recent versions of CMake have removed this limitation and instead requires the toolchain to manually add -mcpu=<CPU+features>, which means that the workaround can be removed. Change-Id: Ie7f493a0dd9771eedf23e87db7a371fae4ec9bb9
Diffstat (limited to 'cmake/toolchain/arm-none-eabi-gcc.cmake')
-rw-r--r--cmake/toolchain/arm-none-eabi-gcc.cmake33
1 files changed, 12 insertions, 21 deletions
diff --git a/cmake/toolchain/arm-none-eabi-gcc.cmake b/cmake/toolchain/arm-none-eabi-gcc.cmake
index 492abc5..182643f 100644
--- a/cmake/toolchain/arm-none-eabi-gcc.cmake
+++ b/cmake/toolchain/arm-none-eabi-gcc.cmake
@@ -17,18 +17,13 @@
#
set(TARGET_CPU "cortex-m4" CACHE STRING "Target CPU")
+string(TOLOWER ${TARGET_CPU} CMAKE_SYSTEM_PROCESSOR)
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_C_COMPILER "arm-none-eabi-gcc")
-set(CMAKE_ASM_COMPILER "arm-none-eabi-gcc")
set(CMAKE_CXX_COMPILER "arm-none-eabi-g++")
-
-# Convert TARGET_CPU=Cortex-M33+nofp+nodsp into
-# - CMAKE_SYSTEM_PROCESSOR=cortex-m33
-# - TARGET_CPU_FEATURES=no-fp;no-dsp
-string(REPLACE "+" ";" TARGET_CPU_FEATURES ${TARGET_CPU})
-list(POP_FRONT TARGET_CPU_FEATURES CMAKE_SYSTEM_PROCESSOR)
-string(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} CMAKE_SYSTEM_PROCESSOR)
+set(CMAKE_ASM_COMPILER "arm-none-eabi-gcc")
+set(CMAKE_LINKER "arm-none-eabi-ld")
set(CMAKE_EXECUTABLE_SUFFIX ".elf")
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
@@ -40,12 +35,8 @@ set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 14)
-set(GCC_CPU "${TARGET_CPU}")
-if ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortex-m85")
- set(GCC_CPU "cortex-m55")
- list(APPEND GCC_CPU ${TARGET_CPU_FEATURES})
- list(JOIN GCC_CPU "+" GCC_CPU)
-endif()
+set(GCC_CPU ${CMAKE_SYSTEM_PROCESSOR})
+string(REPLACE "cortex-m85" "cortex-m55" GCC_CPU ${GCC_CPU})
# Compile options
add_compile_options(
@@ -67,16 +58,16 @@ add_link_options(
--specs=nosys.specs)
# Set floating point unit
-if("${TARGET_CPU}" MATCHES "\\+fp")
+if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "\\+fp")
set(FLOAT hard)
-elseif("${TARGET_CPU}" MATCHES "\\+nofp")
+elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "\\+nofp")
set(FLOAT soft)
-elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortex-m33" OR
- "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortex-m55" OR
- "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortex-m85")
+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m33" OR
+ CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m55" OR
+ CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m85")
set(FLOAT hard)
-elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortex-m4" OR
- "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortex-m7")
+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m4" OR
+ CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m7")
set(FLOAT hard)
set(FPU_CONFIG "fpv4-sp-d16")
add_compile_options(-mfpu=${FPU_CONFIG})