message(STATUS "Usb path: ${USB_BASE_PATH}")

find_package(DeviceUSB COMPONENTS CDC REQUIRED)

add_library(csp_f413xx_usb_cdc INTERFACE)

target_sources(csp_f413xx_usb_cdc INTERFACE
    ${CMAKE_CURRENT_SOURCE_DIR}/usb.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/cdc/conf/usbd_conf.c
    ${CMAKE_CURRENT_SOURCE_DIR}/cdc/src/usbd_cdc_if.c
    ${CMAKE_CURRENT_SOURCE_DIR}/cdc/src/usbd_desc.c
)

target_include_directories(csp_f413xx_usb_cdc INTERFACE
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${CMAKE_CURRENT_SOURCE_DIR}/cdc/conf
    ${CMAKE_CURRENT_SOURCE_DIR}/cdc/src
)

target_link_libraries(csp_f413xx_usb_cdc INTERFACE
    HAL::STM32::F4::PCD
    HAL::STM32::F4::PCDEx
    HAL::STM32::F4::LL_USB
    CSP::F413xx::CORE
    USB::DEVICE::CDC
)

target_compile_definitions(csp_f413xx_usb_cdc INTERFACE
    -DHAL_PCD_MODULE_ENABLED
)

add_library(CSP::F413xx::USB::CDC ALIAS csp_f413xx_usb_cdc)
