54 lines
2.1 KiB
CMake
54 lines
2.1 KiB
CMake
# Lots of duplications here.
|
|
# FIXME: maintain this only in one place.
|
|
|
|
# We need to separate actual toolchain from the host-tools required by Zephyr
|
|
# and currently provided by the Zephyr SDK. Those tools will need to be
|
|
# provided for different OSes and sepearately from the toolchain.
|
|
|
|
if(DEFINED ENV{ZEPHYR_SDK_INSTALL_DIR})
|
|
set_ifndef(ZEPHYR_SDK_INSTALL_DIR $ENV{ZEPHYR_SDK_INSTALL_DIR})
|
|
endif()
|
|
set(ZEPHYR_SDK_INSTALL_DIR ${ZEPHYR_SDK_INSTALL_DIR} CACHE PATH "Zephyr SDK install directory")
|
|
|
|
if(NOT ZEPHYR_SDK_INSTALL_DIR)
|
|
# Until https://github.com/zephyrproject-rtos/zephyr/issues/4912 is
|
|
# resolved we use ZEPHYR_SDK_INSTALL_DIR to determine whether the user
|
|
# wants to use the Zephyr SDK or not.
|
|
return()
|
|
endif()
|
|
|
|
set(REQUIRED_SDK_VER 0.9.2)
|
|
set(TOOLCHAIN_VENDOR zephyr)
|
|
set(TOOLCHAIN_ARCH x86_64)
|
|
|
|
set(sdk_version_path ${ZEPHYR_SDK_INSTALL_DIR}/sdk_version)
|
|
if(NOT (EXISTS ${sdk_version_path}))
|
|
message(FATAL_ERROR
|
|
"The file '${ZEPHYR_SDK_INSTALL_DIR}/sdk_version' was not found. \
|
|
Is ZEPHYR_SDK_INSTALL_DIR=${ZEPHYR_SDK_INSTALL_DIR} misconfigured?")
|
|
endif()
|
|
|
|
file(READ ${sdk_version_path} SDK_VERSION)
|
|
if(${REQUIRED_SDK_VER} VERSION_GREATER ${SDK_VERSION})
|
|
message(FATAL_ERROR "The SDK version you are using is old, please update your SDK.
|
|
You need at least SDK version ${REQUIRED_SDK_VER}.
|
|
The new version of the SDK can be download from:
|
|
https://github.com/zephyrproject-rtos/meta-zephyr-sdk/releases/download/${REQUIRED_SDK_VER}/zephyr-sdk-${REQUIRED_SDK_VER}-setup.run
|
|
")
|
|
endif()
|
|
|
|
if(MINGW)
|
|
set(TOOLCHAIN_HOME ${ZEPHYR_SDK_INSTALL_DIR}/sysroots/i686-pokysdk-mingw32)
|
|
else()
|
|
set(TOOLCHAIN_HOME ${ZEPHYR_SDK_INSTALL_DIR}/sysroots/${TOOLCHAIN_ARCH}-pokysdk-linux)
|
|
endif()
|
|
|
|
# Path used for searching by the find_*() functions, with appropriate
|
|
# suffixes added. Ensures that the SDK's host tools will be found when
|
|
# we call, e.g. find_program(QEMU qemu-system-x86)
|
|
list(APPEND CMAKE_PREFIX_PATH ${TOOLCHAIN_HOME}/usr)
|
|
|
|
# TODO: Use find_* somehow for these as well?
|
|
set_ifndef(QEMU_BIOS ${TOOLCHAIN_HOME}/usr/share/qemu)
|
|
set_ifndef(OPENOCD_DEFAULT_PATH ${TOOLCHAIN_HOME}/usr/share/openocd/scripts)
|