summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHa Thach <[email protected]>2023-07-18 23:54:33 +0700
committerGitHub <[email protected]>2023-07-18 23:54:33 +0700
commit6c7c9f2ef5a80d5a6879e9c3558162188c6cf889 (patch)
tree264b9c42bb8b1e554766d68cd30748aaa3b5ca9c
parente3d438528037f56ccf315bbd627d3feb313b0dd3 (diff)
parent08a1892801088f2b3df74cc2bdaeeeadf9e8624b (diff)
Merge pull request #2152 from kilograham/is_pico_pio_usb_supported
add is_compiler_supported_by_pico_pio_usb() for rp2040
-rw-r--r--hw/bsp/rp2040/family.cmake14
1 files changed, 12 insertions, 2 deletions
diff --git a/hw/bsp/rp2040/family.cmake b/hw/bsp/rp2040/family.cmake
index b986b3ebb..17900dd7a 100644
--- a/hw/bsp/rp2040/family.cmake
+++ b/hw/bsp/rp2040/family.cmake
@@ -183,6 +183,15 @@ function(family_add_pico_pio_usb TARGET)
target_link_libraries(${TARGET} PUBLIC tinyusb_pico_pio_usb)
endfunction()
+# since Pico-PIO_USB compiler support may lag, and change from version to version, add a function that pico-sdk/pico-examples
+# can check (if present) in case the user has updated their TinyUSB
+function(is_compiler_supported_by_pico_pio_usb OUTVAR)
+ if ((NOT CMAKE_C_COMPILER_ID STREQUAL "GNU"))
+ SET(${OUTVAR} 0 PARENT_SCOPE)
+ else()
+ set(${OUTVAR} 1 PARENT_SCOPE)
+ endif()
+endfunction()
function(family_configure_host_example TARGET RTOS)
family_configure_target(${TARGET} ${RTOS})
@@ -191,8 +200,9 @@ function(family_configure_host_example TARGET RTOS)
# For rp2040 enable pico-pio-usb
if (TARGET tinyusb_pico_pio_usb)
- # code does not compile with non GCC, or GCC 11.3+
- if (CMAKE_C_COMPILER_ID STREQUAL "GNU" AND NOT CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 11.3)
+ # Pico-PIO-USB does not compile with all pico-sdk supported compilers, so check before enabling it
+ is_compiler_supported_by_pico_pio_usb(PICO_PIO_USB_COMPILER_SUPPORTED)
+ if (PICO_PIO_USB_COMPILER_SUPPORTED)
family_add_pico_pio_usb(${PROJECT})
endif()
endif()