Skip to content

Commit e4cec7b

Browse files
CopilotJohnAmadis
andcommitted
Add main module download via dmf-get at end of installation
Co-authored-by: JohnAmadis <17320783+JohnAmadis@users.noreply.github.com>
1 parent f304944 commit e4cec7b

1 file changed

Lines changed: 40 additions & 0 deletions

File tree

modules/CMakeLists.txt

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,21 @@ endif()
7777
set(DMBOOT_MODULES_OUT_DIR "${CMAKE_BINARY_DIR}/dmf")
7878
set(DMBOOT_MODULES_MARKER_FILE "${DMBOOT_MODULES_OUT_DIR}/.download_complete")
7979

80+
# Helper macro to append main module download commands to a list
81+
macro(append_main_module_download_commands LIST_VAR)
82+
if(DMBOOT_MANIFEST_URL)
83+
list(APPEND ${LIST_VAR}
84+
COMMAND ${CMAKE_COMMAND} -E echo "Downloading main module ${DMBOOT_MAIN_MODULE} (manifest: ${DMBOOT_MANIFEST_URL})..."
85+
COMMAND ${DMF_GET} ${DMBOOT_MAIN_MODULE} -m "${DMBOOT_MANIFEST_URL}" -o "${DMBOOT_MODULES_OUT_DIR}" -t "${DMOD_TOOLS_NAME}" --cpu-family "${DMBOOT_MCU_SERIES}" -y --type dmf --config-dir "${DMBOOT_CONFIG_DIR}"
86+
)
87+
else()
88+
list(APPEND ${LIST_VAR}
89+
COMMAND ${CMAKE_COMMAND} -E echo "Downloading main module ${DMBOOT_MAIN_MODULE}..."
90+
COMMAND ${DMF_GET} ${DMBOOT_MAIN_MODULE} -o "${DMBOOT_MODULES_OUT_DIR}" -t "${DMOD_TOOLS_NAME}" --cpu-family "${DMBOOT_MCU_SERIES}" -y --type dmf --config-dir "${DMBOOT_CONFIG_DIR}"
91+
)
92+
endif()
93+
endmacro()
94+
8095
if(DMBOOT_FLASH_DMD_FILES)
8196
# Build a sequence of download commands, one per flash.dmd file
8297
set(_FLASH_DOWNLOAD_COMMANDS
@@ -96,6 +111,12 @@ if(DMBOOT_FLASH_DMD_FILES)
96111
)
97112
endif()
98113
endforeach()
114+
115+
# Download main module if specified (at the end of installation)
116+
if(DMBOOT_MAIN_MODULE)
117+
append_main_module_download_commands(_FLASH_DOWNLOAD_COMMANDS)
118+
endif()
119+
99120
list(APPEND _FLASH_DOWNLOAD_COMMANDS
100121
COMMAND ${CMAKE_COMMAND} -E touch "${DMBOOT_MODULES_MARKER_FILE}"
101122
)
@@ -111,6 +132,25 @@ if(DMBOOT_FLASH_DMD_FILES)
111132
DEPENDS "${DMBOOT_MODULES_MARKER_FILE}"
112133
)
113134
message(STATUS "Flash DMD files: ${DMBOOT_FLASH_DMD_FILES}")
135+
elseif(DMBOOT_MAIN_MODULE)
136+
# No flash.dmd files configured. Downloading main module only.
137+
message(STATUS "No flash.dmd files configured. Downloading main module only: ${DMBOOT_MAIN_MODULE}")
138+
set(_MAIN_MODULE_COMMANDS
139+
COMMAND ${CMAKE_COMMAND} -E make_directory "${DMBOOT_MODULES_OUT_DIR}"
140+
)
141+
append_main_module_download_commands(_MAIN_MODULE_COMMANDS)
142+
list(APPEND _MAIN_MODULE_COMMANDS
143+
COMMAND ${CMAKE_COMMAND} -E touch "${DMBOOT_MODULES_MARKER_FILE}"
144+
)
145+
add_custom_command(
146+
OUTPUT "${DMBOOT_MODULES_MARKER_FILE}"
147+
${_MAIN_MODULE_COMMANDS}
148+
COMMENT "Downloading main module: ${DMBOOT_MAIN_MODULE}"
149+
VERBATIM
150+
)
151+
add_custom_target(download_modules ALL
152+
DEPENDS "${DMBOOT_MODULES_MARKER_FILE}"
153+
)
114154
else()
115155
message(WARNING "No flash.dmd files found. Skipping flash module download.")
116156
add_custom_target(download_modules ALL)

0 commit comments

Comments
 (0)