78 lines
1.6 KiB
CMake
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
|
|
)
|