cmake_minimum_required(VERSION 3.13)

include(pico_sdk_import.cmake)

project(bootloader C CXX ASM)

pico_sdk_init()

if (NOT WIFI_SSID OR NOT WIFI_PASSWORD)
    message(FATAL_ERROR "Bitte WIFI_SSID und WIFI_PASSWORD per -D setzen")
endif()
if (NOT PICO_ID)
    message(FATAL_ERROR "Bitte PICO_ID per -DPICO_ID=<n> setzen")
endif()

add_executable(bootloader
    bootloader.c
)

target_compile_definitions(bootloader PRIVATE
    WIFI_SSID=\"${WIFI_SSID}\"
    WIFI_PASSWORD=\"${WIFI_PASSWORD}\"
    PICO_ID=${PICO_ID}
)

target_include_directories(bootloader PRIVATE ${CMAKE_CURRENT_LIST_DIR})

pico_set_linker_script(bootloader ${CMAKE_CURRENT_LIST_DIR}/memmap_bootloader.ld)

target_link_libraries(bootloader
    pico_stdlib
    pico_cyw43_arch_lwip_threadsafe_background
    pico_sha256
    hardware_flash
    hardware_sync
)

pico_enable_stdio_usb(bootloader 1)
pico_enable_stdio_uart(bootloader 0)

pico_add_extra_outputs(bootloader)
