73 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
cmake_minimum_required(VERSION 3.5)
 | 
						|
 | 
						|
# use directory name for project id
 | 
						|
get_filename_component(PROJECT ${CMAKE_CURRENT_SOURCE_DIR} NAME)
 | 
						|
 | 
						|
# TOP is absolute path to root directory of TinyUSB git repo
 | 
						|
set(TOP "../../..")
 | 
						|
get_filename_component(TOP "${TOP}" REALPATH)
 | 
						|
 | 
						|
# Check for -DFAMILY=
 | 
						|
if(NOT DEFINED FAMILY)
 | 
						|
  message(FATAL_ERROR "Invalid FAMILY specified")
 | 
						|
endif()
 | 
						|
 | 
						|
include(${TOP}/hw/bsp/${FAMILY}/family.cmake)
 | 
						|
project(${PROJECT})
 | 
						|
 | 
						|
if(FAMILY STREQUAL "rp2040")
 | 
						|
 | 
						|
pico_sdk_init()
 | 
						|
 | 
						|
add_executable(${PROJECT})
 | 
						|
 | 
						|
# TinyUSB Stack source
 | 
						|
set(SRC_TINYUSB
 | 
						|
	${TOP}/src/tusb.c
 | 
						|
	${TOP}/src/common/tusb_fifo.c
 | 
						|
	${TOP}/src/device/usbd.c
 | 
						|
	${TOP}/src/device/usbd_control.c
 | 
						|
	${TOP}/src/class/audio/audio_device.c
 | 
						|
	${TOP}/src/class/cdc/cdc_device.c
 | 
						|
	${TOP}/src/class/dfu/dfu_rt_device.c
 | 
						|
	${TOP}/src/class/hid/hid_device.c
 | 
						|
	${TOP}/src/class/midi/midi_device.c
 | 
						|
	${TOP}/src/class/msc/msc_device.c
 | 
						|
	${TOP}/src/class/net/net_device.c
 | 
						|
	${TOP}/src/class/usbtmc/usbtmc_device.c
 | 
						|
	${TOP}/src/class/vendor/vendor_device.c
 | 
						|
	${TOP}/src/portable/raspberrypi/${FAMILY}/dcd_rp2040.c
 | 
						|
	${TOP}/src/portable/raspberrypi/${FAMILY}/rp2040_usb.c
 | 
						|
)
 | 
						|
 | 
						|
# Example source
 | 
						|
set(SRC_EXAMPLE
 | 
						|
  src/main.c
 | 
						|
  src/msc_disk.c
 | 
						|
  src/usb_descriptors.c
 | 
						|
)
 | 
						|
 | 
						|
target_sources(${PROJECT} PUBLIC
 | 
						|
  ${SRC_EXAMPLE}
 | 
						|
  ${TOP}/hw/bsp/${FAMILY}/family.c
 | 
						|
  ${SRC_TINYUSB}
 | 
						|
)
 | 
						|
 | 
						|
target_include_directories(${PROJECT} PUBLIC
 | 
						|
  src/
 | 
						|
  ${TOP}/hw
 | 
						|
  ${TOP}/src
 | 
						|
  ${TOP}/hw/bsp/${FAMILY}/boards/${BOARD}
 | 
						|
)
 | 
						|
 | 
						|
target_compile_definitions(${PROJECT} PUBLIC
 | 
						|
  CFG_TUSB_MCU=OPT_MCU_RP2040
 | 
						|
  CFG_TUSB_OS=OPT_OS_PICO
 | 
						|
)
 | 
						|
 | 
						|
target_link_libraries(${PROJECT} pico_stdlib)
 | 
						|
 | 
						|
pico_add_extra_outputs(${PROJECT})
 | 
						|
 | 
						|
endif()
 |