diff --git a/CMakeLists.txt b/CMakeLists.txt index c14f5f7f17a..3ce4b5ff1e9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2235,3 +2235,10 @@ add_subdirectory_ifdef( ) toolchain_linker_finalize() + +yaml_context(EXISTS NAME build_info result) +if(result) + build_info(zephyr version VALUE ${PROJECT_VERSION_STR}) + build_info(zephyr zephyr-base VALUE ${ZEPHYR_BASE}) + yaml_save(NAME build_info) +endif() diff --git a/cmake/modules/FindHostTools.cmake b/cmake/modules/FindHostTools.cmake index 8d3c9eccaaf..876a86934b1 100644 --- a/cmake/modules/FindHostTools.cmake +++ b/cmake/modules/FindHostTools.cmake @@ -114,3 +114,6 @@ set_ifndef(TOOLCHAIN_KCONFIG_DIR ${TOOLCHAIN_ROOT}/cmake/toolchain/${ZEPHYR_TOOL set(HostTools_FOUND TRUE) set(HOSTTOOLS_FOUND TRUE) +build_info(toolchain name VALUE ${ZEPHYR_TOOLCHAIN_VARIANT}) +string(TOUPPER ${ZEPHYR_TOOLCHAIN_VARIANT} zephyr_toolchain_variant_upper) +build_info(toolchain path VALUE "${${zephyr_toolchain_variant_upper}_TOOLCHAIN_PATH}") diff --git a/cmake/modules/boards.cmake b/cmake/modules/boards.cmake index d2c0666f2c5..a1b05b07b57 100644 --- a/cmake/modules/boards.cmake +++ b/cmake/modules/boards.cmake @@ -369,3 +369,7 @@ if(BOARD_EXTENSIONS) list(APPEND BOARD_EXTENSION_DIRS ${board_extension_dir}) endforeach() endif() +build_info(board name VALUE ${BOARD}) +string(REGEX REPLACE "^/" "" qualifiers "${BOARD_QUALIFIERS}") +build_info(board qualifiers VALUE ${qualifiers}) +build_info(board revision VALUE ${BOARD_REVISION}) diff --git a/cmake/modules/configuration_files.cmake b/cmake/modules/configuration_files.cmake index 84af8c5b635..ff7a172445c 100644 --- a/cmake/modules/configuration_files.cmake +++ b/cmake/modules/configuration_files.cmake @@ -99,3 +99,5 @@ zephyr_boilerplate_watch(DTC_OVERLAY_FILE) zephyr_get(EXTRA_CONF_FILE SYSBUILD LOCAL VAR EXTRA_CONF_FILE OVERLAY_CONFIG MERGE REVERSE) zephyr_get(EXTRA_DTC_OVERLAY_FILE SYSBUILD LOCAL MERGE REVERSE) zephyr_get(DTS_EXTRA_CPPFLAGS SYSBUILD LOCAL MERGE REVERSE) +build_info(application source-dir VALUE ${APPLICATION_SOURCE_DIR}) +build_info(application configuration-dir VALUE ${APPLICATION_CONFIG_DIR}) diff --git a/cmake/modules/dts.cmake b/cmake/modules/dts.cmake index c22761b9c71..02fed1b4a8f 100644 --- a/cmake/modules/dts.cmake +++ b/cmake/modules/dts.cmake @@ -188,6 +188,7 @@ set(dts_files if(DTC_OVERLAY_FILE) zephyr_list(TRANSFORM DTC_OVERLAY_FILE NORMALIZE_PATHS OUTPUT_VARIABLE DTC_OVERLAY_FILE_AS_LIST) + build_info(devicetree user-files VALUE ${DTC_OVERLAY_FILE_AS_LIST}) list(APPEND dts_files ${DTC_OVERLAY_FILE_AS_LIST} @@ -197,6 +198,7 @@ endif() if(EXTRA_DTC_OVERLAY_FILE) zephyr_list(TRANSFORM EXTRA_DTC_OVERLAY_FILE NORMALIZE_PATHS OUTPUT_VARIABLE EXTRA_DTC_OVERLAY_FILE_AS_LIST) + build_info(devicetree extra-user-files VALUE ${EXTRA_DTC_OVERLAY_FILE_AS_LIST}) list(APPEND dts_files ${EXTRA_DTC_OVERLAY_FILE_AS_LIST} @@ -413,3 +415,7 @@ elseif(stderr) message(WARNING "dtc raised one or more warnings:\n${stderr}") endif() endif(DTC) + +build_info(devicetree files VALUE ${dts_files}) +build_info(devicetree include-dirs VALUE ${DTS_ROOT_SYSTEM_INCLUDE_DIRS}) +build_info(devicetree bindings-dirs VALUE ${DTS_ROOT_BINDINGS}) diff --git a/cmake/modules/kconfig.cmake b/cmake/modules/kconfig.cmake index 3f374db5aea..3f7310aabb5 100644 --- a/cmake/modules/kconfig.cmake +++ b/cmake/modules/kconfig.cmake @@ -95,11 +95,13 @@ set(PARSED_KCONFIG_SOURCES_TXT ${PROJECT_BINARY_DIR}/kconfig/sources.txt) if(CONF_FILE) string(CONFIGURE "${CONF_FILE}" CONF_FILE_EXPANDED) string(REPLACE " " ";" CONF_FILE_AS_LIST "${CONF_FILE_EXPANDED}") + build_info(kconfig user-files VALUE ${CONF_FILE_AS_LIST}) endif() if(EXTRA_CONF_FILE) string(CONFIGURE "${EXTRA_CONF_FILE}" EXTRA_CONF_FILE_EXPANDED) string(REPLACE " " ";" EXTRA_CONF_FILE_AS_LIST "${EXTRA_CONF_FILE_EXPANDED}") + build_info(kconfig extra-user-files VALUE ${EXTRA_CONF_FILE_AS_LIST}) endif() zephyr_file(CONF_FILES ${BOARD_EXTENSION_DIRS} KCONF board_extension_conf_files SUFFIX ${FILE_SUFFIX}) @@ -354,6 +356,7 @@ endif() if(CREATE_NEW_DOTCONFIG) set(input_configs_flags --handwritten-input-configs) set(input_configs ${merge_config_files} ${FORCED_CONF_FILE}) + build_info(kconfig files VALUE ${input_configs}) else() set(input_configs ${DOTCONFIG} ${FORCED_CONF_FILE}) endif() diff --git a/share/sysbuild/CMakeLists.txt b/share/sysbuild/CMakeLists.txt index 8370490fb94..f2fbb4b2718 100644 --- a/share/sysbuild/CMakeLists.txt +++ b/share/sysbuild/CMakeLists.txt @@ -25,3 +25,10 @@ if(EXISTS ${APP_DIR}/sysbuild/CMakeLists.txt) else() add_subdirectory(template _sysbuild) endif() + +build_info(sysbuild VALUE true) +build_info(application source-dir VALUE ${CMAKE_CURRENT_SOURCE_DIR}) +yaml_context(EXISTS NAME build_info result) +if(result) + yaml_save(NAME build_info) +endif()