|
| 1 | +# This file sets up a CMakeCache for the Pico SDK toolchain build. |
| 2 | + |
| 3 | +set(CMAKE_BUILD_TYPE Release CACHE STRING "") |
| 4 | + |
| 5 | +set(LLVM_TARGETS_TO_BUILD ARM;RISCV CACHE STRING "") |
| 6 | +set(LLVM_ENABLE_PROJECTS clang;lld;llvm CACHE STRING "") |
| 7 | +set(LLVM_ENABLE_RUNTIMES compiler-rt;libcxx;libc CACHE STRING "") |
| 8 | + |
| 9 | +set(CLANG_DEFAULT_CXX_STDLIB libc++ CACHE STRING "") |
| 10 | +set(CLANG_DEFAULT_LINKER lld CACHE STRING "") |
| 11 | +set(CLANG_DEFAULT_RTLIB compiler-rt CACHE STRING "") |
| 12 | +set(CLANG_DEFAULT_UNWINDLIB libunwind CACHE STRING "") |
| 13 | + |
| 14 | +set(LLVM_INSTALL_TOOLCHAIN_ONLY ON CACHE BOOL "") |
| 15 | +set(LLVM_TOOLCHAIN_TOOLS |
| 16 | + llvm-ar |
| 17 | + llvm-cov |
| 18 | + llvm-objcopy |
| 19 | + llvm-objdump |
| 20 | + llvm-profdata |
| 21 | + llvm-ranlib |
| 22 | + llvm-readelf |
| 23 | + llvm-readobj |
| 24 | + llvm-size |
| 25 | + llvm-strings |
| 26 | + llvm-strip |
| 27 | + llvm-symbolizer |
| 28 | + CACHE STRING "") |
| 29 | +set(LLVM_DISTRIBUTION_COMPONENTS |
| 30 | + builtins |
| 31 | + clang |
| 32 | + clang-resource-headers |
| 33 | + lld |
| 34 | + runtimes |
| 35 | + ${LLVM_TOOLCHAIN_TOOLS} |
| 36 | + CACHE STRING "") |
| 37 | + |
| 38 | +set(LLVM_BUILTIN_TARGETS armv6m-none-eabi;armv8m.main-none-eabi;riscv32-unknown-elf CACHE STRING "") |
| 39 | +foreach(target ${LLVM_BUILTIN_TARGETS}) |
| 40 | + set(BUILTINS_${target}_CMAKE_SYSTEM_NAME Generic CACHE STRING "") |
| 41 | + set(BUILTINS_${target}_CMAKE_BUILD_TYPE MinSizeRel CACHE STRING "") |
| 42 | + set(BUILTINS_${target}_COMPILER_RT_BAREMETAL_BUILD ON CACHE BOOL "") |
| 43 | +endforeach() |
| 44 | + |
| 45 | +set(BUILTINS_armv6m-none-eabi_CMAKE_SYSTEM_PROCESSOR arm CACHE STRING "") |
| 46 | +set(BUILTINS_armv8m.main-none-eabi_CMAKE_SYSTEM_PROCESSOR arm CACHE STRING "") |
| 47 | +set(BUILTINS_riscv32-unknown-elf_CMAKE_SYSTEM_PROCESSOR RISCV CACHE STRING "") |
| 48 | +foreach(lang C;CXX;ASM) |
| 49 | + set(BUILTINS_armv6m-none-eabi_CMAKE_${lang}_FLAGS "-march=armv6m -mcpu=cortex-m0plus -mfloat-abi=soft" CACHE STRING "") |
| 50 | + set(BUILTINS_armv8m.main-none-eabi_CMAKE_${lang}_FLAGS "-march=armv8m.main+fp+dsp -mcpu=cortex-m33 -mfloat-abi=softfp" CACHE STRING "") |
| 51 | + set(BUILTINS_riscv32-unknown-elf_CMAKE_${lang}_FLAGS "-march=rv32imac_zicsr_zifencei_zba_zbb_zbs_zbkb -mabi=ilp32" CACHE STRING "") |
| 52 | +endforeach() |
| 53 | + |
| 54 | +set(LLVM_RUNTIME_TARGETS armv6m-none-eabi;armv8m.main-none-eabi;riscv32-unknown-elf CACHE STRING "") |
| 55 | +foreach(target ${LLVM_RUNTIME_TARGETS}) |
| 56 | + set(RUNTIMES_${target}_CMAKE_SYSTEM_NAME Generic CACHE STRING "") |
| 57 | + set(RUNTIMES_${target}_CMAKE_BUILD_TYPE MinSizeRel CACHE STRING "") |
| 58 | + set(RUNTIMES_${target}_CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY CACHE STRING "") |
| 59 | + set(RUNTIMES_${target}_LLVM_ENABLE_RUNTIMES libc;libcxx CACHE STRING "") |
| 60 | + set(RUNTIMES_${target}_LLVM_ENABLE_ASSERTIONS OFF CACHE BOOL "") |
| 61 | + set(RUNTIMES_${target}_LLVM_INCLUDE_TESTS OFF CACHE BOOL "") |
| 62 | + set(RUNTIMES_${target}_LLVM_LIBC_FULL_BUILD ON CACHE BOOL "") |
| 63 | + set(RUNTIMES_${target}_LIBC_ENABLE_USE_BY_CLANG ON CACHE BOOL "") |
| 64 | + set(RUNTIMES_${target}_LIBCXX_CXX_ABI none CACHE STRING "") |
| 65 | + set(RUNTIMES_${target}_LIBCXX_ENABLE_SHARED OFF CACHE BOOL "") |
| 66 | + set(RUNTIMES_${target}_LIBCXX_ENABLE_FILESYSTEM OFF CACHE BOOL "") |
| 67 | + set(RUNTIMES_${target}_LIBCXX_ENABLE_RANDOM_DEVICE OFF CACHE BOOL "") |
| 68 | + set(RUNTIMES_${target}_LIBCXX_ENABLE_LOCALIZATION OFF CACHE BOOL "") |
| 69 | + set(RUNTIMES_${target}_LIBCXX_ENABLE_UNICODE OFF CACHE BOOL "") |
| 70 | + set(RUNTIMES_${target}_LIBCXX_ENABLE_WIDE_CHARACTERS OFF CACHE BOOL "") |
| 71 | + set(RUNTIMES_${target}_LIBCXX_ENABLE_EXCEPTIONS OFF CACHE BOOL "") |
| 72 | + set(RUNTIMES_${target}_LIBCXX_ENABLE_RTTI OFF CACHE BOOL "") |
| 73 | + set(RUNTIMES_${target}_LIBCXX_ENABLE_THREADS OFF CACHE BOOL "") |
| 74 | + set(RUNTIMES_${target}_LIBCXX_ENABLE_MONOTONIC_CLOCK OFF CACHE BOOL "") |
| 75 | + set(RUNTIMES_${target}_LIBCXX_SHARED_OUTPUT_NAME "c++-shared" CACHE STRING "") |
| 76 | + set(RUNTIMES_${target}_LIBCXX_USE_COMPILER_RT ON CACHE BOOL "") |
| 77 | + set(RUNTIMES_${target}_RUNTIMES_USE_LIBC llvm-libc CACHE STRING "") |
| 78 | +endforeach() |
| 79 | + |
| 80 | +set(RUNTIMES_armv6m-none-eabi_CMAKE_SYSTEM_PROCESSOR arm CACHE STRING "") |
| 81 | +set(RUNTIMES_armv8m.main-none-eabi_CMAKE_SYSTEM_PROCESSOR arm CACHE STRING "") |
| 82 | +set(RUNTIMES_riscv32-unknown-elf_CMAKE_SYSTEM_PROCESSOR RISCV CACHE STRING "") |
| 83 | +foreach(lang C;CXX;ASM) |
| 84 | + # TODO: Use internal logging API instead of fprintf in libc++ |
| 85 | + set(RUNTIMES_armv6m-none-eabi_CMAKE_${lang}_FLAGS "-march=armv6m -mcpu=cortex-m0plus -mfloat-abi=soft -Wno-atomic-alignment \"-Dvfprintf(stream, format, vlist)=vprintf(format, vlist)\" \"-Dfprintf(stream, format, ...)=printf(format)\" \"-Dfputs(string, stream)=puts(string)\" -D_LIBCPP_PRINT=1" CACHE STRING "") |
| 86 | + set(RUNTIMES_armv8m.main-none-eabi_CMAKE_${lang}_FLAGS "-march=armv8m.main+fp+dsp -mcpu=cortex-m33 -mfloat-abi=softfp -Wno-atomic-alignment \"-Dvfprintf(stream, format, vlist)=vprintf(format, vlist)\" \"-Dfprintf(stream, format, ...)=printf(format)\" \"-Dfputs(string, stream)=puts(string)\" -D_LIBCPP_PRINT=1" CACHE STRING "") |
| 87 | + set(RUNTIMES_riscv32-unknown-elf_CMAKE_${lang}_FLAGS "-march=rv32imac_zicsr_zifencei_zba_zbb_zbs_zbkb -mabi=ilp32 -Wno-atomic-alignment \"-Dvfprintf(stream, format, vlist)=vprintf(format, vlist)\" \"-Dfprintf(stream, format, ...)=printf(format)\" \"-Dfputs(string, stream)=puts(string)\" -D_LIBCPP_PRINT=1" CACHE STRING "") |
| 88 | +endforeach() |
0 commit comments