# SPDX-License-Identifier: Apache-2.0 # # Copyright (c) 2022, Nordic Semiconductor ASA # FindDTC module for locating devicetree compiler, DTC. # # The module defines the following variables: # # 'DTC' # Path to devicetree compiler, dtc. # Set to 'DTC-NOTFOUND' if dtc was not found. # # 'Dtc_FOUND', 'DTC_FOUND' # True if the devicetree compiler, dtc, was found. # # 'DTC_VERSION_STRING' # The version of devicetree compiler, dtc. find_program( DTC dtc ) if(DTC) # Parse the 'dtc --version' output to find the installed version. execute_process( COMMAND ${DTC} --version OUTPUT_VARIABLE dtc_version_output ERROR_VARIABLE dtc_error_output RESULT_VARIABLE dtc_status ) set(DTC_VERSION_STRING) if(${dtc_status} EQUAL 0) string(REGEX MATCH "Version: DTC v?([0-9]+[.][0-9]+[.][0-9]+).*" out_var ${dtc_version_output}) set(DTC_VERSION_STRING ${CMAKE_MATCH_1}) endif() endif() find_package_handle_standard_args(Dtc REQUIRED_VARS DTC VERSION_VAR DTC_VERSION_STRING ) if(NOT Dtc_FOUND) # DTC was found but version requirement is not met, or dtc was not working. # Treat it as DTC was never found by resetting the result from `find_program()` set(DTC DTC-NOTFOUND CACHE FILEPATH "Path to a program" FORCE) endif()