mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-10-31 21:14:37 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			66 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| idf_component_register(REQUIRES esp_rom freertos vfs soc)
 | |
| 
 | |
| if(CONFIG_USB_ENABLED)
 | |
| 
 | |
|   ### variables ###
 | |
|   #################
 | |
|   set(compile_options
 | |
|       "-DCFG_TUSB_MCU=OPT_MCU_ESP32S2"
 | |
|       "-DCFG_TUSB_DEBUG=${CONFIG_USB_DEBUG_LEVEL}"
 | |
|       "-Wno-type-limits" # needed for the vanila tinyusb with turned off classes
 | |
|   )
 | |
|   idf_component_get_property(FREERTOS_ORIG_INCLUDE_PATH freertos
 | |
|                              ORIG_INCLUDE_PATH)
 | |
|   set(includes_private
 | |
|       # tusb:
 | |
|       "${COMPONENT_DIR}/tinyusb/hw/bsp/"
 | |
|       "${COMPONENT_DIR}/tinyusb/src/"
 | |
|       "${COMPONENT_DIR}/tinyusb/src/device"
 | |
|       # espressif:
 | |
|       "${COMPONENT_DIR}/additions/include_private"
 | |
|       )
 | |
| 
 | |
|   set(includes_public
 | |
|       # tusb:
 | |
|       "${FREERTOS_ORIG_INCLUDE_PATH}"
 | |
|       "${COMPONENT_DIR}/tinyusb/src/"
 | |
|       # espressif:
 | |
|       "${COMPONENT_DIR}/additions/include")
 | |
|   set(srcs
 | |
|       # espressif:
 | |
|       "${COMPONENT_DIR}/additions/src/descriptors_control.c"
 | |
|       "${COMPONENT_DIR}/additions/src/tinyusb.c"
 | |
|       "${COMPONENT_DIR}/additions/src/tusb_tasks.c"
 | |
|       "${COMPONENT_DIR}/additions/src/usb_descriptors.c"
 | |
|       # tusb:
 | |
|       "${COMPONENT_DIR}/tinyusb/src/portable/espressif/esp32s2/dcd_esp32s2.c"
 | |
|       "${COMPONENT_DIR}/tinyusb/src/class/cdc/cdc_device.c"
 | |
|       "${COMPONENT_DIR}/tinyusb/src/class/hid/hid_device.c"
 | |
|       "${COMPONENT_DIR}/tinyusb/src/class/midi/midi_device.c"
 | |
|       "${COMPONENT_DIR}/tinyusb/src/class/msc/msc_device.c"
 | |
|       "${COMPONENT_DIR}/tinyusb/src/class/vendor/vendor_device.c"
 | |
|       "${COMPONENT_DIR}/tinyusb/src/common/tusb_fifo.c"
 | |
|       "${COMPONENT_DIR}/tinyusb/src/device/usbd_control.c"
 | |
|       "${COMPONENT_DIR}/tinyusb/src/device/usbd.c"
 | |
|       "${COMPONENT_DIR}/tinyusb/src/tusb.c")
 | |
|   # cdc stuff if turned on
 | |
|   if(CONFIG_USB_CDC_ENABLED)
 | |
|     list(APPEND srcs
 | |
|         "${COMPONENT_DIR}/additions/src/cdc.c"
 | |
|         "${COMPONENT_DIR}/additions/src/tusb_cdc_acm.c"
 | |
|          "${COMPONENT_DIR}/additions/src/tusb_console.c"
 | |
|          "${COMPONENT_DIR}/additions/src/vfs_tinyusb.c")
 | |
|   endif()
 | |
| 
 | |
|   ### tinyusb lib ###
 | |
|   ###################
 | |
|   add_library(tinyusb STATIC ${srcs})
 | |
|   target_include_directories(
 | |
|     tinyusb
 | |
|     PUBLIC ${includes_public}
 | |
|     PRIVATE ${includes_private})
 | |
|   target_compile_options(tinyusb PRIVATE ${compile_options})
 | |
|   target_link_libraries(${COMPONENT_TARGET} INTERFACE tinyusb)
 | |
| 
 | |
| endif()
 | 
