Skip to content

Commit d1a1c9f

Browse files
authored
Support multiple .pio file in pico_generate_pio_header (#2188)
1 parent 700f861 commit d1a1c9f

File tree

1 file changed

+24
-17
lines changed

1 file changed

+24
-17
lines changed

tools/CMakeLists.txt

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ endfunction()
155155

156156
# Generate pio header and include it in the build
157157
# PICO_CMAKE_CONFIG: PICO_DEFAULT_PIOASM_OUTPUT_FORMAT, Default output format used by pioasm when using pico_generate_pio_header, type=string, default=c-sdk, group=build
158-
function(pico_generate_pio_header TARGET PIO)
158+
function(pico_generate_pio_header TARGET)
159159
pico_init_pioasm()
160160
cmake_parse_arguments(pico_generate_pio_header "" "OUTPUT_FORMAT;OUTPUT_DIR" "" ${ARGN} )
161161

@@ -173,24 +173,31 @@ function(pico_generate_pio_header TARGET PIO)
173173
else()
174174
set(HEADER_DIR "${CMAKE_CURRENT_BINARY_DIR}")
175175
endif()
176-
get_filename_component(PIO_NAME ${PIO} NAME)
177-
set(HEADER "${HEADER_DIR}/${PIO_NAME}.h")
178-
#message("Will generate ${HEADER}")
179-
get_filename_component(HEADER_GEN_TARGET ${PIO} NAME_WE)
180-
set(HEADER_GEN_TARGET "${TARGET}_${HEADER_GEN_TARGET}_pio_h")
181176

182-
add_custom_target(${HEADER_GEN_TARGET} DEPENDS ${HEADER})
177+
# Loop through each PIO file
178+
foreach(PIO ${pico_generate_pio_header_UNPARSED_ARGUMENTS})
179+
get_filename_component(PIO_NAME ${PIO} NAME)
180+
set(HEADER "${HEADER_DIR}/${PIO_NAME}.h")
181+
#message("Will generate ${HEADER}")
182+
get_filename_component(HEADER_GEN_TARGET ${PIO} NAME_WE)
183+
set(HEADER_GEN_TARGET "${TARGET}_${HEADER_GEN_TARGET}_pio_h")
184+
185+
add_custom_target(${HEADER_GEN_TARGET} DEPENDS ${HEADER})
186+
187+
if (PICO_PIO_VERSION)
188+
set(VERSION_STRING "${PICO_PIO_VERSION}")
189+
else()
190+
set(VERSION_STRING "0")
191+
endif()
192+
193+
add_custom_command(OUTPUT ${HEADER}
194+
DEPENDS ${PIO}
195+
COMMAND pioasm -o ${OUTPUT_FORMAT} -v ${VERSION_STRING} ${PIO} ${HEADER}
196+
VERBATIM)
197+
198+
add_dependencies(${TARGET} ${HEADER_GEN_TARGET})
199+
endforeach()
183200

184-
if (PICO_PIO_VERSION)
185-
set(VERSION_STRING "${PICO_PIO_VERSION}")
186-
else()
187-
set(VERSION_STRING "0")
188-
endif()
189-
add_custom_command(OUTPUT ${HEADER}
190-
DEPENDS ${PIO}
191-
COMMAND pioasm -o ${OUTPUT_FORMAT} -v ${VERSION_STRING} ${PIO} ${HEADER}
192-
VERBATIM)
193-
add_dependencies(${TARGET} ${HEADER_GEN_TARGET})
194201
get_target_property(target_type ${TARGET} TYPE)
195202
if ("INTERFACE_LIBRARY" STREQUAL "${target_type}")
196203
target_include_directories(${TARGET} INTERFACE ${HEADER_DIR})

0 commit comments

Comments
 (0)