zephyr/cmake/verify-toolchain.cmake

47 lines
1.6 KiB
CMake

# The purpose of this file is to verify that required variables has been
# defined for proper toolchain use.
#
# This file is intended to be executed in script mode so that it can be used in
# other tools, such as twister / python scripts.
#
# When invoked as a script with -P:
# cmake [options] -P verify-toolchain.cmake
#
# it takes the following arguments:
# FORMAT=json: Print the output as a json formatted string, useful for Python
cmake_minimum_required(VERSION 3.20.0)
if(NOT CMAKE_SCRIPT_MODE_FILE)
message(FATAL_ERROR "verify-toolchain.cmake is a script and must be invoked "
"as:\n 'cmake ... -P verify-toolchain.cmake'\n"
)
endif()
if("${FORMAT}" STREQUAL "json")
# If executing in script mode and output format is specified, then silence
# all other messages as only the specified output should be printed.
function(message)
endfunction()
endif()
set(ZEPHYR_BASE ${CMAKE_CURRENT_LIST_DIR}/../)
list(PREPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/modules)
find_package(HostTools)
if("${FORMAT}" STREQUAL "json")
set(json "{\"ZEPHYR_TOOLCHAIN_VARIANT\" : \"${ZEPHYR_TOOLCHAIN_VARIANT}\", ")
string(APPEND json "\"SDK_VERSION\": \"${SDK_VERSION}\", ")
string(APPEND json "\"ZEPHYR_SDK_INSTALL_DIR\" : \"${ZEPHYR_SDK_INSTALL_DIR}\"}")
_message("${json}")
else()
message(STATUS "ZEPHYR_TOOLCHAIN_VARIANT: ${ZEPHYR_TOOLCHAIN_VARIANT}")
if(DEFINED SDK_VERSION)
message(STATUS "SDK_VERSION: ${SDK_VERSION}")
endif()
if(DEFINED ZEPHYR_SDK_INSTALL_DIR)
message(STATUS "ZEPHYR_SDK_INSTALL_DIR : ${ZEPHYR_SDK_INSTALL_DIR}")
endif()
endif()