diff options
Diffstat (limited to 'cmake/Common/CompilerIarArm842.cmake')
-rw-r--r-- | cmake/Common/CompilerIarArm842.cmake | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/cmake/Common/CompilerIarArm842.cmake b/cmake/Common/CompilerIarArm842.cmake new file mode 100644 index 0000000000..7d5c4225ec --- /dev/null +++ b/cmake/Common/CompilerIarArm842.cmake @@ -0,0 +1,80 @@ +#------------------------------------------------------------------------------- +# Copyright (c) 2018-2020, Arm Limited. All rights reserved. +# +# SPDX-License-Identifier: BSD-3-Clause +# +#------------------------------------------------------------------------------- + +#This file contains settings to specify how ICCARM shall be used + +#Include some dependencies +Include(Common/CompilerIarArmCommon) +Include(Common/Utils) + +check_iccarm_input_vars("8.42") + +if(NOT DEFINED ARM_CPU_ARCHITECTURE) + set(_NO_ARM_CPU_ARCHITECTURE true) +elseif (${ARM_CPU_ARCHITECTURE} STREQUAL "ARMv8-M.BASE") + string_append_unique_item(STRING CMAKE_C_FLAGS_CPU KEY "--cpu" VAL "--cpu Cortex-M23") + string_append_unique_item(STRING CMAKE_CXX_FLAGS_CPU KEY "--cpu" VAL "--cpu Cortex-M23") + string_append_unique_item(STRING CMAKE_ASM_FLAGS_CPU KEY "--cpu" VAL "--cpu Cortex-M23") + string_append_unique_item(STRING CMAKE_LINK_FLAGS_CPU KEY "--cpu" VAL "--cpu Cortex-M23") +elseif(${ARM_CPU_ARCHITECTURE} STREQUAL "ARMv8-M.MAIN") + string_append_unique_item(STRING CMAKE_C_FLAGS_CPU KEY "--cpu" VAL "--cpu Cortex-M33.no_dsp") + string_append_unique_item(STRING CMAKE_CXX_FLAGS_CPU KEY "--cpu" VAL "--cpu Cortex-M33.no_dsp") + string_append_unique_item(STRING CMAKE_CXX_FLAGS_CPU KEY "--cpu" VAL "--cpu Cortex-M33.no_dsp") + string_append_unique_item(STRING CMAKE_LINK_FLAGS_CPU KEY "--cpu" VAL "--cpu Cortex-M33.no_dsp") +elseif(${ARM_CPU_ARCHITECTURE} STREQUAL "ARMv7-M") + string_append_unique_item(STRING CMAKE_C_FLAGS_CPU KEY "--cpu" VAL "--cpu Cortex-M4") + string_append_unique_item(STRING CMAKE_CXX_FLAGS_CPU KEY "--cpu" VAL "--cpu Cortex-M4") + string_append_unique_item(STRING CMAKE_ASM_FLAGS_CPU KEY "--cpu" VAL "--cpu Cortex-M4") + string_append_unique_item(STRING CMAKE_LINK_FLAGS_CPU KEY "--cpu" VAL "--cpu Cortex-M4") +elseif(${ARM_CPU_ARCHITECTURE} STREQUAL "ARMv6-M") + string_append_unique_item(STRING CMAKE_C_FLAGS_CPU KEY "--cpu" VAL "--cpu Cortex-M0+") + string_append_unique_item(STRING CMAKE_CXX_FLAGS_CPU KEY "--cpu" VAL "--cpu Cortex-M0+") + string_append_unique_item(STRING CMAKE_ASM_FLAGS_CPU KEY "--cpu" VAL "--cpu Cortex-M0+") + string_append_unique_item(STRING CMAKE_LINK_FLAGS_CPU KEY "--cpu" VAL "--cpu Cortex-M0+") +else() + message(FATAL_ERROR "Unknown or unsupported ARM cpu architecture setting.") +endif() + +#Prefer architecture definition over cpu type. +if(NOT DEFINED ARM_CPU_ARCHITECTURE) + if(NOT DEFINED ARM_CPU_TYPE) + string_append_unique_item(_NO_ARM_CPU_TYPE true) + elseif(${ARM_CPU_TYPE} STREQUAL "Cortex-M3") + string_append_unique_item (CMAKE_C_FLAGS_CPU "--cpu Cortex-M3") + string_append_unique_item (CMAKE_CXX_FLAGS_CPU "--cpu Cortex-M3") + string_append_unique_item (CMAKE_ASM_FLAGS_CPU "--cpu Cortex-M3") + string_append_unique_item (CMAKE_LINK_FLAGS_CPU "--cpu Cortex-M3") + elseif(${ARM_CPU_TYPE} STREQUAL "Cortex-M33") + string_append_unique_item (CMAKE_C_FLAGS_CPU "--cpu Cortex-M33.no_dsp") + string_append_unique_item (CMAKE_CXX_FLAGS_CPU "--cpu Cortex-M33.no_dsp") + string_append_unique_item (CMAKE_ASM_FLAGS_CPU "--cpu Cortex-M33.no_dsp") + string_append_unique_item (CMAKE_LINK_FLAGS_CPU "--cpu Cortex-M3.no_dsp3") + elseif(${ARM_CPU_TYPE} STREQUAL "Cortex-M23") + string_append_unique_item (CMAKE_C_FLAGS_CPU "--cpu Cortex-M23") + string_append_unique_item (CMAKE_CXX_FLAGS_CPU "--cpu Cortex-M23") + string_append_unique_item (CMAKE_ASM_FLAGS_CPU "--cpu Cortex-M23") + string_append_unique_item (CMAKE_LINK_FLAGS_CPU "--cpu Cortex-M23") + elseif(${ARM_CPU_TYPE} STREQUAL "Cortex-M4") + string_append_unique_item (STRING CMAKE_C_FLAGS_CPU KEY "--cpu" VAL "--cpu Cortex-M4") + string_append_unique_item (STRING CMAKE_CXX_FLAGS_CPU KEY "--cpu" VAL "--cpu Cortex-M4") + string_append_unique_item (STRING CMAKE_ASM_FLAGS_CPU KEY "--cpu" VAL "--cpu Cortex-M4") + string_append_unique_item (STRING CMAKE_LINK_FLAGS_CPU KEY "--cpu" VAL "--cpu Cortex-M4") + set(ARM_CPU_ARCHITECTURE "ARMv7-M") + elseif (${ARM_CPU_TYPE} STREQUAL "Cortex-M0p") + string_append_unique_item (STRING CMAKE_C_FLAGS_CPU KEY "--cpu" VAL "--cpu Cortex-M0+") + string_append_unique_item (STRING CMAKE_CXX_FLAGS_CPU KEY "--cpu" VAL "--cpu Cortex-M0+") + string_append_unique_item (STRING CMAKE_ASM_FLAGS_CPU KEY "--cpu" VAL "--cpu Cortex-M0+") + string_append_unique_item (STRING CMAKE_LINK_FLAGS_CPU KEY "--cpu" VAL "--cpu Cortex-M0+") + set(ARM_CPU_ARCHITECTURE "ARMv6-M") + else() + message(FATAL_ERROR "Unknown ARM cpu setting.") + endif() +endif() + +if (_NO_ARM_CPU_TYPE AND _NO_ARM_CPU_ARCHITECTURE) + message(FATAL_ERROR "Can not set CPU specific compiler flags: neither the ARM CPU type nor the architecture is set.") +endif() |