65 lines
1.6 KiB
CMake
65 lines
1.6 KiB
CMake
cmake_minimum_required(VERSION 3.13)
|
|
|
|
set(LIB_FREERTOS_NAME freertos)
|
|
add_library(${LIB_FREERTOS_NAME})
|
|
|
|
foreach(FREERTOS_PORT_SRC ${FREERTOS_PORT_SOURCES})
|
|
if(IS_ABSOLUTE ${FREERTOS_PORT_SRC})
|
|
set(${CURR_FREERTOS_PORT_SRC} ${FREERTOS_PORT_SRC})
|
|
else()
|
|
get_filename_component(CURR_FREERTOS_PORT_SRC
|
|
${FREERTOS_PORT_SRC} REALPATH BASE_DIR ${CMAKE_SOURCE_DIR}
|
|
)
|
|
endif()
|
|
|
|
list(APPEND FREERTOS_PORT_SOURCES_ABS ${CURR_FREERTOS_PORT_SRC})
|
|
endforeach()
|
|
|
|
target_sources(${LIB_FREERTOS_NAME} PRIVATE
|
|
src/croutine.c
|
|
src/event_groups.c
|
|
src/list.c
|
|
src/queue.c
|
|
src/stream_buffer.c
|
|
src/tasks.c
|
|
src/timers.c
|
|
"${FREERTOS_PORT_SOURCES_ABS}"
|
|
)
|
|
|
|
if(NOT FREERTOS_CONFIG_AND_PORT_PATHS)
|
|
message(WARNING
|
|
"FREERTOS_CONFIG_AND_PORT_PATHS list of FreeRTOS includes was not "
|
|
"supplied, build might fail!"
|
|
)
|
|
endif()
|
|
|
|
# Convert supplied FreeRTOS config and port includes to absolute paths.
|
|
foreach(FREERTOS_PATH ${FREERTOS_CONFIG_AND_PORT_PATHS})
|
|
if(IS_ABSOLUTE ${FREERTOS_PATH})
|
|
set(CURR_ABS_FREERTOS_PATH "${FREERTOS_PATH}")
|
|
else()
|
|
get_filename_component(CURR_ABS_FREERTOS_PATH
|
|
${FREERTOS_PATH} REALPATH BASE_DIR ${CMAKE_SOURCE_DIR})
|
|
endif()
|
|
|
|
if(CMAKE_VERBOSE)
|
|
message(STATUS "FreeRTOS configuration path: ${CURR_ABS_FREERTOS_PATH}")
|
|
endif()
|
|
|
|
list(APPEND FREERTOS_PATHS_ABSOLUTE ${CURR_ABS_FREERTOS_PATH})
|
|
endforeach()
|
|
|
|
|
|
# Required include paths to compile FreeRTOS
|
|
target_include_directories(${LIB_FREERTOS_NAME} INTERFACE
|
|
${CMAKE_SOURCE_DIR}
|
|
inc
|
|
inc/freertos
|
|
${FREERTOS_PATHS_ABSOLUTE}
|
|
)
|
|
|
|
target_include_directories(${LIB_FREERTOS_NAME} PRIVATE
|
|
inc/freertos
|
|
${FREERTOS_PATHS_ABSOLUTE}
|
|
)
|