48 lines
1.9 KiB
CMake
48 lines
1.9 KiB
CMake
# Call Cmake from the 'build' subfolder with the command below.
|
|
# For using Make:
|
|
# cmake -DCMAKE_MAKE_PROGRAM=make.exe -DCMAKE_TOOLCHAIN_FILE="arm-none-eabi-gcc.cmake" -G "Unix Makefiles" ..
|
|
# followed by
|
|
# 'make' or 'cmake --build .' to build it
|
|
#
|
|
# For using Ninja:
|
|
# cmake -DCMAKE_MAKE_PROGRAM=ninja.exe -DCMAKE_TOOLCHAIN_FILE="arm-none-eabi-gcc.cmake" -G "Ninja" ..
|
|
# followed by
|
|
# 'ninja' or 'cmake --build .' to build it
|
|
|
|
set(CMAKE_SYSTEM_NAME Generic)
|
|
set(CMAKE_SYSTEM_PROCESSOR arm)
|
|
|
|
if(CMAKE_HOST_WIN32)
|
|
set(EXECUTESUFFIX ".exe")
|
|
set(ARM_TOOLCHAIN_DIR "C:/SysGCC/arm-eabi/bin")
|
|
elseif(CMAKE_HOST_UNIX)
|
|
set(EXECUTESUFFIX "")
|
|
if(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Darwin")
|
|
message(STATUS "Running on macOS")
|
|
set(ARM_TOOLCHAIN_DIR "/opt/homebrew/bin")
|
|
elseif(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Linux")
|
|
message(STATUS "Running on Linux (likely Ubuntu)")
|
|
set(ARM_TOOLCHAIN_DIR "/opt/arm-none-eabi/bin")
|
|
endif()
|
|
else()
|
|
message(WARNING "Unknown host OS: ${CMAKE_HOST_SYSTEM_NAME}")
|
|
endif()
|
|
|
|
set(BINUTILS_PATH ${ARM_TOOLCHAIN_DIR})
|
|
|
|
set(TOOLCHAIN_PREFIX arm-none-eabi-)
|
|
|
|
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
|
|
|
|
set(CMAKE_C_COMPILER ${ARM_TOOLCHAIN_DIR}/${TOOLCHAIN_PREFIX}gcc${EXECUTESUFFIX})
|
|
set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER})
|
|
set(CMAKE_CXX_COMPILER ${ARM_TOOLCHAIN_DIR}/${TOOLCHAIN_PREFIX}g++${EXECUTESUFFIX})
|
|
set(CMAKE_LINKER ${ARM_TOOLCHAIN_DIR}/${TOOLCHAIN_PREFIX}ld${EXECUTESUFFIX})
|
|
set(CMAKE_OBJCOPY ${ARM_TOOLCHAIN_DIR}/${TOOLCHAIN_PREFIX}objcopy${EXECUTESUFFIX} CACHE INTERNAL "objcopy tool")
|
|
set(CMAKE_SIZE ${ARM_TOOLCHAIN_DIR}/${TOOLCHAIN_PREFIX}size${EXECUTESUFFIX} CACHE INTERNAL "size tool")
|
|
|
|
set(CMAKE_FIND_ROOT_PATH ${BINUTILS_PATH})
|
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
|
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
|
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|