Skip to content

Commit f28da0e

Browse files
authored
Merge pull request #61 from choco-technologies/copilot/extend-module-customization-options-again
Add configurable main module name and extra DMD file inputs via CMake parameters
2 parents 96665e6 + 602b55b commit f28da0e

2 files changed

Lines changed: 22 additions & 1 deletion

File tree

CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ set(BOARD "" CACHE STRING "Board name (optional). If set, TARGET is derived from
1111
set(STARTUP_DMP_FILE "" CACHE FILEPATH "Optional startup.dmp file to embed in ROM")
1212
set(USER_DATA_FILE "" CACHE FILEPATH "Optional user_data file to embed in ROM")
1313
set(DMBOOT_CONFIG_DIR "${CMAKE_BINARY_DIR}/configs" CACHE PATH "Config directory to mount as /configs/ using dmffs (defaults to build/configs)")
14+
set(DMBOOT_MAIN_MODULE "dmell" CACHE STRING "Name of the main module to start after boot")
15+
set(DMBOOT_EXTRA_FLASH_DMD_FILES "" CACHE STRING "Additional flash.dmd files to include (semicolon-separated list of absolute paths)")
16+
set(DMBOOT_EXTRA_SDCARD_DMD_FILES "" CACHE STRING "Additional sdcard.dmd files to include (semicolon-separated list of absolute paths)")
1417
option(DMBOOT_EMULATION "Enable Renode emulation mode" OFF)
1518

1619
# ======================================================================

modules/CMakeLists.txt

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,15 @@ if(BOARD)
2323
endif()
2424
endif()
2525

26+
# Extra flash modules from cmake parameter
27+
foreach(_EXTRA_FLASH_DMD IN LISTS DMBOOT_EXTRA_FLASH_DMD_FILES)
28+
if(EXISTS "${_EXTRA_FLASH_DMD}")
29+
list(APPEND DMBOOT_FLASH_DMD_FILES "${_EXTRA_FLASH_DMD}")
30+
else()
31+
message(WARNING "Extra flash.dmd file not found: ${_EXTRA_FLASH_DMD}")
32+
endif()
33+
endforeach()
34+
2635
# ======================================================================
2736
# Collecting sdcard.dmd files (common + MCU + board)
2837
# ======================================================================
@@ -48,6 +57,15 @@ if(BOARD)
4857
endif()
4958
endif()
5059

60+
# Extra sdcard modules from cmake parameter
61+
foreach(_EXTRA_SDCARD_DMD IN LISTS DMBOOT_EXTRA_SDCARD_DMD_FILES)
62+
if(EXISTS "${_EXTRA_SDCARD_DMD}")
63+
list(APPEND DMBOOT_SDCARD_DMD_FILES "${_EXTRA_SDCARD_DMD}")
64+
else()
65+
message(WARNING "Extra sdcard.dmd file not found: ${_EXTRA_SDCARD_DMD}")
66+
endif()
67+
endforeach()
68+
5169
# ======================================================================
5270
# Downloading modules from DMD
5371
# ======================================================================
@@ -141,7 +159,7 @@ add_custom_command(
141159
COMMAND ${CMAKE_COMMAND} -E echo "Checking if modules directory contains files..."
142160
COMMAND ${CMAKE_COMMAND} -E echo "Contents of ${DMBOOT_MODULES_OUT_DIR}:"
143161
COMMAND ls -la ${DMBOOT_MODULES_OUT_DIR} || ${CMAKE_COMMAND} -E echo "Directory is empty or does not exist"
144-
COMMAND bash -c "if ls ${DMBOOT_MODULES_OUT_DIR}/*.dmf 1> /dev/null 2>&1; then ${TODMP} modules ${DMBOOT_MODULES_OUT_DIR} ${DMBOOT_MODULES_DMP} dmell; ls ${DMBOOT_MODULES_OUT_DIR}/*.dmf; else echo 'No .dmf files found'; fi"
162+
COMMAND bash -c "if ls ${DMBOOT_MODULES_OUT_DIR}/*.dmf 1> /dev/null 2>&1; then ${TODMP} modules ${DMBOOT_MODULES_OUT_DIR} ${DMBOOT_MODULES_DMP} ${DMBOOT_MAIN_MODULE}; ls ${DMBOOT_MODULES_OUT_DIR}/*.dmf; else echo 'No .dmf files found'; fi"
145163
DEPENDS download_modules
146164
COMMENT "Creating modules dmp file from flash modules (if any exist)..."
147165
VERBATIM

0 commit comments

Comments
 (0)