set(CMAKE_SYSTEM_NAME Generic) set(CMAKE_SYSTEM_PROCESSOR arm) set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) if(NOT DEFINED ENV{ARM_GCC_BIN_DIR}) message(FATAL_ERROR "ARM_GCC_BIN_DIR is not set. It must point to the directory that contains arm-none-eabi-gcc.") endif() file(TO_CMAKE_PATH "$ENV{ARM_GCC_BIN_DIR}" ARM_GCC_BIN_DIR) get_filename_component(ARM_GCC_ROOT "${ARM_GCC_BIN_DIR}" DIRECTORY) if(CMAKE_HOST_WIN32) set(TOOL_SUFFIX ".exe") else() set(TOOL_SUFFIX "") endif() set(CMAKE_C_COMPILER "${ARM_GCC_BIN_DIR}/arm-none-eabi-gcc${TOOL_SUFFIX}") set(CMAKE_ASM_COMPILER "${ARM_GCC_BIN_DIR}/arm-none-eabi-gcc${TOOL_SUFFIX}") set(CMAKE_AR "${ARM_GCC_BIN_DIR}/arm-none-eabi-ar${TOOL_SUFFIX}") set(CMAKE_OBJCOPY "${ARM_GCC_BIN_DIR}/arm-none-eabi-objcopy${TOOL_SUFFIX}") set(CMAKE_OBJDUMP "${ARM_GCC_BIN_DIR}/arm-none-eabi-objdump${TOOL_SUFFIX}") set(CMAKE_SIZE "${ARM_GCC_BIN_DIR}/arm-none-eabi-size${TOOL_SUFFIX}") if(DEFINED ENV{ARM_GCC_SYSROOT}) file(TO_CMAKE_PATH "$ENV{ARM_GCC_SYSROOT}" ARM_GCC_SYSROOT) set(CMAKE_SYSROOT "${ARM_GCC_SYSROOT}") else() set(ARM_GCC_NEWLIB_SYSROOT "${ARM_GCC_ROOT}/arm-none-eabi/newlib") if(EXISTS "${ARM_GCC_NEWLIB_SYSROOT}") set(CMAKE_SYSROOT "${ARM_GCC_NEWLIB_SYSROOT}") else() execute_process( COMMAND "${CMAKE_C_COMPILER}" -print-sysroot OUTPUT_VARIABLE ARM_GCC_SYSROOT OUTPUT_STRIP_TRAILING_WHITESPACE ) if(ARM_GCC_SYSROOT) set(CMAKE_SYSROOT "${ARM_GCC_SYSROOT}") endif() endif() endif() set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)