fix_usb_device_uac_platformio.cmake 1.2 KB

123456789101112131415161718192021222324252627
  1. # Work around espressif/usb_device_uac exporting its descriptor source as a
  2. # PUBLIC TinyUSB source. PlatformIO/SCons then sees usb_descriptors.c twice:
  3. # once under TinyUSB and once under usb_device_uac with different compile flags.
  4. idf_build_get_property(build_components BUILD_COMPONENTS)
  5. set(tinyusb_component "")
  6. if(espressif__tinyusb IN_LIST build_components)
  7. set(tinyusb_component espressif__tinyusb)
  8. elseif(tinyusb IN_LIST build_components)
  9. set(tinyusb_component tinyusb)
  10. endif()
  11. if(tinyusb_component)
  12. idf_component_get_property(tusb_lib ${tinyusb_component} COMPONENT_LIB)
  13. foreach(source_property SOURCES INTERFACE_SOURCES)
  14. get_target_property(tusb_sources ${tusb_lib} ${source_property})
  15. if(tusb_sources)
  16. set(filtered_tusb_sources "")
  17. foreach(src IN LISTS tusb_sources)
  18. if(NOT src MATCHES "usb_device_uac[/\\\\]tusb[/\\\\]usb_descriptors\\.c$")
  19. list(APPEND filtered_tusb_sources "${src}")
  20. endif()
  21. endforeach()
  22. set_target_properties(${tusb_lib} PROPERTIES
  23. ${source_property} "${filtered_tusb_sources}")
  24. endif()
  25. endforeach()
  26. endif()