Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
188 changes: 133 additions & 55 deletions tools/buildmgr/cbuildgen/config/CLANG.17.0.1.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -86,54 +86,62 @@ endfunction()

set(CLANG_MFPU "none")
set(CLANG_MFLOATABI "soft")
set(CLANG_MABI "")

if(CPU STREQUAL "Cortex-M0")
set(CLANG_ARCH "armv6m")
set(CLANG_ARCH_SUFFIX "_soft_nofp")
set(CLANG_MCPU "cortex-m0")
set(CLANG_MFPU "")
elseif(CPU STREQUAL "Cortex-M0+")
set(CLANG_ARCH "armv6m")
set(CLANG_ARCH_SUFFIX "_soft_nofp")
set(CLANG_MCPU "cortex-m0plus")
set(CLANG_MFPU "")
elseif(CPU STREQUAL "Cortex-M1")
set(CLANG_ARCH "armv6m")
set(CLANG_ARCH_SUFFIX "_soft_nofp")
set(CLANG_MCPU "cortex-m1")
set(CLANG_MFPU "")
elseif(CPU STREQUAL "Cortex-M3")
set(CLANG_ARCH "armv7m")
set(CLANG_ARCH_SUFFIX "_soft_nofp")
set(CLANG_MCPU "cortex-m3")
set(CLANG_MFPU "")
elseif(CPU STREQUAL "Cortex-M4")
set(CLANG_ARCH "armv7em")
if(FPU STREQUAL "SP_FPU")
set(CLANG_ARCH_SUFFIX "_hard_fpv4_sp_d16")
set(CLANG_MCPU "cortex-m4")
set(CLANG_MFPU "fpv4-sp-d16")
set(CLANG_MFPU "")
set(CLANG_MFLOATABI "hard")
else()
set(CLANG_ARCH_SUFFIX "_soft_nofp")
set(CLANG_MCPU "cortex-m4")
set(CLANG_MCPU "cortex-m4+nofp")
set(CLANG_MFPU "")
endif()
elseif(CPU STREQUAL "Cortex-M7")
set(CLANG_ARCH "armv7em")
if(FPU STREQUAL "DP_FPU")
set(CLANG_ARCH_SUFFIX "_hard_fpv5_d16")
set(CLANG_MCPU "cortex-m7")
set(CLANG_MFPU "fpv5-d16")
set(CLANG_MFPU "")
set(CLANG_MFLOATABI "hard")
elseif(FPU STREQUAL "SP_FPU")
set(CLANG_ARCH_SUFFIX "_hard_fpv4_sp_d16")
set(CLANG_MCPU "cortex-m7")
set(CLANG_MFPU "fpv5-sp-d16")
set(CLANG_MCPU "cortex-m7+nofp.dp")
set(CLANG_MFPU "")
set(CLANG_MFLOATABI "hard")
else()
set(CLANG_ARCH_SUFFIX "_soft_nofp")
set(CLANG_MCPU "cortex-m7")
set(CLANG_MCPU "cortex-m7+nofp")
set(CLANG_MFPU "")
endif()
elseif(CPU STREQUAL "Cortex-M23")
set(CLANG_ARCH "armv6m")
set(CLANG_ARCH "armv8m.base")
set(CLANG_ARCH_SUFFIX "_soft_nofp")
set(CLANG_MCPU "cortex-m23")
set(CLANG_MFPU "")
elseif(CPU STREQUAL "Cortex-M33")
set(CLANG_ARCH "armv8m.main")
if(FPU STREQUAL "SP_FPU")
Expand All @@ -143,15 +151,16 @@ elseif(CPU STREQUAL "Cortex-M33")
else()
set(CLANG_MCPU "cortex-m33+nodsp")
endif()
set(CLANG_MFPU "fpv5-sp-d16")
set(CLANG_MFPU "")
set(CLANG_MFLOATABI "hard")
else()
set(CLANG_ARCH_SUFFIX "_soft_nofp")
if(DSP STREQUAL "DSP")
set(CLANG_MCPU "cortex-m33")
set(CLANG_MCPU "cortex-m33+nofp")
else()
set(CLANG_MCPU "cortex-m33+nodsp")
set(CLANG_MCPU "cortex-m33+nodsp+nofp")
endif()
set(CLANG_MFPU "")
endif()
elseif(CPU STREQUAL "Cortex-M35P")
set(CLANG_ARCH "armv8m.main")
Expand All @@ -162,38 +171,62 @@ elseif(CPU STREQUAL "Cortex-M35P")
else()
set(CLANG_MCPU "cortex-m35p+nodsp")
endif()
set(CLANG_MFPU "fpv5-sp-d16")
set(CLANG_MFPU "")
set(CLANG_MFLOATABI "hard")
else()
set(CLANG_ARCH_SUFFIX "_soft_nofp")
if(DSP STREQUAL "DSP")
set(CLANG_MCPU "cortex-m35p")
set(CLANG_MCPU "cortex-m35p+nofp")
else()
set(CLANG_MCPU "cortex-m35p+nodsp")
set(CLANG_MCPU "cortex-m35p+nodsp+nofp")
endif()
set(CLANG_MFPU "")
endif()
elseif(CPU STREQUAL "Cortex-M52")
set(CLANG_ARCH "armv8.1m.main")
if(FPU STREQUAL "NO_FPU")
if(MVE STREQUAL "NO_MVE")
set(CLANG_ARCH_SUFFIX "_soft_nofp_nomve")
set(CLANG_MCPU "cortex-m52+nofp+nomve")
else()
set(CLANG_MCPU "cortex-m52+nomve+nofp")
set(CLANG_MFPU "")
elseif(MVE STREQUAL "MVE")
set(CLANG_ARCH_SUFFIX "_hard_nofp_mve")
set(CLANG_MCPU "cortex-m52+nofp")
set(CLANG_MCPU "cortex-m52+nomve.fp+nofp")
set(CLANG_MFPU "")
set(CLANG_MFLOATABI "hard")
elseif(MVE STREQUAL "FP_MVE")
message(FATAL_ERROR "Error: cortex-m52 MVE FP requires an FPU!")
else()
message(FATAL_ERROR "Error: cortex-m52 MVE option '${MVE}' is not supported!")
endif()
elseif(FPU STREQUAL "SP_FPU")
set(CLANG_MFLOATABI "hard")
set(CLANG_MFPU "")
if(MVE STREQUAL "NO_MVE")
set(CLANG_ARCH_SUFFIX "_hard_fp_nomve")
set(CLANG_MCPU "cortex-m52+nomve+nofp.dp")
elseif(MVE STREQUAL "MVE")
set(CLANG_ARCH_SUFFIX "_hard_fp_nomve")
set(CLANG_MCPU "cortex-m52+nomve.fp+nofp.dp")
elseif(MVE STREQUAL "FP_MVE")
message(FATAL_ERROR "Error: cortex-m52 MVE FP requires DP_FPU!")
else()
message(FATAL_ERROR "Error: cortex-m52 MVE option '${MVE}' is not supported!")
endif()
else()
set(CLANG_ARCH_SUFFIX "_hard_fp")
set(CLANG_MFLOATABI "hard")
set(CLANG_MFPU "")
if(MVE STREQUAL "NO_MVE")
set(CLANG_ARCH_SUFFIX "_hard_fpdp_nomve")
set(CLANG_MCPU "cortex-m52+nomve")
elseif(MVE STREQUAL "MVE")
set(CLANG_MCPU "cortex-m52+nomve.fp")
else()
message(FATAL_ERROR "Error: cortex-m52 DP_FPU with integer-only MVE is not supported!")
elseif(MVE STREQUAL "FP_MVE")
set(CLANG_ARCH_SUFFIX "_hard_fpdp")
set(CLANG_MCPU "cortex-m52")
else()
message(FATAL_ERROR "Error: cortex-m52 MVE option '${MVE}' is not supported!")
endif()
set(CLANG_MFPU "fpv5-sp-d16")
set(CLANG_MFLOATABI "hard")
endif()
elseif(CPU STREQUAL "Star-MC3")
set(CLANG_ARCH "armv8.1m.main")
Expand Down Expand Up @@ -235,153 +268,198 @@ elseif(CPU STREQUAL "Cortex-M55")
if(FPU STREQUAL "NO_FPU")
if(MVE STREQUAL "NO_MVE")
set(CLANG_ARCH_SUFFIX "_soft_nofp_nomve")
set(CLANG_MCPU "cortex-m55+nofp+nomve")
else()
set(CLANG_MCPU "cortex-m55+nomve+nofp")
set(CLANG_MFPU "")
elseif(MVE STREQUAL "MVE")
set(CLANG_ARCH_SUFFIX "_hard_nofp_mve")
set(CLANG_MCPU "cortex-m55+nofp")
set(CLANG_MCPU "cortex-m55+nomve.fp+nofp")
set(CLANG_MFPU "")
set(CLANG_MFLOATABI "hard")
elseif(MVE STREQUAL "FP_MVE")
message(FATAL_ERROR "Error: cortex-m55 MVE FP requires an FPU!")
else()
message(FATAL_ERROR "Error: cortex-m55 MVE option '${MVE}' is not supported!")
endif()
else()
set(CLANG_ARCH_SUFFIX "_hard_fp")
set(CLANG_MFPU "")
set(CLANG_MFLOATABI "hard")
if(MVE STREQUAL "NO_MVE")
set(CLANG_ARCH_SUFFIX "_hard_fpdp_nomve")
set(CLANG_MCPU "cortex-m55+nomve")
elseif(MVE STREQUAL "MVE")
set(CLANG_ARCH_SUFFIX "_hard_fpdp_nomve")
set(CLANG_MCPU "cortex-m55+nomve.fp")
else()
elseif(MVE STREQUAL "FP_MVE")
set(CLANG_ARCH_SUFFIX "_hard_fpdp")
set(CLANG_MCPU "cortex-m55")
else()
message(FATAL_ERROR "Error: cortex-m55 MVE option '${MVE}' is not supported!")
endif()
set(CLANG_MFPU "fpv5-sp-d16")
set(CLANG_MFLOATABI "hard")
endif()
elseif(CPU STREQUAL "Cortex-M85")
set(CLANG_ARCH "armv8.1m.main")
if(FPU STREQUAL "NO_FPU")
if(MVE STREQUAL "NO_MVE")
set(CLANG_ARCH_SUFFIX "_soft_nofp_nomve")
set(CLANG_MCPU "cortex-m85+nofp+nomve")
else()
set(CLANG_MCPU "cortex-m85+nomve+nofp")
set(CLANG_MFPU "")
elseif(MVE STREQUAL "MVE")
set(CLANG_ARCH_SUFFIX "_hard_nofp_mve")
set(CLANG_MCPU "cortex-m85+nofp")
set(CLANG_MCPU "cortex-m85+nomve.fp+nofp")
set(CLANG_MFPU "")
set(CLANG_MFLOATABI "hard")
elseif(MVE STREQUAL "FP_MVE")
message(FATAL_ERROR "Error: cortex-m85 MVE FP requires an FPU!")
else()
message(FATAL_ERROR "Error: cortex-m85 MVE option '${MVE}' is not supported!")
endif()
else()
set(CLANG_ARCH_SUFFIX "_hard_fp")
set(CLANG_MFPU "")
set(CLANG_MFLOATABI "hard")
if(MVE STREQUAL "NO_MVE")
set(CLANG_ARCH_SUFFIX "_hard_fpdp_nomve")
set(CLANG_MCPU "cortex-m85+nomve")
elseif(MVE STREQUAL "MVE")
set(CLANG_MCPU "cortex-m85+nomve.fp")
else()
message(FATAL_ERROR "Error: cortex-m85 with integer-only MVE and FPU is not supported!")
elseif(MVE STREQUAL "FP_MVE")
set(CLANG_ARCH_SUFFIX "_hard_fpdp")
set(CLANG_MCPU "cortex-m85")
else()
message(FATAL_ERROR "Error: cortex-m85 MVE option '${MVE}' is not supported!")
endif()
set(CLANG_MFPU "fpv5-sp-d16")
set(CLANG_MFLOATABI "hard")
endif()
elseif(CPU STREQUAL "Cortex-A5")
set(CLANG_ARCH "armv7")
if(FPU STREQUAL "DP_FPU")
set(CLANG_MCPU "cortex-a5+nosimd")
set(CLANG_MFPU "vfpv4-d16")
set(CLANG_MCPU "cortex-a5")
set(CLANG_MFPU "")
set(CLANG_MFLOATABI "hard")
else()
set(CLANG_MCPU "cortex-a5+nosimd+nofp")
set(CLANG_MCPU "cortex-a5+nofp")
set(CLANG_MFPU "")
endif()
elseif(CPU STREQUAL "Cortex-A7")
set(CLANG_ARCH "armv7")
if(FPU STREQUAL "DP_FPU")
set(CLANG_MCPU "cortex-a7+nosimd")
set(CLANG_MFPU "vfpv4-d16")
set(CLANG_MCPU "cortex-a7")
set(CLANG_MFPU "")
set(CLANG_MFLOATABI "hard")
else()
set(CLANG_MCPU "cortex-a7+nosimd+nofp")
set(CLANG_MCPU "cortex-a7+nofp")
set(CLANG_MFPU "")
endif()
elseif(CPU STREQUAL "Cortex-A9")
set(CLANG_ARCH "armv7")
if(FPU STREQUAL "DP_FPU")
set(CLANG_MCPU "cortex-a9+nosimd")
set(CLANG_MFPU "vfpv3-d16")
set(CLANG_MCPU "cortex-a9")
set(CLANG_MFPU "")
set(CLANG_MFLOATABI "hard")
else()
set(CLANG_MCPU "cortex-a9+nosimd+nofp")
set(CLANG_MCPU "cortex-a9+nofp")
set(CLANG_MFPU "")
endif()
elseif(CPU STREQUAL "Cortex-A35")
set(CLANG_ARCH "armv8")
if(FPU STREQUAL "DP_FPU")
set(CLANG_MCPU "cortex-a35")
set(CLANG_MABI "aapcs")
else()
set(CLANG_MCPU "cortex-a35+nofp")
set(CLANG_MABI "aapcs-soft")
endif()
elseif(CPU STREQUAL "Cortex-A53")
set(CLANG_ARCH "armv8")
if(FPU STREQUAL "DP_FPU")
set(CLANG_MCPU "cortex-a53")
set(CLANG_MABI "aapcs")
else()
set(CLANG_MCPU "cortex-a53+nofp")
set(CLANG_MABI "aapcs-soft")
endif()
elseif(CPU STREQUAL "Cortex-A55")
set(CLANG_ARCH "armv8")
if(FPU STREQUAL "DP_FPU")
set(CLANG_MCPU "cortex-a55")
set(CLANG_MABI "aapcs")
else()
set(CLANG_MCPU "cortex-a55+nofp")
set(CLANG_MABI "aapcs-soft")
endif()
elseif(CPU STREQUAL "Cortex-A57")
set(CLANG_ARCH "armv8")
if(FPU STREQUAL "DP_FPU")
set(CLANG_MCPU "cortex-a57")
set(CLANG_MABI "aapcs")
else()
set(CLANG_MCPU "cortex-a57+nofp")
set(CLANG_MABI "aapcs-soft")
endif()
elseif(CPU STREQUAL "Cortex-R4")
set(CLANG_ARCH "armv7")
if(FPU STREQUAL "DP_FPU")
set(CLANG_MCPU "cortex-r4f")
set(CLANG_MFPU "vfpv3-d16")
set(CLANG_MFPU "")
set(CLANG_MFLOATABI "hard")
else()
set(CLANG_MCPU "cortex-r4+nofp")
set(CLANG_MCPU "cortex-r4")
set(CLANG_MFPU "")
endif()
elseif(CPU STREQUAL "Cortex-R5")
set(CLANG_ARCH "armv7")
if(FPU STREQUAL "DP_FPU")
set(CLANG_MCPU "cortex-r5")
set(CLANG_MFPU "vfpv3-d16")
set(CLANG_MFPU "")
set(CLANG_MFLOATABI "hard")
else()
set(CLANG_MCPU "cortex-r5+nofp")
set(CLANG_MFPU "")
endif()
elseif(CPU STREQUAL "Cortex-R7")
set(CLANG_ARCH "armv7")
if(FPU STREQUAL "DP_FPU")
set(CLANG_MCPU "cortex-r7")
set(CLANG_MFPU "vfpv3-d16")
set(CLANG_MFPU "")
set(CLANG_MFLOATABI "hard")
else()
set(CLANG_MCPU "-mcpu=cortex-r7+nofp")
set(CLANG_MCPU "cortex-r7+nofp")
set(CLANG_MFPU "")
endif()
elseif(CPU STREQUAL "Cortex-R8")
set(CLANG_ARCH "armv7")
if(FPU STREQUAL "DP_FPU")
set(CLANG_MCPU "cortex-r8")
set(CLANG_MFPU "vfpv3-d16")
set(CLANG_MFPU "")
set(CLANG_MFLOATABI "hard")
else()
set(CLANG_MCPU "-mcpu=cortex-r8+nofp")
set(CLANG_MCPU "cortex-r8+nofp")
set(CLANG_MFPU "")
endif()
endif()
if(NOT DEFINED CLANG_MCPU)
message(FATAL_ERROR "Error: CPU is not supported!")
endif()

