cmake_minimum_required(VERSION 3.20)
set(PICO_BOARD waveshare_rp2040_zero CACHE STRING "Target board")
set(PICO_NO_PICOTOOL 1 CACHE BOOL "Python UF2 conversion")
if(NOT PICO_SDK_PATH)
  set(PICO_SDK_PATH "${CMAKE_CURRENT_LIST_DIR}/vendor/pico-sdk")
endif()
include(${PICO_SDK_PATH}/external/pico_sdk_import.cmake)
project(modi_psx_adapter C CXX ASM)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)
if(MODI_PIOASM)
  add_executable(pioasm IMPORTED GLOBAL)
  set_target_properties(pioasm PROPERTIES IMPORTED_LOCATION "${MODI_PIOASM}")
endif()
pico_sdk_init()
set(MODI_USB_VID 0x1209 CACHE STRING "PRIVATE TEST ONLY; replace for distribution")
set(MODI_USB_PID 0x0001 CACHE STRING "pid.codes private test PID; not unique")
add_executable(modi_psx_adapter_rp2040zero
  src/main.c src/psx_transport.c src/psx_parser.c src/usb_descriptors.c src/lab_bus.c src/psx_init_policy.c)
target_include_directories(modi_psx_adapter_rp2040zero PRIVATE src)
target_compile_definitions(modi_psx_adapter_rp2040zero PRIVATE
  MODI_USB_VID=${MODI_USB_VID} MODI_USB_PID=${MODI_USB_PID})
target_compile_options(modi_psx_adapter_rp2040zero PRIVATE -Wall -Wextra)
target_link_libraries(modi_psx_adapter_rp2040zero PRIVATE
  pico_stdlib pico_unique_id hardware_pio hardware_dma tinyusb_device)
pico_generate_pio_header(modi_psx_adapter_rp2040zero ${CMAKE_CURRENT_SOURCE_DIR}/src/psx.pio)
pico_enable_stdio_usb(modi_psx_adapter_rp2040zero 0)
pico_enable_stdio_uart(modi_psx_adapter_rp2040zero 0)
pico_add_extra_outputs(modi_psx_adapter_rp2040zero)
add_custom_command(TARGET modi_psx_adapter_rp2040zero POST_BUILD
  COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/tools/bin_to_uf2.py
  ${CMAKE_CURRENT_BINARY_DIR}/modi_psx_adapter_rp2040zero.bin
  ${CMAKE_CURRENT_BINARY_DIR}/modi_psx_adapter_rp2040zero.uf2
  VERBATIM)
