mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-08-14 00:36:14 +00:00
This change changes the semantics of the environment variable ZEPHYR_SDK_INSTALL_DIR to allow the use of 3rd party toolchains alongside the Zephyr SDK's host tools. Specifically, setting ZEPHYR_SDK_INSTALL_DIR now indicates that the Zephyr SDK host tools are to be used. But not necessarily that the Zephyr SDK's toolchain is to be used. The documentation is also changed to explain this behaviour. Signed-off-by: Sebastian Boe <sebastian.boe@nordicsemi.no>
47 lines
1.8 KiB
CMake
47 lines
1.8 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)
|
|
|
|
file(READ ${ZEPHYR_SDK_INSTALL_DIR}/sdk_version 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)
|