Skip to content

Commit

Permalink
Cmake: Create a single static library including port
Browse files Browse the repository at this point in the history
Modify portable/CMakeLists.txt to create only one static library containing both the common kernel code and kernel port.

Change the freertos_kernel_port target from a STATIC library to an OBJECT library and introduce a new freertos_kernel_port_headers  INTERFACE library target.

---------

Co-authored-by: ABARNAT <ahmed.barnat@actia-engineering.tn>
Co-authored-by: Soren Ptak <ptaksoren@gmail.com>
Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
  • Loading branch information
4 people committed Jan 30, 2024
1 parent 8622bd5 commit c565fd4
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 6 deletions.
12 changes: 8 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -217,16 +217,17 @@ elseif((FREERTOS_PORT STREQUAL "A_CUSTOM_PORT") AND (NOT TARGET freertos_kernel_
" port.c\n"
" portmacro.h\n"
" Where FreeRTOSCustomPort/CMakeLists.txt is a modified version of:\n"
" add_library(freertos_kernel_port STATIC)\n"
" add_library(freertos_kernel_port OBJECT)\n"
" target_sources(freertos_kernel_port\n"
" PRIVATE\n"
" port.c\n"
" portmacro.h)\n"
" target_include_directories(freertos_kernel_port\n"
" PUBLIC\n"
" add_library(freertos_kernel_port_headers INTERFACE)\n"
" target_include_directories(freertos_kernel_port_headers INTERFACE \n"
" .)\n"
" target_link_libraries(freertos_kernel_port\n"
" PRIVATE\n"
" freertos_kernel_port_headers\n"
" freertos_kernel_include)")
endif()

Expand Down Expand Up @@ -257,8 +258,11 @@ endif()

target_link_libraries(freertos_kernel
PUBLIC
freertos_kernel_port
freertos_kernel_include
freertos_kernel_port_headers
PRIVATE
freertos_kernel_port

)

########################################################################
6 changes: 4 additions & 2 deletions portable/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ endif()

# FreeRTOS internal cmake file. Do not use it in user top-level project

add_library(freertos_kernel_port STATIC
add_library(freertos_kernel_port OBJECT
# TEMPLATE Port
$<$<STREQUAL:${FREERTOS_PORT},TEMPLATE>:
template/port.c>
Expand Down Expand Up @@ -755,8 +755,9 @@ if( FREERTOS_PORT MATCHES "GCC_ARM_CM(3|4)_MPU" OR
Common/mpu_wrappers_v2.c
)
endif()
add_library(freertos_kernel_port_headers INTERFACE)

target_include_directories(freertos_kernel_port PUBLIC
target_include_directories(freertos_kernel_port_headers INTERFACE
# TEMPLATE Port
$<$<STREQUAL:${FREERTOS_PORT},TEMPLATE>:${CMAKE_CURRENT_LIST_DIR}/template>

Expand Down Expand Up @@ -1094,6 +1095,7 @@ target_link_libraries(freertos_kernel_port
PUBLIC
$<$<STREQUAL:${FREERTOS_PORT},GCC_RP2040>:pico_base_headers>
$<$<STREQUAL:${FREERTOS_PORT},GCC_XTENSA_ESP32>:idf::esp32>
freertos_kernel_port_headers
PRIVATE
freertos_kernel_include
$<$<STREQUAL:${FREERTOS_PORT},GCC_POSIX>:Threads::Threads>
Expand Down

0 comments on commit c565fd4

Please sign in to comment.