cmake_minimum_required(VERSION 3.20)

set(PICOTOOL_FETCH_FROM_GIT on)
set(PICO_SDK_FETCH_FROM_GIT on)
include(${CMAKE_CURRENT_LIST_DIR}/../../pico_sdk_import.cmake)

project(gru_nn_test C CXX ASM)
set(CMAKE_C_STANDARD 11)

# Inicializace Pico SDK
pico_sdk_init()

# Přidání cest pro hlavičkové soubory
include_directories(
        ${CMAKE_CURRENT_LIST_DIR}/../../config
        ${CMAKE_CURRENT_LIST_DIR}/../../ai
        ${CMAKE_CURRENT_LIST_DIR}/../..
        ${CMAKE_CURRENT_LIST_DIR}/../../config
)

# Definice zdrojových souborů
add_executable(gru_nn_test
        t_gru_nn.c
        ${CMAKE_CURRENT_LIST_DIR}/../../ai/adam_optim.c
        ${CMAKE_CURRENT_LIST_DIR}/../../ai/gru_nn.c
        ${CMAKE_CURRENT_LIST_DIR}/../../config/board_config.c
)

# Nastavení závislostí
target_link_libraries(gru_nn_test
        pico_stdlib
        hardware_divider
        hardware_uart
)

# Nastavení pro Pico W, pokud je cílem
if (PICO_BOARD STREQUAL "pico_w" OR PICO_BOARD STREQUAL "pico2_w")
    target_link_libraries(gru_nn_test
            pico_cyw43_arch_lwip_threadsafe_background
    )
endif()

# Konfigurace výstupu
pico_enable_stdio_usb(gru_nn_test 1)
pico_enable_stdio_uart(gru_nn_test 0)
pico_add_extra_outputs(gru_nn_test)

# Optimalizace
set_target_properties(gru_nn_test PROPERTIES COMPILE_FLAGS "-save-temps -Ofast")