# Generated Cmake Pico project file

cmake_minimum_required(VERSION 3.13)

set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)

# Initialise pico_sdk from installed location
# (note this can come from environment, CMake cache etc)
set(PICO_SDK_PATH "/home/amr/workspace/rp2040/pico-sdk")
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(PICO_BOARD pico2_w CACHE STRING "Board type")
#set(PICO_DEFAULT_RP2350_PLATFORM rp2350-riscv)
# Pull in Raspberry Pi Pico SDK (must be before project)
include(pico_sdk_import.cmake)

if (PICO_SDK_VERSION_STRING VERSION_LESS "1.4.0")
  message(FATAL_ERROR "Raspberry Pi Pico SDK version 1.4.0 (or later) required. Your version is ${PICO_SDK_VERSION_STRING}")
endif()
# Initialise the Raspberry Pi Pico SDK

project(ensaht C CXX ASM)

pico_sdk_init()

# Add executable. Default name is the project name, version 0.1

add_executable(ensaht
  src/main.c
  src/mqtt.c
  src/bmp.c
  src/aht.c
  src/ens.c
  src/opt4048.c
)

# Add the standard include files to the build
target_include_directories(ensaht PRIVATE
  ${CMAKE_CURRENT_LIST_DIR}
  ${CMAKE_CURRENT_LIST_DIR}/include
  ${CMAKE_CURRENT_LIST_DIR}/.. # for our common lwipopts or any other standard includes, if required
)
# target_compile_options(ensaht PRIVATE -ggdb)
pico_set_program_name(ensaht "ensaht")
pico_set_program_version(ensaht "0.1")
pico_enable_stdio_usb(ensaht 1)
pico_enable_stdio_uart(ensaht 0)
# Add the standard library to the build
target_link_libraries(ensaht
        hardware_i2c
        hardware_gpio
        hardware_divider
        pico_double
        pico_cyw43_arch_lwip_threadsafe_background
        pico_lwip_mqtt
        pico_lwip_mbedtls
        pico_mbedtls
        pico_stdlib)

pico_add_extra_outputs(ensaht)

add_custom_target(flash
    COMMAND openocd
        -f interface/cmsis-dap.cfg
        -f target/rp2350.cfg
        -c "adapter speed 10000"
        -c "program ${CMAKE_CURRENT_BINARY_DIR}/ensaht.elf verify"
        -c "reset init"
        -c "exit"
    DEPENDS ensaht
)

add_custom_target(debug
    COMMAND bash -c "openocd -f interface/cmsis-dap.cfg -f target/rp2350.cfg -c 'adapter speed 10000' & PID=\$\$! ; trap 'kill -9 \$\$PID 2>/dev/null || true' EXIT ; sleep 1 ; arm-none-eabi-gdb -ex 'target extended-remote localhost:3333' ${CMAKE_CURRENT_BINARY_DIR}/ensaht.elf"
    DEPENDS flash
    USES_TERMINAL
    VERBATIM
)
