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")