cmake_minimum_required(VERSION 3.13)

set(PICO_BOARD pico2)

include(pico_sdk_import.cmake)

project(picomap C CXX ASM)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 23)
pico_sdk_init()

add_executable(picomap
	picomap.cpp
	lib/w6300/wizchip_spi.c
	lib/w6300/wizchip_qspi_pio.c
	lib/w6300/ioLibrary/wizchip_conf.c
	lib/w6300/ioLibrary/W6300/w6300.c
	lib/w6300/ioLibrary/socket.c
)

target_include_directories(picomap PRIVATE
	include
	lib/w6300
	lib/w6300/ioLibrary
	lib/w6300/ioLibrary/W6300
)

target_compile_definitions(picomap PRIVATE
	_WIZCHIP_=W6300
	DEVICE_BOARD_NAME=W6300_EVB_PICO2
	_WIZCHIP_QSPI_MODE_=QSPI_QUAD_MODE
)

pico_generate_pio_header(picomap ${CMAKE_CURRENT_LIST_DIR}/lib/w6300/wizchip_qspi_pio.pio)

pico_enable_stdio_usb(picomap 1)
pico_enable_stdio_uart(picomap 0)

pico_add_extra_outputs(picomap)

target_link_libraries(picomap pico_stdlib hardware_pio hardware_spi hardware_dma hardware_clocks)
