Fix CMake build for RP2040 (#1197)
Add public dependency to hardware_sync because portable\ThirdParty\GCC\RP2040\include\portmacro.h exposes include "hardware/sync.h" to FreeRTOS.h which is PUBLIC.
Add private dependency to pico_multicore because of usage prvFIFOInterruptHandler() and sio_hw in portable/ThirdParty/GCC/RP2040/port.c.
diff --git a/portable/CMakeLists.txt b/portable/CMakeLists.txt
index f761ebc..5e43877 100644
--- a/portable/CMakeLists.txt
+++ b/portable/CMakeLists.txt
@@ -1215,6 +1215,11 @@
$<$<STREQUAL:${FREERTOS_PORT},WIZC_PIC18>:${CMAKE_CURRENT_LIST_DIR}/WizC/PIC18>
)
+target_link_libraries(freertos_kernel_port_headers
+ INTERFACE
+ $<$<STREQUAL:${FREERTOS_PORT},GCC_RP2040>:hardware_sync>
+)
+
if(FREERTOS_PORT STREQUAL GCC_POSIX)
find_package(Threads REQUIRED)
endif()
@@ -1227,6 +1232,6 @@
PRIVATE
freertos_kernel_include
$<$<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;pico_multicore>"
$<$<STREQUAL:${FREERTOS_PORT},MSVC_MINGW>:winmm> # Windows library which implements timers
)