Skip to content

Commit c76fd63

Browse files
committed
[nrf fromlist] sysbuild: Allow to use file suffix DTS overlays
Allow to add an image-specific DTS overlay, that is applied based on the FILE_SUFFIX. Up to this point, it was possible to specify such Kconfig files (sysbuild/<image>_<file_suffix>.conf), but it did not work with dts overlays (sysbuild/<image>_<file_suffix>.overlay). This commit aligns the logic of finding configuration files for both scenarios mentioned above. Ref: NCSDK-NONE Upstream PR #: 90643 Signed-off-by: Tomasz Chyrowicz <tomasz.chyrowicz@nordicsemi.no>
1 parent 8bcc6ab commit c76fd63

File tree

1 file changed

+19
-8
lines changed

1 file changed

+19
-8
lines changed

share/sysbuild/cmake/modules/sysbuild_extensions.cmake

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ function(ExternalZephyrProject_Add)
261261
set(sysbuild_image_conf_dir ${APP_DIR}/sysbuild)
262262
set(sysbuild_image_name_conf_dir ${APP_DIR}/sysbuild/${ZBUILD_APPLICATION})
263263
# User defined `-D<image>_CONF_FILE=<file.conf>` takes precedence over anything else.
264-
if (NOT ${ZBUILD_APPLICATION}_CONF_FILE)
264+
if(NOT ${ZBUILD_APPLICATION}_CONF_FILE)
265265
if(EXISTS ${sysbuild_image_name_conf_dir})
266266
set(${ZBUILD_APPLICATION}_APPLICATION_CONFIG_DIR ${sysbuild_image_name_conf_dir}
267267
CACHE INTERNAL "Application configuration dir controlled by sysbuild"
@@ -275,20 +275,31 @@ function(ExternalZephyrProject_Add)
275275
NAMES ${ZBUILD_APPLICATION}.conf SUFFIX ${FILE_SUFFIX}
276276
)
277277

278-
if (NOT (${ZBUILD_APPLICATION}_OVERLAY_CONFIG OR ${ZBUILD_APPLICATION}_EXTRA_CONF_FILE)
278+
if(NOT (${ZBUILD_APPLICATION}_OVERLAY_CONFIG OR ${ZBUILD_APPLICATION}_EXTRA_CONF_FILE)
279279
AND EXISTS ${sysbuild_image_conf_fragment}
280280
)
281281
set(${ZBUILD_APPLICATION}_EXTRA_CONF_FILE ${sysbuild_image_conf_fragment}
282282
CACHE INTERNAL "Kconfig fragment defined by main application"
283283
)
284284
endif()
285285

286-
# Check for overlay named <ZBUILD_APPLICATION>.overlay.
287-
set(sysbuild_image_dts_overlay ${sysbuild_image_conf_dir}/${ZBUILD_APPLICATION}.overlay)
288-
if (NOT ${ZBUILD_APPLICATION}_DTC_OVERLAY_FILE AND EXISTS ${sysbuild_image_dts_overlay})
289-
set(${ZBUILD_APPLICATION}_DTC_OVERLAY_FILE ${sysbuild_image_dts_overlay}
290-
CACHE INTERNAL "devicetree overlay file defined by main application"
291-
)
286+
if(NOT ${ZBUILD_APPLICATION}_DTC_OVERLAY_FILE)
287+
# Check for overlay named <ZBUILD_APPLICATION>.overlay.
288+
set(sysbuild_image_dts_overlay_files ${sysbuild_image_conf_dir}/${ZBUILD_APPLICATION}.overlay)
289+
290+
# Check for overlay named <ZBUILD_APPLICATION>_<FILE_SUFFIX>.overlay.
291+
if(FILE_SUFFIX)
292+
list(PREPEND sysbuild_image_dts_overlay_files ${sysbuild_image_conf_dir}/${ZBUILD_APPLICATION}_${FILE_SUFFIX}.overlay)
293+
endif()
294+
295+
foreach(sysbuild_image_dts_overlay_files overlay_file)
296+
if(EXISTS ${overlay_file})
297+
set(${ZBUILD_APPLICATION}_DTC_OVERLAY_FILE ${overlay_file}
298+
CACHE INTERNAL "devicetree overlay file defined by main application"
299+
)
300+
break()
301+
endif()
302+
endforeach()
292303
endif()
293304
endif()
294305

0 commit comments

Comments
 (0)