CMakeLists.txt 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. idf_component_register(REQUIRES esp_rom freertos vfs soc)
  2. if(CONFIG_USB_ENABLED)
  3. ### variables ###
  4. #################
  5. set(compile_options
  6. "-DCFG_TUSB_MCU=OPT_MCU_ESP32S2"
  7. "-DCFG_TUSB_DEBUG=${CONFIG_USB_DEBUG_LEVEL}"
  8. "-Wno-type-limits" # needed for the vanila tinyusb with turned off classes
  9. )
  10. idf_component_get_property(FREERTOS_ORIG_INCLUDE_PATH freertos
  11. ORIG_INCLUDE_PATH)
  12. set(includes_private
  13. # tusb:
  14. "${COMPONENT_DIR}/tinyusb/hw/bsp/"
  15. "${COMPONENT_DIR}/tinyusb/src/"
  16. "${COMPONENT_DIR}/tinyusb/src/device"
  17. # espressif:
  18. "${COMPONENT_DIR}/additions/include_private"
  19. )
  20. set(includes_public
  21. # tusb:
  22. "${FREERTOS_ORIG_INCLUDE_PATH}"
  23. "${COMPONENT_DIR}/tinyusb/src/"
  24. # espressif:
  25. "${COMPONENT_DIR}/additions/include")
  26. set(srcs
  27. # espressif:
  28. "${COMPONENT_DIR}/additions/src/descriptors_control.c"
  29. "${COMPONENT_DIR}/additions/src/tinyusb.c"
  30. "${COMPONENT_DIR}/additions/src/tusb_tasks.c"
  31. "${COMPONENT_DIR}/additions/src/usb_descriptors.c"
  32. # tusb:
  33. "${COMPONENT_DIR}/tinyusb/src/portable/espressif/esp32s2/dcd_esp32s2.c"
  34. "${COMPONENT_DIR}/tinyusb/src/class/cdc/cdc_device.c"
  35. "${COMPONENT_DIR}/tinyusb/src/class/hid/hid_device.c"
  36. "${COMPONENT_DIR}/tinyusb/src/class/midi/midi_device.c"
  37. "${COMPONENT_DIR}/tinyusb/src/class/msc/msc_device.c"
  38. "${COMPONENT_DIR}/tinyusb/src/common/tusb_fifo.c"
  39. "${COMPONENT_DIR}/tinyusb/src/device/usbd_control.c"
  40. "${COMPONENT_DIR}/tinyusb/src/device/usbd.c"
  41. "${COMPONENT_DIR}/tinyusb/src/tusb.c")
  42. # cdc stuff if turned on
  43. if(CONFIG_USB_CDC_ENABLED)
  44. list(APPEND srcs
  45. "${COMPONENT_DIR}/additions/src/cdc.c"
  46. "${COMPONENT_DIR}/additions/src/tusb_cdc_acm.c"
  47. "${COMPONENT_DIR}/additions/src/tusb_console.c"
  48. "${COMPONENT_DIR}/additions/src/vfs_tinyusb.c")
  49. endif()
  50. ### tinyusb lib ###
  51. ###################
  52. add_library(tinyusb STATIC ${srcs})
  53. target_include_directories(
  54. tinyusb
  55. PUBLIC ${includes_public}
  56. PRIVATE ${includes_private})
  57. target_compile_options(tinyusb PRIVATE ${compile_options})
  58. target_link_libraries(${COMPONENT_TARGET} INTERFACE tinyusb)
  59. endif()