Tock: toolchain: Try to be smarter about finding toolchains

Instead of hard coding paths, let's instead try to find the toolchain
from the users PATH.

Signed-off-by: Alistair Francis <alistair@alistair23.me>
This commit is contained in:
Alistair Francis 2023-09-08 19:26:47 +10:00
parent 84c6e8c9ed
commit ffbcbdfc84

View file

@ -38,21 +38,13 @@ set(CMAKE_SYSTEM_PROCESSOR ARM)
# Set toolchain paths # Set toolchain paths
#--------------------------------------------------------------------------------------- #---------------------------------------------------------------------------------------
set(TOOLCHAIN arm-none-eabi) set(TOOLCHAIN arm-none-eabi)
if(NOT DEFINED TOOLCHAIN_PREFIX)
if(CMAKE_HOST_SYSTEM_NAME STREQUAL Linux) find_program(TOOLCHAIN_PREFIX ${TOOLCHAIN}-gcc NO_CACHE)
set(TOOLCHAIN_PREFIX "/usr") get_filename_component(TOOLCHAIN_PREFIX ${TOOLCHAIN_PREFIX} DIRECTORY)
elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL Darwin)
set(TOOLCHAIN_PREFIX "/usr/local") set(TOOLCHAIN_BIN_DIR ${TOOLCHAIN_PREFIX}/../bin)
elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL Windows) set(TOOLCHAIN_INC_DIR ${TOOLCHAIN_PREFIX}/../${TOOLCHAIN}/include)
message(STATUS "Please specify the TOOLCHAIN_PREFIX !\n For example: -DTOOLCHAIN_PREFIX=\"C:/Program Files/GNU Tools ARM Embedded\" ") set(TOOLCHAIN_LIB_DIR ${TOOLCHAIN_PREFIX}/../${TOOLCHAIN}/lib)
else()
set(TOOLCHAIN_PREFIX "/usr")
message(STATUS "No TOOLCHAIN_PREFIX specified, using default: " ${TOOLCHAIN_PREFIX})
endif()
endif()
set(TOOLCHAIN_BIN_DIR ${TOOLCHAIN_PREFIX}/bin)
set(TOOLCHAIN_INC_DIR ${TOOLCHAIN_PREFIX}/${TOOLCHAIN}/include)
set(TOOLCHAIN_LIB_DIR ${TOOLCHAIN_PREFIX}/${TOOLCHAIN}/lib)
# Set system depended extensions # Set system depended extensions
if(WIN32) if(WIN32)