cmake_minimum_required(VERSION 3.13)

include(pico_sdk_import.cmake)

project(PicoWCommLib C CXX ASM)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)

# Définir explicitement la carte comme Pico W
set(PICO_BOARD pico_w)
if(NOT DEFINED PICO_BOARD)
    add_definitions(-DPICO_BOARD=${PICO_BOARD})
endif()

pico_sdk_init()

add_executable(PicoWCommLib
  src/test_connection.c
  src/wifi_operator/wifi_operator.c
  src/udp/udp_client.c
  src/udp/udp_server.c
)

target_include_directories(PicoWCommLib PRIVATE
    ${CMAKE_CURRENT_LIST_DIR}/src
    ${CMAKE_CURRENT_LIST_DIR}/src/SerialOutput
    ${CMAKE_CURRENT_LIST_DIR}/src/WifiOperator
    ${CMAKE_CURRENT_LIST_DIR}/src/udp)

target_link_libraries(PicoWCommLib
  pico_stdlib
  pico_multicore
  hardware_uart
  pico_cyw43_arch_lwip_poll
)

# Configuration du stdio
pico_enable_stdio_usb(PicoWCommLib 1)
pico_enable_stdio_uart(PicoWCommLib 1)

pico_add_extra_outputs(PicoWCommLib)

add_custom_target(Flash
    DEPENDS PicoWCommLib
    COMMAND picotool load -f ${PROJECT_BINARY_DIR}/PicoWCommLib.uf2
)
