Docker-Build mit gcc-arm-none-eabi 4.9-2014q4 (statt Homebrew-Cask) verwendet, Dockerfile/tools/docker.sh dafür aus Task 13 vorgezogen. cmake/sdk.cmake schont gcc 4.9 (kennt -fcommon/-Wno-error=... nicht). Zwei zusätzliche SDK-Stubs (EarlyInit, pre_gpio_config) in src/sys/sdk_stubs.c ergänzt, siehe sdk/PATCHES.md.
25 lines
931 B
CMake
25 lines
931 B
CMake
set(CMAKE_SYSTEM_NAME Generic)
|
|
set(CMAKE_SYSTEM_PROCESSOR arm)
|
|
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
|
|
|
|
# Official ARM GNU toolchain (ships newlib). In Docker the compiler is found via PATH.
|
|
file(GLOB _nl_arm_bins "/Applications/ArmGNUToolchain/*/arm-none-eabi/bin")
|
|
list(SORT _nl_arm_bins ORDER DESCENDING)
|
|
set(_nl_arm_default "")
|
|
if(_nl_arm_bins)
|
|
list(GET _nl_arm_bins 0 _nl_arm_default)
|
|
endif()
|
|
set(NL_ARM_TOOLCHAIN_BIN "${_nl_arm_default}" CACHE PATH "bin directory of the ARM GNU toolchain (empty = PATH)")
|
|
|
|
if(NL_ARM_TOOLCHAIN_BIN)
|
|
set(_nl_prefix "${NL_ARM_TOOLCHAIN_BIN}/arm-none-eabi-")
|
|
else()
|
|
set(_nl_prefix "arm-none-eabi-")
|
|
endif()
|
|
|
|
set(CMAKE_C_COMPILER "${_nl_prefix}gcc")
|
|
set(CMAKE_ASM_COMPILER "${_nl_prefix}gcc")
|
|
set(CMAKE_OBJCOPY "${_nl_prefix}objcopy" CACHE INTERNAL "")
|
|
set(CMAKE_SIZE "${_nl_prefix}size" CACHE INTERNAL "")
|
|
set(CMAKE_EXE_LINKER_FLAGS_INIT "--specs=nosys.specs")
|