You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.8 KiB
59 lines
1.8 KiB
# SPDX-License-Identifier: Apache-2.0 |
|
|
|
if(CONFIG_LLVM_USE_LD) |
|
set(LINKER ld) |
|
elseif(CONFIG_LLVM_USE_LLD) |
|
set(LINKER lld) |
|
endif() |
|
|
|
if("${ARCH}" STREQUAL "arm") |
|
if(DEFINED CONFIG_ARMV8_M_MAINLINE) |
|
# ARMv8-M mainline is ARMv7-M with additional features from ARMv8-M. |
|
set(triple armv8m.main-none-eabi) |
|
elseif(DEFINED CONFIG_ARMV8_M_BASELINE) |
|
# ARMv8-M baseline is ARMv6-M with additional features from ARMv8-M. |
|
set(triple armv8m.base-none-eabi) |
|
elseif(DEFINED CONFIG_ARMV7_M_ARMV8_M_MAINLINE) |
|
# ARMV7_M_ARMV8_M_MAINLINE means that ARMv7-M or backward compatible ARMv8-M |
|
# processor is used. |
|
set(triple armv7m-none-eabi) |
|
elseif(DEFINED CONFIG_ARMV6_M_ARMV8_M_BASELINE) |
|
# ARMV6_M_ARMV8_M_BASELINE means that ARMv6-M or ARMv8-M supporting the |
|
# Baseline implementation processor is used. |
|
set(triple armv6m-none-eabi) |
|
else() |
|
# Default ARM target supported by all processors. |
|
set(triple arm-none-eabi) |
|
endif() |
|
elseif("${ARCH}" STREQUAL "arm64") |
|
set(triple aarch64-none-elf) |
|
elseif("${ARCH}" STREQUAL "x86") |
|
if(CONFIG_64BIT) |
|
set(triple x86_64-pc-none-elf) |
|
else() |
|
set(triple i686-pc-none-elf) |
|
endif() |
|
elseif("${ARCH}" STREQUAL "riscv") |
|
if(CONFIG_64BIT) |
|
set(triple riscv64-unknown-elf) |
|
else() |
|
set(triple riscv32-unknown-elf) |
|
endif() |
|
endif() |
|
|
|
if(DEFINED triple) |
|
set(CMAKE_C_COMPILER_TARGET ${triple}) |
|
set(CMAKE_ASM_COMPILER_TARGET ${triple}) |
|
set(CMAKE_CXX_COMPILER_TARGET ${triple}) |
|
|
|
unset(triple) |
|
endif() |
|
|
|
if(CONFIG_LIBGCC_RTLIB) |
|
set(runtime_lib "libgcc") |
|
elseif(CONFIG_COMPILER_RT_RTLIB) |
|
set(runtime_lib "compiler_rt") |
|
endif() |
|
|
|
list(APPEND TOOLCHAIN_C_FLAGS --config=${ZEPHYR_BASE}/cmake/toolchain/llvm/clang_${runtime_lib}.cfg) |
|
list(APPEND TOOLCHAIN_LD_FLAGS --config=${ZEPHYR_BASE}/cmake/toolchain/llvm/clang_${runtime_lib}.cfg)
|
|
|