From fe3efbc6a2c94d8c7abd1402e1c6b2fccb11eb26 Mon Sep 17 00:00:00 2001 From: Torsten Rasmussen Date: Wed, 11 Jan 2023 15:58:16 +0100 Subject: [PATCH] cmake: BOARD_REVISION_CONFIG setting for Kconfig revision fragments Fixes: #53696 Create a BOARD_REVISION_CONFIG setting to be consistent with the BOARD_DEFCONFIG setting. This allows systems which re-uses the Kconfig module to overrule the file to be used as BOARD_REVISION_CONFIG in same way as is done for the BOARD_DEFCONFIG file. Signed-off-by: Torsten Rasmussen --- cmake/modules/kconfig.cmake | 7 ++++--- share/sysbuild/cmake/modules/sysbuild_kconfig.cmake | 4 ++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/cmake/modules/kconfig.cmake b/cmake/modules/kconfig.cmake index 00db561d954..3c37e3bce27 100644 --- a/cmake/modules/kconfig.cmake +++ b/cmake/modules/kconfig.cmake @@ -65,6 +65,9 @@ else() endif() set_ifndef(BOARD_DEFCONFIG ${BOARD_DIR}/${BOARD}_defconfig) +if((DEFINED BOARD_REVISION) AND EXISTS ${BOARD_DIR}/${BOARD}_${BOARD_REVISION_STRING}.conf) + set_ifndef(BOARD_REVISION_CONFIG ${BOARD_DIR}/${BOARD}_${BOARD_REVISION_STRING}.conf) +endif() set(DOTCONFIG ${PROJECT_BINARY_DIR}/.config) set(PARSED_KCONFIG_SOURCES_TXT ${PROJECT_BINARY_DIR}/kconfig/sources.txt) @@ -79,9 +82,6 @@ if(OVERLAY_CONFIG) string(REPLACE " " ";" OVERLAY_CONFIG_AS_LIST "${OVERLAY_CONFIG_EXPANDED}") endif() -if((DEFINED BOARD_REVISION) AND EXISTS ${BOARD_DIR}/${BOARD}_${BOARD_REVISION_STRING}.conf) - list(INSERT CONF_FILE_AS_LIST 0 ${BOARD_DIR}/${BOARD}_${BOARD_REVISION_STRING}.conf) -endif() # DTS_ROOT_BINDINGS is a semicolon separated list, this causes # problems when invoking kconfig_target since semicolon is a special @@ -238,6 +238,7 @@ list(SORT config_files) set( merge_config_files ${BOARD_DEFCONFIG} + ${BOARD_REVISION_CONFIG} ${CONF_FILE_AS_LIST} ${shield_conf_files} ${OVERLAY_CONFIG_AS_LIST} diff --git a/share/sysbuild/cmake/modules/sysbuild_kconfig.cmake b/share/sysbuild/cmake/modules/sysbuild_kconfig.cmake index add0bb8ac04..33e33fa59c2 100644 --- a/share/sysbuild/cmake/modules/sysbuild_kconfig.cmake +++ b/share/sysbuild/cmake/modules/sysbuild_kconfig.cmake @@ -50,6 +50,10 @@ set(KCONFIG_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) set(AUTOCONF_H ${CMAKE_CURRENT_BINARY_DIR}/autoconf.h) set(CONF_FILE ${SB_CONF_FILE}) set(BOARD_DEFCONFIG "${CMAKE_CURRENT_BINARY_DIR}/empty.conf") +if(DEFINED BOARD_REVISION) + set(BOARD_REVISION_CONFIG "${CMAKE_CURRENT_BINARY_DIR}/empty.conf") +endif() + list(APPEND ZEPHYR_KCONFIG_MODULES_DIR BOARD=${BOARD}) set(KCONFIG_NAMESPACE SB_CONFIG)