You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.9 KiB
69 lines
1.9 KiB
# 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 v?([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 |
|
) |
|
|
|
# imgtool is an optional dependency (the build may also fall back to |
|
# scripts/imgtool.py in the mcuboot repository if that's present in |
|
# some cases) |
|
find_program( |
|
IMGTOOL |
|
imgtool |
|
) |
|
|
|
# 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.
|
|
|