# Generated Cmake Pico project file

cmake_minimum_required(VERSION 3.13)

set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

include($ENV{PICO_SDK_PATH}/external/pico_sdk_import.cmake)

project(simple_led C CXX ASM)

# force picotool executable path
add_executable(picotool IMPORTED GLOBAL)
set_target_properties(picotool PROPERTIES 
	IMPORTED_LOCATION "$(PICOTOOL_PATH)/picotool"
)

pico_sdk_init()

set(FREERTOS_SRC_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../freertos)
set(FREERTOS_CONFIG_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../config)

include(${FREERTOS_SRC_DIRECTORY}/portable/ThirdParty/GCC/RP2350_ARM_NTZ/FreeRTOS_Kernel_import.cmake)

# Include FreeRTOS directories
include_directories(
	${FREERTOS_CONFIG_DIRECTORY}
  ${FREERTOS_SRC_DIRECTORY}/include
  ${FREERTOS_SRC_DIRECTORY}/portable/ThirdParty/GCC/RP2350_ARM_NTZ/non_secure
)

set(FREERTOS_SOURCES
  ${FREERTOS_SRC_DIRECTORY}/event_groups.c
  ${FREERTOS_SRC_DIRECTORY}/list.c
  ${FREERTOS_SRC_DIRECTORY}/queue.c
  ${FREERTOS_SRC_DIRECTORY}/stream_buffer.c
  ${FREERTOS_SRC_DIRECTORY}/tasks.c
  ${FREERTOS_SRC_DIRECTORY}/timers.c
  ${FREERTOS_SRC_DIRECTORY}/portable/MemMang/heap_3.c
)

set(FREERTOS_PORT_FILES
    ${FREERTOS_SRC_DIRECTORY}/portable/ThirdParty/GCC/RP2350_ARM_NTZ/non_secure/port.c
    ${FREERTOS_SRC_DIRECTORY}/portable/ThirdParty/GCC/RP2350_ARM_NTZ/non_secure/portasm.c
    ${FREERTOS_SRC_DIRECTORY}/portable/ThirdParty/GCC/RP2350_ARM_NTZ/non_secure/mpu_wrappers_v2_asm.c
)

add_executable(simple_led main.c ${FREERTOS_SOURCES} ${FREERTOS_PORT_FILES})

pico_set_program_name(simple_led "simple_led")
pico_set_program_version(simple_led "0.1")

target_link_libraries(
	simple_led
	pico_stdlib
  pico_multicore
  hardware_exception
)

pico_enable_stdio_uart(simple_led 0)
pico_enable_stdio_usb(simple_led 1)

pico_add_extra_outputs(simple_led)

