@@ -10,38 +10,68 @@ if (DEFINED ENV{FREERTOS_KERNEL_PATH} AND (NOT FREERTOS_KERNEL_PATH))
10
10
message ("Using FREERTOS_KERNEL_PATH from environment ('${FREERTOS_KERNEL_PATH} ')" )
11
11
endif ()
12
12
13
- set (FREERTOS_KERNEL_RP2040_RELATIVE_PATH "portable/ThirdParty/GCC/RP2040" )
14
- # undo the above
15
- set (FREERTOS_KERNEL_RP2040_BACK_PATH "../../../.." )
13
+ # first pass we look in old tree; second pass we look in new tree
14
+ foreach (SEARCH_PASS RANGE 0 1)
15
+ if (SEARCH_PASS)
16
+ # ports may be moving to submodule in the future
17
+ set (FREERTOS_KERNEL_RP2040_RELATIVE_PATH "portable/ThirdParty/Community-Supported-Ports/GCC" )
18
+ set (FREERTOS_KERNEL_RP2040_BACK_PATH "../../../../.." )
19
+ else ()
20
+ set (FREERTOS_KERNEL_RP2040_RELATIVE_PATH "portable/ThirdParty/GCC" )
21
+ set (FREERTOS_KERNEL_RP2040_BACK_PATH "../../../.." )
22
+ endif ()
16
23
17
- if (NOT FREERTOS_KERNEL_PATH)
18
- # check if we are inside the FreeRTOS kernel tree (i.e. this file has been included directly)
19
- get_filename_component (_ACTUAL_PATH ${CMAKE_CURRENT_LIST_DIR} REALPATH)
20
- get_filename_component (_POSSIBLE_PATH ${CMAKE_CURRENT_LIST_DIR} /${FREERTOS_KERNEL_RP2040_BACK_PATH} /${FREERTOS_KERNEL_RP2040_RELATIVE_PATH} REALPATH)
21
- if (_ACTUAL_PATH STREQUAL _POSSIBLE_PATH)
22
- get_filename_component (FREERTOS_KERNEL_PATH ${CMAKE_CURRENT_LIST_DIR} /${FREERTOS_KERNEL_RP2040_BACK_PATH} REALPATH)
24
+ if (PICO_PLATFORM STREQUAL "rp2040" )
25
+ set (FREERTOS_KERNEL_RP2040_RELATIVE_PATH "${FREERTOS_KERNEL_RP2040_RELATIVE_PATH} /RP2040" )
26
+ else ()
27
+ if (PICO_PLATFORM STREQUAL "rp2350-riscv" )
28
+ set (FREERTOS_KERNEL_RP2040_RELATIVE_PATH "${FREERTOS_KERNEL_RP2040_RELATIVE_PATH} /RP2350_RISC-V" )
29
+ else ()
30
+ set (FREERTOS_KERNEL_RP2040_RELATIVE_PATH "${FREERTOS_KERNEL_RP2040_RELATIVE_PATH} /RP2350_ARM_NTZ" )
31
+ endif ()
23
32
endif ()
24
- if (_ACTUAL_PATH STREQUAL _POSSIBLE_PATH)
25
- get_filename_component (FREERTOS_KERNEL_PATH ${CMAKE_CURRENT_LIST_DIR} /${FREERTOS_KERNEL_RP2040_BACK_PATH} REALPATH)
26
- message ("Setting FREERTOS_KERNEL_PATH to ${FREERTOS_KERNEL_PATH} based on location of FreeRTOS-Kernel-import.cmake" )
27
- elseif (PICO_SDK_PATH AND EXISTS "${PICO_SDK_PATH} /../FreeRTOS-Kernel" )
28
- set (FREERTOS_KERNEL_PATH ${PICO_SDK_PATH} /../FreeRTOS-Kernel)
29
- message ("Defaulting FREERTOS_KERNEL_PATH as sibling of PICO_SDK_PATH: ${FREERTOS_KERNEL_PATH} " )
33
+
34
+ if (NOT FREERTOS_KERNEL_PATH)
35
+ # check if we are inside the FreeRTOS kernel tree (i.e. this file has been included directly)
36
+ get_filename_component (_ACTUAL_PATH ${CMAKE_CURRENT_LIST_DIR} REALPATH)
37
+ get_filename_component (_POSSIBLE_PATH ${CMAKE_CURRENT_LIST_DIR} /${FREERTOS_KERNEL_RP2040_BACK_PATH} /${FREERTOS_KERNEL_RP2040_RELATIVE_PATH} REALPATH)
38
+ if (_ACTUAL_PATH STREQUAL _POSSIBLE_PATH)
39
+ get_filename_component (FREERTOS_KERNEL_PATH ${CMAKE_CURRENT_LIST_DIR} /${FREERTOS_KERNEL_RP2040_BACK_PATH} REALPATH)
40
+ endif ()
41
+ if (_ACTUAL_PATH STREQUAL _POSSIBLE_PATH)
42
+ get_filename_component (FREERTOS_KERNEL_PATH ${CMAKE_CURRENT_LIST_DIR} /${FREERTOS_KERNEL_RP2040_BACK_PATH} REALPATH)
43
+ message ("Setting FREERTOS_KERNEL_PATH to ${FREERTOS_KERNEL_PATH} based on location of FreeRTOS-Kernel-import.cmake" )
44
+ break ()
45
+ elseif (PICO_SDK_PATH AND EXISTS "${PICO_SDK_PATH} /../FreeRTOS-Kernel" )
46
+ set (FREERTOS_KERNEL_PATH ${PICO_SDK_PATH} /../FreeRTOS-Kernel)
47
+ message ("Defaulting FREERTOS_KERNEL_PATH as sibling of PICO_SDK_PATH: ${FREERTOS_KERNEL_PATH} " )
48
+ break ()
49
+ endif ()
50
+ endif ()
51
+
52
+ if (NOT FREERTOS_KERNEL_PATH)
53
+ foreach (POSSIBLE_SUFFIX Source FreeRTOS-Kernel FreeRTOS/Source )
54
+ # check if FreeRTOS-Kernel exists under directory that included us
55
+ set (SEARCH_ROOT ${CMAKE_CURRENT_SOURCE_DIR} )
56
+ get_filename_component (_POSSIBLE_PATH ${SEARCH_ROOT} /${POSSIBLE_SUFFIX} REALPATH)
57
+ if (EXISTS ${_POSSIBLE_PATH} /${FREERTOS_KERNEL_RP2040_RELATIVE_PATH} /CMakeLists.txt)
58
+ get_filename_component (FREERTOS_KERNEL_PATH ${_POSSIBLE_PATH} REALPATH)
59
+ message ("Setting FREERTOS_KERNEL_PATH to '${FREERTOS_KERNEL_PATH} ' found relative to enclosing project" )
60
+ break ()
61
+ endif ()
62
+ endforeach ()
63
+ if (FREERTOS_KERNEL_PATH)
64
+ break ()
65
+ endif ()
30
66
endif ()
31
- endif ()
32
67
33
- if (NOT FREERTOS_KERNEL_PATH)
34
- foreach (POSSIBLE_SUFFIX Source FreeRTOS-Kernel FreeRTOS/Source )
35
- # check if FreeRTOS-Kernel exists under directory that included us
36
- set (SEARCH_ROOT ${CMAKE_CURRENT_SOURCE_DIR} )
37
- get_filename_component (_POSSIBLE_PATH ${SEARCH_ROOT} /${POSSIBLE_SUFFIX} REALPATH)
38
- if (EXISTS ${_POSSIBLE_PATH} /${FREERTOS_KERNEL_RP2040_RELATIVE_PATH} /CMakeLists.txt)
39
- get_filename_component (FREERTOS_KERNEL_PATH ${_POSSIBLE_PATH} REALPATH)
40
- message ("Setting FREERTOS_KERNEL_PATH to '${FREERTOS_KERNEL_PATH} ' found relative to enclosing project" )
68
+ # user must have specified
69
+ if (FREERTOS_KERNEL_PATH)
70
+ if (EXISTS "${FREERTOS_KERNEL_PATH} /${FREERTOS_KERNEL_RP2040_RELATIVE_PATH} " )
41
71
break ()
42
72
endif ()
43
- endforeach ()
44
- endif ()
73
+ endif ()
74
+ endforeach ()
45
75
46
76
if (NOT FREERTOS_KERNEL_PATH)
47
77
message (FATAL_ERROR "FreeRTOS location was not specified. Please set FREERTOS_KERNEL_PATH." )
@@ -54,8 +84,8 @@ if (NOT EXISTS ${FREERTOS_KERNEL_PATH})
54
84
message (FATAL_ERROR "Directory '${FREERTOS_KERNEL_PATH} ' not found" )
55
85
endif ()
56
86
if (NOT EXISTS ${FREERTOS_KERNEL_PATH} /${FREERTOS_KERNEL_RP2040_RELATIVE_PATH} /CMakeLists.txt)
57
- message (FATAL_ERROR "Directory '${FREERTOS_KERNEL_PATH} ' does not contain an RP2040 port here: ${FREERTOS_KERNEL_RP2040_RELATIVE_PATH} " )
87
+ message (FATAL_ERROR "Directory '${FREERTOS_KERNEL_PATH} ' does not contain a ' ${PICO_PLATFORM} ' port here: ${FREERTOS_KERNEL_RP2040_RELATIVE_PATH} " )
58
88
endif ()
59
89
set (FREERTOS_KERNEL_PATH ${FREERTOS_KERNEL_PATH} CACHE PATH "Path to the FreeRTOS_KERNEL" FORCE)
60
90
61
- add_subdirectory (${FREERTOS_KERNEL_PATH} /${FREERTOS_KERNEL_RP2040_RELATIVE_PATH} FREERTOS_KERNEL)
91
+ add_subdirectory (${FREERTOS_KERNEL_PATH} /${FREERTOS_KERNEL_RP2040_RELATIVE_PATH} FREERTOS_KERNEL)
0 commit comments