
#set(FREERTOS_PATH ${CMAKE_SOURCE_DIR}/toolchain/st/STM32Cube${FAMILY}-${VERSION}/Middlewares/Third_Party/FreeRTOS)
#set(FREERTOS_PATH  ${CMAKE_BINARY_DIR}/_deps/stm32-freertos-src)

message(STATUS "FreeRTOS path: ${FREERTOS_PATH}")

find_package(FreeRTOS COMPONENTS ARM_${ARM_TYPE} REQUIRED)

add_library(os_freertos INTERFACE)

target_include_directories(os_freertos INTERFACE
        ${CMAKE_CURRENT_SOURCE_DIR}/config/ARM_${ARM_TYPE}
        ${CMAKE_CURRENT_SOURCE_DIR}
        ${CMAKE_SOURCE_DIR}/src/os/share
        )

target_sources(os_freertos INTERFACE
        ${CMAKE_CURRENT_SOURCE_DIR}/os.cpp
        ${CMAKE_CURRENT_SOURCE_DIR}/task.cpp
        ${CMAKE_CURRENT_SOURCE_DIR}/mutex.cpp
        ${CMAKE_CURRENT_SOURCE_DIR}/queue.cpp
        ${CMAKE_CURRENT_SOURCE_DIR}/../share/allocator.cpp
        )

target_link_libraries(os_freertos INTERFACE
        FreeRTOS::ARM_${ARM_TYPE}
        FreeRTOS::Heap::5
        FreeRTOS::Timers
        LIB::CORE
        )

add_library(OS::FreeRTOS ALIAS os_freertos)