set(CLANG_ABI "")
if(NOT "${CLANG_MABI}" STREQUAL "")
set(CLANG_ABI "-mabi=${CLANG_MABI}")
endif()

if(CLANG_ARCH STREQUAL "armv8")
set(CLANG_TARGET "aarch64-none-elf")
set(CLANG_CPU "-mcpu=${CLANG_MCPU}")
set(CLANG_CPU "--target=${CLANG_TARGET} -mcpu=${CLANG_MCPU} ${CLANG_ABI}")
else()
if(CLANG_MFLOATABI STREQUAL "hard")
if(CPU MATCHES "^Cortex-[AMR]")
set(CLANG_TARGET "arm-none-eabi")
elseif(CLANG_MFLOATABI STREQUAL "hard")
set(CLANG_TARGET "${CLANG_ARCH}-none-eabihf")
else()
set(CLANG_TARGET "${CLANG_ARCH}-none-eabi")
endif()
set(CLANG_CPU "--target=${CLANG_TARGET} -mcpu=${CLANG_MCPU} -mfpu=${CLANG_MFPU} -mfloat-abi=${CLANG_MFLOATABI}")
if("${CLANG_MFPU}" STREQUAL "")
set(CLANG_CPU "--target=${CLANG_TARGET} -mcpu=${CLANG_MCPU} -mfloat-abi=${CLANG_MFLOATABI}")
else()
set(CLANG_CPU "--target=${CLANG_TARGET} -mcpu=${CLANG_MCPU} -mfpu=${CLANG_MFPU} -mfloat-abi=${CLANG_MFLOATABI}")
endif()
endif()

set(CMAKE_CXX_COMPILER_TARGET "${CLANG_TARGET}")
Expand Down
Loading