From 5c4060743d86e6c256d51c03de363713033690b5 Mon Sep 17 00:00:00 2001 From: Torsten Rasmussen Date: Wed, 17 May 2023 13:09:50 +0200 Subject: [PATCH] sysbuild: update sysbuild to use EXTRA_CONF_FILE variable Align sysbuild with Zephyr CMake so that sysbuild supports SB_EXTRA_CONF_FILE. Keep support for the old SB_OVERLAY_CONFIG. This ensures that sysbuild is consistent with Zephyr CMake configuration file handling. Signed-off-by: Torsten Rasmussen --- share/sysbuild/cmake/modules/sysbuild_extensions.cmake | 8 +++++--- share/sysbuild/cmake/modules/sysbuild_kconfig.cmake | 10 +++++++++- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/share/sysbuild/cmake/modules/sysbuild_extensions.cmake b/share/sysbuild/cmake/modules/sysbuild_extensions.cmake index c0704900190..e01ca46d804 100644 --- a/share/sysbuild/cmake/modules/sysbuild_extensions.cmake +++ b/share/sysbuild/cmake/modules/sysbuild_extensions.cmake @@ -148,13 +148,15 @@ function(ExternalZephyrProject_Add) # The contents of these are appended to the image existing configuration # when user is not specifying custom fragments. if(NOT "${CONF_FILE_BUILD_TYPE}" STREQUAL "") - set(sysbuil_image_conf_fragment ${sysbuild_image_conf_dir}/${ZBUILD_APPLICATION}_${CONF_FILE_BUILD_TYPE}.conf) + set(sysbuild_image_conf_fragment ${sysbuild_image_conf_dir}/${ZBUILD_APPLICATION}_${CONF_FILE_BUILD_TYPE}.conf) else() set(sysbuild_image_conf_fragment ${sysbuild_image_conf_dir}/${ZBUILD_APPLICATION}.conf) endif() - if (NOT ${ZBUILD_APPLICATION}_OVERLAY_CONFIG AND EXISTS ${sysbuild_image_conf_fragment}) - set(${ZBUILD_APPLICATION}_OVERLAY_CONFIG ${sysbuild_image_conf_fragment} + if (NOT (${ZBUILD_APPLICATION}_OVERLAY_CONFIG OR ${ZBUILD_APPLICATION}_EXTRA_CONF_FILE) + AND EXISTS ${sysbuild_image_conf_fragment} + ) + set(${ZBUILD_APPLICATION}_EXTRA_CONF_FILE ${sysbuild_image_conf_fragment} CACHE INTERNAL "Kconfig fragment defined by main application" ) endif() diff --git a/share/sysbuild/cmake/modules/sysbuild_kconfig.cmake b/share/sysbuild/cmake/modules/sysbuild_kconfig.cmake index f8390877939..830ad326fd2 100644 --- a/share/sysbuild/cmake/modules/sysbuild_kconfig.cmake +++ b/share/sysbuild/cmake/modules/sysbuild_kconfig.cmake @@ -32,6 +32,14 @@ if(DEFINED SB_OVERLAY_CONFIG AND NOT IS_ABSOLUTE SB_OVERLAY_CONFIG) cmake_path(ABSOLUTE_PATH SB_OVERLAY_CONFIG BASE_DIRECTORY ${APP_DIR}) endif() +if(DEFINED SB_EXTRA_CONF_FILE AND NOT IS_ABSOLUTE SB_EXTRA_CONF_FILE) + cmake_path(ABSOLUTE_PATH SB_EXTRA_CONF_FILE BASE_DIRECTORY ${APP_DIR}) +endif() + +if(NOT DEFINED SB_EXTRA_CONF_FILE AND DEFINED SB_OVERLAY_CONFIG) + set(SB_EXTRA_CONF_FILE ${SB_OVERLAY_CONFIG}) +endif() + if(DEFINED SB_CONF_FILE AND NOT DEFINED CACHE{SB_CONF_FILE}) # We only want to set this in cache it has been defined and is not already there. set(SB_CONF_FILE ${SB_CONF_FILE} CACHE STRING "If desired, you can build the application with \ @@ -52,7 +60,7 @@ file(TOUCH ${CMAKE_CURRENT_BINARY_DIR}/empty.conf) set(APPLICATION_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) set(AUTOCONF_H ${CMAKE_CURRENT_BINARY_DIR}/autoconf.h) set(CONF_FILE ${SB_CONF_FILE}) -set(OVERLAY_CONFIG "${SB_OVERLAY_CONFIG}") +set(EXTRA_CONF_FILE "${SB_EXTRA_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")