summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhathach <[email protected]>2023-05-04 23:29:37 +0700
committerhathach <[email protected]>2023-05-04 23:29:37 +0700
commit8a9d2b4b759990f9609a33c313b154cc7314bec7 (patch)
tree06eab13a38fa61c7b52079b2bd0fa419906919d0
parent629717cd13730fa5f7543ce414ff11b5c175add0 (diff)
wip
-rw-r--r--examples/device/cdc_msc/CMakeLists.txt7
-rw-r--r--hw/bsp/imxrt/family.cmake17
-rw-r--r--src/CMakeLists.txt31
3 files changed, 53 insertions, 2 deletions
diff --git a/examples/device/cdc_msc/CMakeLists.txt b/examples/device/cdc_msc/CMakeLists.txt
index 7eddc2422..1115f51d1 100644
--- a/examples/device/cdc_msc/CMakeLists.txt
+++ b/examples/device/cdc_msc/CMakeLists.txt
@@ -29,6 +29,13 @@ target_include_directories(${PROJECT} PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/src
)
+# define tinyusb_config target
+add_library(tinyusb_config INTERFACE)
+
+target_include_directories(tinyusb_config INTERFACE
+ ${CMAKE_CURRENT_SOURCE_DIR}/src
+ )
+
# Configure compilation flags and libraries for the example... see the corresponding function
# in hw/bsp/FAMILY/family.cmake for details.
family_configure_device_example(${PROJECT})
diff --git a/hw/bsp/imxrt/family.cmake b/hw/bsp/imxrt/family.cmake
index 95c4c0415..c18fb01ab 100644
--- a/hw/bsp/imxrt/family.cmake
+++ b/hw/bsp/imxrt/family.cmake
@@ -73,9 +73,22 @@ function(family_configure_target TARGET)
${SDK_DIR}/drivers/lpuart
)
+ # define tinyusb_config target
+
+ #target_include_directories(tinyusb_config INTERFACE
+ # )
+
+ target_compile_definitions(tinyusb_config PUBLIC
+ )
+
# include tinyusb cmake
- include(${TOP}/src/CMakeLists.txt)
- add_tinyusb(${TARGET})
+ add_subdirectory(${TOP}/src ${CMAKE_CURRENT_BINARY_DIR}/tinyusb)
+ target_link_libraries(${TARGET} PUBLIC
+ tinyusb
+ )
+
+ #include(${TOP}/src/CMakeLists.txt)
+ #add_tinyusb(${TARGET})
endfunction()
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index a270ea8b7..ec7fe32c4 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -3,6 +3,37 @@
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