|
| 1 | +# SPDX-License-Identifier: Apache-2.0 |
| 2 | + |
| 3 | +if("${ARCH}" STREQUAL "arm") |
| 4 | + if(DEFINED CONFIG_ARMV8_M_MAINLINE) |
| 5 | + # ARMv8-M mainline is ARMv7-M with additional features from ARMv8-M. |
| 6 | + set(triple armv8m.main-none-eabi) |
| 7 | + elseif(DEFINED CONFIG_ARMV8_M_BASELINE) |
| 8 | + # ARMv8-M baseline is ARMv6-M with additional features from ARMv8-M. |
| 9 | + set(triple armv8m.base-none-eabi) |
| 10 | + elseif(DEFINED CONFIG_ARMV7_M_ARMV8_M_MAINLINE) |
| 11 | + # ARMV7_M_ARMV8_M_MAINLINE means that ARMv7-M or backward compatible ARMv8-M |
| 12 | + # processor is used. |
| 13 | + set(triple armv7m-none-eabi) |
| 14 | + elseif(DEFINED CONFIG_ARMV6_M_ARMV8_M_BASELINE) |
| 15 | + # ARMV6_M_ARMV8_M_BASELINE means that ARMv6-M or ARMv8-M supporting the |
| 16 | + # Baseline implementation processor is used. |
| 17 | + set(triple armv6m-none-eabi) |
| 18 | + else() |
| 19 | + # Default ARM target supported by all processors. |
| 20 | + set(triple arm-none-eabi) |
| 21 | + endif() |
| 22 | +elseif("${ARCH}" STREQUAL "arm64") |
| 23 | + set(triple aarch64-none-elf) |
| 24 | +# TODO: Add RISC-V target support. |
| 25 | +endif() |
| 26 | + |
| 27 | +if(DEFINED triple) |
| 28 | + set(CMAKE_C_COMPILER_TARGET ${triple}) |
| 29 | + set(CMAKE_ASM_COMPILER_TARGET ${triple}) |
| 30 | + set(CMAKE_CXX_COMPILER_TARGET ${triple}) |
| 31 | + |
| 32 | + unset(triple) |
| 33 | +endif() |
| 34 | + |
| 35 | +list(APPEND TOOLCHAIN_C_FLAGS --config |
| 36 | + ${ZEPHYR_SDK_INSTALL_DIR}/cmake/zephyr/llvm/clang_compiler_rt.cfg) |
| 37 | +list(APPEND TOOLCHAIN_LD_FLAGS --config |
| 38 | + ${ZEPHYR_SDK_INSTALL_DIR}/cmake/zephyr/llvm/clang_compiler_rt.cfg) |
0 commit comments