mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-19 21:11:57 -04:00
Fix circular dependency in CMake project (#700)
* Fix circular dependency in cmake project Fix for https://github.com/FreeRTOS/FreeRTOS-Kernel/issues/687 In order for custom ports to also break the cycle, they must link against freertos_kernel_include instead of freertos_kernel. * Simplify include path
This commit is contained in:
parent
77ec05e641
commit
18e2937239
|
@ -225,7 +225,7 @@ elseif((FREERTOS_PORT STREQUAL "A_CUSTOM_PORT") AND (NOT TARGET freertos_kernel_
|
||||||
" .)\n"
|
" .)\n"
|
||||||
" target_link_libraries(freertos_kernel_port\n"
|
" target_link_libraries(freertos_kernel_port\n"
|
||||||
" PRIVATE\n"
|
" PRIVATE\n"
|
||||||
" freertos_kernel)")
|
" freertos_kernel_include)")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
|
@ -264,6 +264,7 @@ add_compile_options(
|
||||||
|
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
|
add_subdirectory(include)
|
||||||
add_subdirectory(portable)
|
add_subdirectory(portable)
|
||||||
|
|
||||||
add_library(freertos_kernel STATIC
|
add_library(freertos_kernel STATIC
|
||||||
|
@ -279,17 +280,10 @@ add_library(freertos_kernel STATIC
|
||||||
$<IF:$<BOOL:$<FILTER:${FREERTOS_HEAP},EXCLUDE,^[1-5]$>>,${FREERTOS_HEAP},portable/MemMang/heap_${FREERTOS_HEAP}.c>
|
$<IF:$<BOOL:$<FILTER:${FREERTOS_HEAP},EXCLUDE,^[1-5]$>>,${FREERTOS_HEAP},portable/MemMang/heap_${FREERTOS_HEAP}.c>
|
||||||
)
|
)
|
||||||
|
|
||||||
target_include_directories(freertos_kernel
|
|
||||||
PUBLIC
|
|
||||||
include
|
|
||||||
# Note: DEPRECATED but still supported, may be removed in a future release.
|
|
||||||
$<$<NOT:$<TARGET_EXISTS:freertos_config>>:${FREERTOS_CONFIG_FILE_DIRECTORY}>
|
|
||||||
)
|
|
||||||
|
|
||||||
target_link_libraries(freertos_kernel
|
target_link_libraries(freertos_kernel
|
||||||
PUBLIC
|
PUBLIC
|
||||||
$<$<TARGET_EXISTS:freertos_config>:freertos_config>
|
|
||||||
freertos_kernel_port
|
freertos_kernel_port
|
||||||
|
freertos_kernel_include
|
||||||
)
|
)
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
|
|
15
include/CMakeLists.txt
Normal file
15
include/CMakeLists.txt
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
# FreeRTOS internal cmake file. Do not use it in user top-level project
|
||||||
|
|
||||||
|
add_library(freertos_kernel_include INTERFACE)
|
||||||
|
|
||||||
|
target_include_directories(freertos_kernel_include
|
||||||
|
INTERFACE
|
||||||
|
.
|
||||||
|
# Note: DEPRECATED but still supported, may be removed in a future release.
|
||||||
|
$<$<NOT:$<TARGET_EXISTS:freertos_config>>:${FREERTOS_CONFIG_FILE_DIRECTORY}>
|
||||||
|
)
|
||||||
|
|
||||||
|
target_link_libraries(freertos_kernel_include
|
||||||
|
INTERFACE
|
||||||
|
$<$<TARGET_EXISTS:freertos_config>:freertos_config>
|
||||||
|
)
|
|
@ -1035,7 +1035,7 @@ target_link_libraries(freertos_kernel_port
|
||||||
$<$<STREQUAL:${FREERTOS_PORT},GCC_RP2040>:pico_base_headers>
|
$<$<STREQUAL:${FREERTOS_PORT},GCC_RP2040>:pico_base_headers>
|
||||||
$<$<STREQUAL:${FREERTOS_PORT},GCC_XTENSA_ESP32>:idf::esp32>
|
$<$<STREQUAL:${FREERTOS_PORT},GCC_XTENSA_ESP32>:idf::esp32>
|
||||||
PRIVATE
|
PRIVATE
|
||||||
freertos_kernel
|
freertos_kernel_include
|
||||||
$<$<STREQUAL:${FREERTOS_PORT},GCC_POSIX>:Threads::Threads>
|
$<$<STREQUAL:${FREERTOS_PORT},GCC_POSIX>:Threads::Threads>
|
||||||
"$<$<STREQUAL:${FREERTOS_PORT},GCC_RP2040>:hardware_clocks;hardware_exception>"
|
"$<$<STREQUAL:${FREERTOS_PORT},GCC_RP2040>:hardware_clocks;hardware_exception>"
|
||||||
$<$<STREQUAL:${FREERTOS_PORT},MSVC_MINGW>:winmm> # Windows library which implements timers
|
$<$<STREQUAL:${FREERTOS_PORT},MSVC_MINGW>:winmm> # Windows library which implements timers
|
||||||
|
|
Loading…
Reference in a new issue