mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-09-03 22:01:57 +00:00
Fixes: #25215 This commit introduces the possibility of defining ROOTs in a Zephyr module and have it automatically appended to list of other ROOTs. Supported with this commit: - BOARD_ROOT - SOC_ROOT - DTS_ROOT - ARCH_ROOT In order to support this in Zephyr module files, the detection of west has been moved to dedicated west.cmake file and included immediately after python.cmake. Also the inclusion of zephyr_modules.cmake has moved before first use of BOARD_ROOT. Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
62 lines
1.7 KiB
CMake
62 lines
1.7 KiB
CMake
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
include(${ZEPHYR_BASE}/cmake/toolchain/zephyr/host-tools.cmake)
|
|
|
|
# dtc is an optional dependency
|
|
find_program(
|
|
DTC
|
|
dtc
|
|
)
|
|
|
|
if(DTC)
|
|
# Parse the 'dtc --version' output to find the installed version.
|
|
set(MIN_DTC_VERSION 1.4.6)
|
|
execute_process(
|
|
COMMAND
|
|
${DTC} --version
|
|
OUTPUT_VARIABLE dtc_version_output
|
|
ERROR_VARIABLE dtc_error_output
|
|
RESULT_VARIABLE dtc_status
|
|
)
|
|
|
|
if(${dtc_status} EQUAL 0)
|
|
string(REGEX MATCH "Version: DTC ([0-9]+[.][0-9]+[.][0-9]+).*" out_var ${dtc_version_output})
|
|
|
|
# Since it is optional, an outdated version is not an error. If an
|
|
# outdated version is discovered, print a warning and proceed as if
|
|
# DTC were not installed.
|
|
if(${CMAKE_MATCH_1} VERSION_GREATER ${MIN_DTC_VERSION})
|
|
message(STATUS "Found dtc: ${DTC} (found suitable version \"${CMAKE_MATCH_1}\", minimum required is \"${MIN_DTC_VERSION}\")")
|
|
else()
|
|
message(WARNING
|
|
"Could NOT find dtc: Found unsuitable version \"${CMAKE_MATCH_1}\", but required is at least \"${MIN_DTC_VERSION}\" (found ${DTC}). Optional devicetree error checking with dtc will not be performed.")
|
|
set(DTC DTC-NOTFOUND)
|
|
endif()
|
|
else()
|
|
message(WARNING
|
|
"Could NOT find working dtc: Found dtc (${DTC}), but failed to load with:\n ${dtc_error_output}")
|
|
set(DTC DTC-NOTFOUND)
|
|
endif()
|
|
endif()
|
|
|
|
# gperf is an optional dependency
|
|
find_program(
|
|
GPERF
|
|
gperf
|
|
)
|
|
|
|
# openocd is an optional dependency
|
|
find_program(
|
|
OPENOCD
|
|
openocd
|
|
)
|
|
|
|
# bossac is an optional dependency
|
|
find_program(
|
|
BOSSAC
|
|
bossac
|
|
)
|
|
|
|
# TODO: Should we instead find one qemu binary for each ARCH?
|
|
# TODO: This will probably need to be re-organized when there exists more than one SDK.
|