summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt104
1 files changed, 49 insertions, 55 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index e7e3125a2..21aa23d54 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -3,62 +3,56 @@
cmake_minimum_required(VERSION 3.17)
-if (NOT TARGET tinyusb_config)
- message(FATAL_ERROR "tinyusb_config target is not defined")
-endif()
+# Add tinyusb to a target
+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()
-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
- )
+set(TINYUSB_TARGET "tinyusb")
+set(TINYUSB_CONFIG_TARGET "tinyusb_config")
-target_include_directories(tinyusb PUBLIC
- ${CMAKE_CURRENT_LIST_DIR}
- )
+if (DEFINED TINYUSB_TARGET_PREFIX)
+ set(TINYUSB_TARGET "${TINYUSB_TARGET_PREFIX}_${TINYUSB_TARGET}")
+ set(TINYUSB_CONFIG_TARGET "${TINYUSB_TARGET_PREFIX}_${TINYUSB_CONFIG_TARGET}")
+endif ()
-target_link_libraries(tinyusb PUBLIC
- tinyusb_config
- )
+if (DEFINED TINYUSB_TARGET_SUFFIX)
+ set(TINYUSB_TARGET "${TINYUSB_TARGET}_${TINYUSB_TARGET_SUFFIX}")
+ set(TINYUSB_CONFIG_TARGET "${TINYUSB_CONFIG_TARGET}_${TINYUSB_TARGET_SUFFIX}")
+endif ()
+
+add_library(${TINYUSB_TARGET} STATIC)
+add_tinyusb(${TINYUSB_TARGET})
-#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()
+# Link with tinyusb_config target
+
+if (NOT TARGET ${TINYUSB_CONFIG_TARGET})
+ message(FATAL_ERROR "${TINYUSB_CONFIG_TARGET} target is not defined")
+endif()
+
+target_link_libraries(${TINYUSB_TARGET} PUBLIC
+ ${TINYUSB_CONFIG_TARGET}
+ )