# TODO make tinyusb as library that depends on 'tusb_config' interface that exposes the tusb_config.h file # This file is WIP and should not used yet cmake_minimum_required(VERSION 3.17) if (NOT TARGET tinyusb_config) message(FATAL_ERROR "tinyusb_config target is not defined") endif() add_library(tinyusb STATIC ${CMAKE_CURRENT_LIST_DIR}/tusb.c ${CMAKE_CURRENT_LIST_DIR}/common/tusb_fifo.c ${CMAKE_CURRENT_LIST_DIR}/device/usbd.c ${CMAKE_CURRENT_LIST_DIR}/device/usbd_control.c ${CMAKE_CURRENT_LIST_DIR}/class/audio/audio_device.c ${CMAKE_CURRENT_LIST_DIR}/class/cdc/cdc_device.c ${CMAKE_CURRENT_LIST_DIR}/class/dfu/dfu_device.c ${CMAKE_CURRENT_LIST_DIR}/class/dfu/dfu_rt_device.c ${CMAKE_CURRENT_LIST_DIR}/class/hid/hid_device.c ${CMAKE_CURRENT_LIST_DIR}/class/midi/midi_device.c ${CMAKE_CURRENT_LIST_DIR}/class/msc/msc_device.c ${CMAKE_CURRENT_LIST_DIR}/class/net/ecm_rndis_device.c ${CMAKE_CURRENT_LIST_DIR}/class/net/ncm_device.c ${CMAKE_CURRENT_LIST_DIR}/class/usbtmc/usbtmc_device.c ${CMAKE_CURRENT_LIST_DIR}/class/vendor/vendor_device.c ${CMAKE_CURRENT_LIST_DIR}/class/video/video_device.c ) target_include_directories(tinyusb PUBLIC ${CMAKE_CURRENT_LIST_DIR} ) target_link_libraries(tinyusb PUBLIC tinyusb_config ) function(add_tinyusb TARGET) target_sources(${TARGET} PUBLIC ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/tusb.c ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/common/tusb_fifo.c ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/device/usbd.c ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/device/usbd_control.c ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/class/audio/audio_device.c ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/class/cdc/cdc_device.c ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/class/dfu/dfu_device.c ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/class/dfu/dfu_rt_device.c ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/class/hid/hid_device.c ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/class/midi/midi_device.c ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/class/msc/msc_device.c ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/class/net/ecm_rndis_device.c ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/class/net/ncm_device.c ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/class/usbtmc/usbtmc_device.c ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/class/vendor/vendor_device.c ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/class/video/video_device.c ) target_include_directories(${TARGET} PUBLIC ${CMAKE_CURRENT_FUNCTION_LIST_DIR} ) # enable all possible warnings target_compile_options(${TARGET} PUBLIC ) endfunction()