Pico_USB_Tests/CMakeLists.txt

78 lines
1.6 KiB
CMake

cmake_minimum_required(VERSION 3.13)
# Explicitely define board
set(PICO_BOARD pico)
# Include pico-sdk cmake support
include($ENV{PICO_SDK_PATH}/external/pico_sdk_import.cmake)
project(Pico_USB_Tests C CXX ASM)
set(CMAKE_C_STANDARD 17)
set(CMAKE_CXX_STANDARD 17)
pico_sdk_init()
# Executables
add_executable(Pico_Host)
add_executable(Pico_Device)
# Sources
target_sources(Pico_Host PUBLIC
src_host/main.c
src_host/cdc_app.c
)
target_sources(Pico_Device PUBLIC
src_device/main.c
src_device/usb_descriptor.c
)
# Flags
# Enable the reset interface
target_compile_definitions(Pico_Device PUBLIC
PICO_ENABLE_USB_RESET_VIA_VENDOR_INTERFACE=1
# use SDK MS_OS_20 descriptor, as this doesn't have a custom one
PICO_USB_RESET_SUPPORT_MS_OS_20_DESCRIPTOR=1
# pass the interface number to the SDK MS_OS_20 descriptor
PICO_USB_RESET_MS_OS_20_DESCRIPTOR_ITF=4
)
# Include paths
target_include_directories(Pico_Host PUBLIC
${CMAKE_CURRENT_LIST_DIR}/src_host/
)
target_include_directories(Pico_Device PUBLIC
${CMAKE_CURRENT_LIST_DIR}/src_device/
)
# Libs
target_link_libraries(Pico_Host
pico_stdlib
tinyusb_board
tinyusb_host
)
target_link_libraries(Pico_Device
pico_stdlib
tinyusb_board
tinyusb_device
)
pico_enable_stdio_usb(Pico_Device 1)
# Outputs
pico_add_extra_outputs(Pico_Host)
pico_add_extra_outputs(Pico_Device)
# Flash targets
add_custom_target(Flash_Host
DEPENDS Pico_Host
COMMAND picotool load -f ${PROJECT_BINARY_DIR}/Pico_Host.uf2
)
add_custom_target(Flash_Device
DEPENDS Pico_Device
COMMAND picotool load -f ${PROJECT_BINARY_DIR}/Pico_Device.uf2
)