Skip to content

Commit 824613e

Browse files
committed
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 Signed-off-by: Tomasz Chyrowicz <tomasz.chyrowicz@nordicsemi.no>
1 parent 6131774 commit 824613e

File tree

1 file changed

+26
-9
lines changed

1 file changed

+26
-9
lines changed

share/sysbuild/cmake/modules/sysbuild_extensions.cmake

Lines changed: 26 additions & 9 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,21 +275,38 @@ 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-
)
292-
endif()
286+
while(TRUE)
287+
# Check for overlay named <ZBUILD_APPLICATION>_<FILE_SUFFIX>.overlay.
288+
if(DEFINED FILE_SUFFIX)
289+
set(sysbuild_image_dts_overlay ${sysbuild_image_conf_dir}/${ZBUILD_APPLICATION}_${FILE_SUFFIX}.overlay)
290+
if(NOT ${ZBUILD_APPLICATION}_DTC_OVERLAY_FILE AND EXISTS ${sysbuild_image_dts_overlay})
291+
set(${ZBUILD_APPLICATION}_DTC_OVERLAY_FILE ${sysbuild_image_dts_overlay}
292+
CACHE INTERNAL "devicetree overlay file defined by main application"
293+
)
294+
break()
295+
endif()
296+
endif()
297+
298+
# Check for overlay named <ZBUILD_APPLICATION>.overlay.
299+
set(sysbuild_image_dts_overlay ${sysbuild_image_conf_dir}/${ZBUILD_APPLICATION}.overlay)
300+
if(NOT ${ZBUILD_APPLICATION}_DTC_OVERLAY_FILE AND EXISTS ${sysbuild_image_dts_overlay})
301+
set(${ZBUILD_APPLICATION}_DTC_OVERLAY_FILE ${sysbuild_image_dts_overlay}
302+
CACHE INTERNAL "devicetree overlay file defined by main application"
303+
)
304+
break()
305+
endif()
306+
307+
# No image-specific overrides found.
308+
break()
309+
endwhile()
293310
endif()
294311

295312
# Update ROOT variables with relative paths to use absolute paths based on

0 commit comments

Comments
 (0)