xref: /Kernel-v10.6.2/portable/CMakeLists.txt (revision 18e293723929da31c0395fb4c7f9187474058a6a)
1# FreeRTOS internal cmake file. Do not use it in user top-level project
2
3if (FREERTOS_PORT STREQUAL "A_CUSTOM_PORT")
4    message(STATUS "Using a custom FREERTOS_PORT.")
5    return()
6endif()
7
8# FreeRTOS internal cmake file. Do not use it in user top-level project
9
10add_library(freertos_kernel_port STATIC
11    # 16-Bit DOS ports for BCC
12    $<$<STREQUAL:${FREERTOS_PORT},BCC_16BIT_DOS_FLSH186>:
13        BCC/16BitDOS/common/portcomn.c
14        BCC/16BitDOS/Flsh186/port.c>
15
16    $<$<STREQUAL:${FREERTOS_PORT},BCC_16BIT_DOS_PC>:
17        BCC/16BitDOS/common/portcomn.c
18        BCC/16BitDOS/PC/port.c>
19
20    # ARMv7-M port for Texas Instruments Code Composer Studio
21    $<$<STREQUAL:${FREERTOS_PORT},CCS_ARM_CM3>:
22        CCS/ARM_CM3/port.c
23        CCS/ARM_CM3/portasm.asm>
24
25    # ARMv7E-M port for Texas Instruments Code Composer Studio
26    $<$<STREQUAL:${FREERTOS_PORT},CCS_ARM_CM4F>:
27        CCS/ARM_CM4F/port.c
28        CCS/ARM_CM4F/portasm.asm>
29
30    # ARMv7-R port for Texas Instruments Code Composer Studio
31    $<$<STREQUAL:${FREERTOS_PORT},CCS_ARM_CR4>:
32        CCS/ARM_Cortex-R4/port.c
33        CCS/ARM_Cortex-R4/portASM.asm>
34
35    # Texas Instruments MSP430 port for Texas Instruments Code Composer Studio
36    $<$<STREQUAL:${FREERTOS_PORT},CCS_MSP430X>:
37        CCS/MSP430X/port.c
38        CCS/MSP430X/portext.asm>
39
40    # NXP (formerly Motorola, Freescale) Cold Fire and 68HCS12 ports for Code Warrior
41    $<$<STREQUAL:${FREERTOS_PORT},CODEWARRIOR_COLDFIRE_V1>:
42        CodeWarrior/ColdFire_V1/port.c
43        CodeWarrior/ColdFire_V1/portasm.S>
44
45    $<$<STREQUAL:${FREERTOS_PORT},CODEWARRIOR_COLDFIRE_V2>:
46        CodeWarrior/ColdFire_V2/port.c
47        CodeWarrior/ColdFire_V2/portasm.S>
48
49    $<$<STREQUAL:${FREERTOS_PORT},CODEWARRIOR_HCS12>:
50        CodeWarrior/HCS12/port.c>
51
52    # ARMv7-A port for GCC
53    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CA9>:
54        GCC/ARM_CA9/port.c
55        GCC/ARM_CA9/portASM.S>
56
57    # ARMv8-A ports for GCC
58    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CA53_64_BIT>:
59        GCC/ARM_CA53_64_BIT/port.c
60        GCC/ARM_CA53_64_BIT/portASM.S>
61
62    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CA53_64_BIT_SRE>:
63        GCC/ARM_CA53_64_BIT_SRE/port.c
64        GCC/ARM_CA53_64_BIT_SRE/portASM.S>
65
66    # ARMv6-M port for GCC
67    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM0>:
68        GCC/ARM_CM0/port.c>
69
70    # ARMv6-M / Cortex-M0 Raspberry PI RP2040 port for GCC
71    $<$<STREQUAL:${FREERTOS_PORT},GCC_RP2040>:
72        ThirdParty/GCC/RP2040/idle_task_static_memory.c
73        ThirdParty/GCC/RP2040/port.c>
74
75    # ARMv7-M ports for GCC
76    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM3>:
77        GCC/ARM_CM3/port.c>
78
79    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM3_MPU>:
80        GCC/ARM_CM3_MPU/port.c>
81
82    # ARMv7E-M ports for GCC
83    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM4_MPU>:
84        GCC/ARM_CM4_MPU/port.c>
85
86    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM4F>:
87        GCC/ARM_CM4F/port.c>
88
89    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM7>:
90        GCC/ARM_CM7/r0p1/port.c>
91
92    # ARMv8-M ports for GCC
93    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM23_NONSECURE>:
94        GCC/ARM_CM23/non_secure/port.c
95        GCC/ARM_CM23/non_secure/portasm.c>
96
97    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM23_SECURE>:
98        GCC/ARM_CM23/secure/secure_context_port.c
99        GCC/ARM_CM23/secure/secure_context.c
100        GCC/ARM_CM23/secure/secure_heap.c
101        GCC/ARM_CM23/secure/secure_init.c>
102
103    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM23_NTZ_NONSECURE>:
104        GCC/ARM_CM23_NTZ/non_secure/port.c
105        GCC/ARM_CM23_NTZ/non_secure/portasm.c>
106
107    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM33_NONSECURE>:
108        GCC/ARM_CM33/non_secure/port.c
109        GCC/ARM_CM33/non_secure/portasm.c>
110
111    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM33_SECURE>:
112        GCC/ARM_CM33/secure/secure_context_port.c
113        GCC/ARM_CM33/secure/secure_context.c
114        GCC/ARM_CM33/secure/secure_heap.c
115        GCC/ARM_CM33/secure/secure_init.c>
116
117    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM33_NTZ_NONSECURE>:
118        GCC/ARM_CM33_NTZ/non_secure/port.c
119        GCC/ARM_CM33_NTZ/non_secure/portasm.c>
120
121    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM33_TFM>:
122        GCC/ARM_CM33_NTZ/non_secure/port.c
123        GCC/ARM_CM33_NTZ/non_secure/portasm.c
124        ThirdParty/GCC/ARM_TFM/os_wrapper_freertos.c>
125
126    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM35P_NONSECURE>:
127        GCC/ARM_CM35P/non_secure/port.c
128        GCC/ARM_CM35P/non_secure/portasm.c>
129
130    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM35P_SECURE>:
131        GCC/ARM_CM35P/secure/secure_context_port.c
132        GCC/ARM_CM35P/secure/secure_context.c
133        GCC/ARM_CM35P/secure/secure_heap.c
134        GCC/ARM_CM35P/secure/secure_init.c>
135
136    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM35P_NTZ_NONSECURE>:
137        GCC/ARM_CM35P_NTZ/non_secure/port.c
138        GCC/ARM_CM35P_NTZ/non_secure/portasm.c>
139
140    # ARMv8.1-M ports for GCC
141    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM55_NONSECURE>:
142        GCC/ARM_CM55/non_secure/port.c
143        GCC/ARM_CM55/non_secure/portasm.c>
144
145    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM55_SECURE>:
146        GCC/ARM_CM55/secure/secure_context_port.c
147        GCC/ARM_CM55/secure/secure_context.c
148        GCC/ARM_CM55/secure/secure_heap.c
149        GCC/ARM_CM55/secure/secure_init.c>
150
151    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM55_NTZ_NONSECURE>:
152        GCC/ARM_CM55_NTZ/non_secure/port.c
153        GCC/ARM_CM55_NTZ/non_secure/portasm.c>
154
155    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM55_TFM>:
156        GCC/ARM_CM55_NTZ/non_secure/port.c
157        GCC/ARM_CM55_NTZ/non_secure/portasm.c
158        ThirdParty/GCC/ARM_TFM/os_wrapper_freertos.c>
159
160    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM85_NONSECURE>:
161        GCC/ARM_CM85/non_secure/port.c
162        GCC/ARM_CM85/non_secure/portasm.c>
163
164    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM85_SECURE>:
165        GCC/ARM_CM85/secure/secure_context_port.c
166        GCC/ARM_CM85/secure/secure_context.c
167        GCC/ARM_CM85/secure/secure_heap.c
168        GCC/ARM_CM85/secure/secure_init.c>
169
170    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM85_NTZ_NONSECURE>:
171        GCC/ARM_CM85_NTZ/non_secure/port.c
172        GCC/ARM_CM85_NTZ/non_secure/portasm.c>
173
174    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM85_TFM>:
175        GCC/ARM_CM85_NTZ/non_secure/port.c
176        GCC/ARM_CM85_NTZ/non_secure/portasm.c
177        ThirdParty/GCC/ARM_TFM/os_wrapper_freertos.c>
178
179    # ARMv7-R ports for GCC
180    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CR5>:
181        GCC/ARM_CR5/port.c
182        GCC/ARM_CR5/portASM.S>
183
184    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CRX_NOGIC>:
185        GCC/ARM_CRx_No_GIC/port.c
186        GCC/ARM_CRx_No_GIC/portASM.S>
187
188    # ARMv4T ARM7TDMI ports for GCC
189    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM7_AT91FR40008>:
190        GCC/ARM7_AT91FR40008/port.c
191        GCC/ARM7_AT91FR40008/portISR.c>
192
193    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM7_AT91SAM7S>:
194        GCC/ARM7_AT91SAM7S/lib_AT91SAM7X256.c
195        GCC/ARM7_AT91SAM7S/port.c
196        GCC/ARM7_AT91SAM7S/portISR.c>
197
198    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM7_LPC2000>:
199        GCC/ARM7_LPC2000/port.c
200        GCC/ARM7_LPC2000/portISR.c>
201
202    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM7_LPC23XX>:
203        GCC/ARM7_LPC23xx/port.c
204        GCC/ARM7_LPC23xx/portISR.c>
205
206    $<$<STREQUAL:${FREERTOS_PORT},GCC_STR75X>:
207        GCC/STR75x/port.c
208        GCC/STR75x/portISR.c>
209
210    # Microchip (formerly Ateml) AVR8 ports for GCC
211    $<$<STREQUAL:${FREERTOS_PORT},GCC_ATMEGA323>:
212        GCC/ATMega323/port.c>
213
214    $<$<STREQUAL:${FREERTOS_PORT},GCC_ATMEGA>:
215        ThirdParty/GCC/ATmega/port.c>
216
217    $<$<STREQUAL:${FREERTOS_PORT},GCC_AVRDX>:
218        ThirdParty/Partner-Supported-Ports/GCC/AVR_AVRDx/port.c>
219
220    $<$<STREQUAL:${FREERTOS_PORT},GCC_AVR_MEGA0>:
221        ThirdParty/Partner-Supported-Ports/GCC/AVR_Mega0/port.c>
222
223    # Microchip (formerly Ateml) AVR32 port for GCC
224    $<$<STREQUAL:${FREERTOS_PORT},GCC_AVR32_UC3>:
225        GCC/AVR32_UC3/exception.S
226        GCC/AVR32_UC3/port.c>
227
228    # NXP (formerly Motorola, Freescale) Cold Fire and 68HCS12 ports for GCC
229    $<$<STREQUAL:${FREERTOS_PORT},GCC_COLDFIRE_V2>:
230        GCC/ColdFire_V2/port.c
231        GCC/ColdFire_V2/portasm.S>
232
233    $<$<STREQUAL:${FREERTOS_PORT},GCC_HCS12>:
234        GCC/HCS12/port.c>
235
236    # Cortus APS3 soft core port for GCC
237    $<$<STREQUAL:${FREERTOS_PORT},GCC_CORTUS_APS3>:
238        GCC/CORTUS_APS3/port.c>
239
240    # Renesas (formerly Hitach) H8S port for GCC
241    $<$<STREQUAL:${FREERTOS_PORT},GCC_H8S2329>:
242        GCC/H8S2329/port.c>
243
244    # x86 / IA32 flat memory model port for GCC
245    $<$<STREQUAL:${FREERTOS_PORT},GCC_IA32_FLAT>:
246        GCC/IA32_flat/port.c
247        GCC/IA32_flat/portASM.S>
248
249    # Xilinx MicroBlaze soft core ports for GCC
250    $<$<STREQUAL:${FREERTOS_PORT},GCC_MICROBLAZE>:
251        GCC/MicroBlaze/port.c
252        GCC/MicroBlaze/portasm.s>
253
254    $<$<STREQUAL:${FREERTOS_PORT},GCC_MICROBLAZE_V8>:
255        GCC/MicroBlazeV8/port.c
256        GCC/MicroBlazeV8/port_exceptions.c
257        GCC/MicroBlazeV8/portasm.S>
258
259    $<$<STREQUAL:${FREERTOS_PORT},GCC_MICROBLAZE_V9>:
260        GCC/MicroBlazeV9/port.c
261        GCC/MicroBlazeV9/port_exceptions.c
262        GCC/MicroBlazeV9/portasm.S>
263
264    # Xilinx PCC4XX soft core ports for GCC
265    $<$<STREQUAL:${FREERTOS_PORT},GCC_PPC405_XILINX>:
266        GCC/PPC405_Xilinx/port.c
267        GCC/PPC405_Xilinx/portasm.S>
268
269    $<$<STREQUAL:${FREERTOS_PORT},GCC_PPC440_XILINX>:
270        GCC/PPC440_Xilinx/port.c
271        GCC/PPC440_Xilinx/portasm.S>
272
273     # Texas Instruments MSP430 port for GCC
274    $<$<STREQUAL:${FREERTOS_PORT},GCC_MSP430F449>:
275        GCC/MSP430F449/port.c>
276
277    # Intel (formerly Altera) NIOS II soft core port for GCC
278    $<$<STREQUAL:${FREERTOS_PORT},GCC_NIOSII>:
279        GCC/NiosII/port.c
280        GCC/NiosII/port_asm.S>
281
282    # RISC-V architecture ports for GCC
283    $<$<STREQUAL:${FREERTOS_PORT},GCC_RISC_V>:
284        GCC/RISC-V/port.c
285        GCC/RISC-V/portASM.S>
286
287    $<$<STREQUAL:${FREERTOS_PORT},GCC_RISC_V_PULPINO_VEGA_RV32M1RM>:
288        GCC/RISC-V/port.c
289        GCC/RISC-V/portASM.S>
290
291    # Renesas RL78 port for GCC
292    $<$<STREQUAL:${FREERTOS_PORT},GCC_RL78>:
293        GCC/RL78/port.c
294        GCC/RL78/portasm.S>
295
296    # Renesas RX architecture ports for GCC
297    $<$<STREQUAL:${FREERTOS_PORT},GCC_RX100>:
298        GCC/RX100/port.c>
299
300    $<$<STREQUAL:${FREERTOS_PORT},GCC_RX200>:
301        GCC/RX200/port.c>
302
303    $<$<STREQUAL:${FREERTOS_PORT},GCC_RX600>:
304        GCC/RX600/port.c>
305
306    $<$<STREQUAL:${FREERTOS_PORT},GCC_RX600_V2>:
307        GCC/RX600v2/port.c>
308
309    $<$<STREQUAL:${FREERTOS_PORT},GCC_RX700_V3_DPFPU>:
310        GCC/RX700v3_DPFPU/port.c>
311
312    # Infineon TriCore 1782 port for GCC
313    $<$<STREQUAL:${FREERTOS_PORT},GCC_TRICORE_1782>:
314        GCC/TriCore_1782/port.c
315        GCC/TriCore_1782/porttrap.c>
316
317    # Synopsys ARC architecture ports for GCC
318    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARC_EM_HS>:
319        ThirdParty/GCC/ARC_EM_HS/arc_freertos_exceptions.c
320        ThirdParty/GCC/ARC_EM_HS/arc_support.s
321        ThirdParty/GCC/ARC_EM_HS/freertos_tls.c
322        ThirdParty/GCC/ARC_EM_HS/port.c>
323
324    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARC_V1>:
325        ThirdParty/GCC/ARC_v1/arc_freertos_exceptions.c
326        ThirdParty/GCC/ARC_v1/arc_support.s
327        ThirdParty/GCC/ARC_v1/port.c>
328
329    # Posix Simulator port for GCC
330    $<$<STREQUAL:${FREERTOS_PORT},GCC_POSIX>:
331        ThirdParty/GCC/Posix/port.c
332        ThirdParty/GCC/Posix/utils/wait_for_event.c>
333
334    # Xtensa LX / Espressif ESP32 port for GCC
335    $<$<STREQUAL:${FREERTOS_PORT},GCC_XTENSA_ESP32>:
336        ThirdParty/GCC/Xtensa_ESP32/FreeRTOS-openocd.c
337        ThirdParty/GCC/Xtensa_ESP32/port.c
338        ThirdParty/GCC/Xtensa_ESP32/portasm.S
339        ThirdParty/GCC/Xtensa_ESP32/xtensa_context.S
340        ThirdParty/GCC/Xtensa_ESP32/xtensa_init.c
341        ThirdParty/GCC/Xtensa_ESP32/xtensa_intr_asm.S
342        ThirdParty/GCC/Xtensa_ESP32/xtensa_intr.c
343        ThirdParty/GCC/Xtensa_ESP32/xtensa_loadstore_handler.S
344        ThirdParty/GCC/Xtensa_ESP32/xtensa_overlay_os_hook.c
345        ThirdParty/GCC/Xtensa_ESP32/xtensa_vector_defaults.S
346        ThirdParty/GCC/Xtensa_ESP32/xtensa_vectors.S>
347
348    # Renesas (formerly NEC) 78K port for IAR EW78K
349    $<$<STREQUAL:${FREERTOS_PORT},IAR_78K0K>:
350        IAR/78K0R/port.c
351        IAR/78K0R/portasm.s26>
352
353    # ARMv7-A ports for IAR EWARM
354    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CA5_NOGIC>:
355        IAR/ARM_CA5_No_GIC/port.c
356        IAR/ARM_CA5_No_GIC/portASM.s>
357
358    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CA9>:
359        IAR/ARM_CA9/port.c
360        IAR/ARM_CA9/portASM.s>
361
362    # ARMv6-M port for IAR EWARM
363    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM0>:
364        IAR/ARM_CM0/port.c
365        IAR/ARM_CM0/portasm.s>
366
367    # ARMv7-M port for IAR EWARM
368    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM3>:
369        IAR/ARM_CM3/port.c
370        IAR/ARM_CM3/portasm.s>
371
372    # ARMv7E-M ports for IAR EWARM
373    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM4F>:
374        IAR/ARM_CM4F/port.c
375        IAR/ARM_CM4F/portasm.s>
376
377    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM4F_MPU>:
378        IAR/ARM_CM4F_MPU/port.c
379        IAR/ARM_CM4F_MPU/portasm.s>
380
381    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM7>:
382        IAR/ARM_CM7/r0p1/port.c
383        IAR/ARM_CM7/r0p1/portasm.s>
384
385    # ARMv8-M Ports for IAR EWARM
386    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM23_NONSECURE>:
387        IAR/ARM_CM23/non_secure/port.c
388        IAR/ARM_CM23/non_secure/portasm.s>
389
390    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM23_SECURE>:
391        IAR/ARM_CM23/secure/secure_context_port_asm.s
392        IAR/ARM_CM23/secure/secure_context.c
393        IAR/ARM_CM23/secure/secure_heap.c
394        IAR/ARM_CM23/secure/secure_init.c>
395
396    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM23_NTZ_NONSECURE>:
397        IAR/ARM_CM23_NTZ/non_secure/port.c
398        IAR/ARM_CM23_NTZ/non_secure/portasm.s>
399
400    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM33_NONSECURE>:
401        IAR/ARM_CM33/non_secure/port.c
402        IAR/ARM_CM33/non_secure/portasm.s>
403
404    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM33_SECURE>:
405        IAR/ARM_CM33/secure/secure_context_port_asm.s
406        IAR/ARM_CM33/secure/secure_context.c
407        IAR/ARM_CM33/secure/secure_heap.c
408        IAR/ARM_CM33/secure/secure_init.c>
409
410    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM33_NTZ_NONSECURE>:
411        IAR/ARM_CM33_NTZ/non_secure/port.c
412        IAR/ARM_CM33_NTZ/non_secure/portasm.s>
413
414    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM35P_NONSECURE>:
415        IAR/ARM_CM35P/non_secure/port.c
416        IAR/ARM_CM35P/non_secure/portasm.s>
417
418    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM35P_SECURE>:
419        IAR/ARM_CM35P/secure/secure_context_port_asm.s
420        IAR/ARM_CM35P/secure/secure_context.c
421        IAR/ARM_CM35P/secure/secure_heap.c
422        IAR/ARM_CM35P/secure/secure_init.c>
423
424    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM35P_NTZ_NONSECURE>:
425        IAR/ARM_CM35P_NTZ/non_secure/port.c
426        IAR/ARM_CM35P_NTZ/non_secure/portasm.s>
427
428    # ARMv8.1-M ports for IAR EWARM
429    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM55_NONSECURE>:
430        IAR/ARM_CM55/non_secure/port.c
431        IAR/ARM_CM55/non_secure/portasm.s>
432
433    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM55_SECURE>:
434        IAR/ARM_CM55/secure/secure_context_port_asm.s
435        IAR/ARM_CM55/secure/secure_context.c
436        IAR/ARM_CM55/secure/secure_heap.c
437        IAR/ARM_CM55/secure/secure_init.c>
438
439    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM55_NTZ_NONSECURE>:
440        IAR/ARM_CM55_NTZ/non_secure/port.c
441        IAR/ARM_CM55_NTZ/non_secure/portasm.s>
442
443    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM85_NONSECURE>:
444        IAR/ARM_CM85/non_secure/port.c
445        IAR/ARM_CM85/non_secure/portasm.s>
446
447    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM85_SECURE>:
448        IAR/ARM_CM85/secure/secure_context_port_asm.s
449        IAR/ARM_CM85/secure/secure_context.c
450        IAR/ARM_CM85/secure/secure_heap.c
451        IAR/ARM_CM85/secure/secure_init.c>
452
453    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM85_NTZ_NONSECURE>:
454        IAR/ARM_CM85_NTZ/non_secure/port.c
455        IAR/ARM_CM85_NTZ/non_secure/portasm.s>
456
457    # ARMv7-R Ports for IAR EWARM
458    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CRX_NOGIC>:
459        IAR/ARM_CRx_No_GIC/port.c
460        IAR/ARM_CRx_No_GIC/portASM.s>
461
462    # Microchip (formerly Atmel) AVR8 ports for IAR EWAVR
463    $<$<STREQUAL:${FREERTOS_PORT},IAR_ATMEGA323>:
464        IAR/ATMega323/port.c
465        IAR/ATMega323/portmacro.s90>
466
467    $<$<STREQUAL:${FREERTOS_PORT},IAR_AVR_AVRDX>:
468        IAR/AVR_AVRDx/port.c
469        IAR/AVR_AVRDx/portmacro.s90>
470
471    $<$<STREQUAL:${FREERTOS_PORT},IAR_AVR_MEGA0>:
472        IAR/AVR_Mega0/port.c
473        IAR/AVR_Mega0/portmacro.s90>
474
475    # Microchip (formerly Atmel) AVR32 port for IAR Embedded Workbench for AVR32
476    $<$<STREQUAL:${FREERTOS_PORT},IAR_AVR32_UC3>:
477        IAR/AVR32_UC3/exception.s82
478        IAR/AVR32_UC3/port.c
479        IAR/AVR32_UC3/read.c
480        IAR/AVR32_UC3/write.c>
481
482    # Texas Instruments MSP430 ports for IAR Embedded Workbench for MSP430
483    $<$<STREQUAL:${FREERTOS_PORT},IAR_MSP430>:
484        IAR/MSP430/port.c
485        IAR/MSP430/portext.s43>
486
487    $<$<STREQUAL:${FREERTOS_PORT},IAR_MSP430X>:
488        IAR/MSP430X/port.c
489        IAR/MSP430X/portext.s43>
490
491    # RISC-V architecture port for IAR Embedded Workbench for RISC-V
492    $<$<STREQUAL:${FREERTOS_PORT},IAR_RISC_V>:
493        IAR/RISC-V/port.c
494        IAR/RISC-V/portASM.s>
495
496    # Renesas RL78 port for IAR EWRL78
497    $<$<STREQUAL:${FREERTOS_PORT},IAR_RL78>:
498        IAR/RL78/port.c
499        IAR/RL78/portasm.s87>
500
501    # Renesas RX architecture ports for IAR EWRX
502    $<$<STREQUAL:${FREERTOS_PORT},IAR_RX100>:
503        IAR/RX100/port.c
504        IAR/RX100/port_asm.s>
505
506    $<$<STREQUAL:${FREERTOS_PORT},IAR_RX600>:
507        IAR/RX600/port.c
508        IAR/RX600/port_asm.s>
509
510    $<$<STREQUAL:${FREERTOS_PORT},IAR_RX700_V3_DPFPU>:
511        IAR/RX700v3_DPFPU/port.c>
512
513    $<$<STREQUAL:${FREERTOS_PORT},IAR_RX_V2>:
514        IAR/RXv2/port.c
515        IAR/RXv2/port_asm.s>
516
517    # Renesas (formerly NEC) V850ES port for IAR EWV850
518    $<$<STREQUAL:${FREERTOS_PORT},IAR_V850ES_FX3>:
519        IAR/V850ES/port.c
520        IAR/V850ES/portasm_Fx3.s85>
521
522    $<$<STREQUAL:${FREERTOS_PORT},IAR_V850ES_HX3>:
523        IAR/V850ES/port.c
524        IAR/V850ES/portasm_Hx2.s85>
525
526    # ARMv4T ARM7TDMI ports for IAR Embedded Workbench for ARM
527    $<$<STREQUAL:${FREERTOS_PORT},IAR_STR71X>:
528        IAR/STR71x/port.c
529        IAR/STR71x/portasm.s79>
530
531    $<$<STREQUAL:${FREERTOS_PORT},IAR_STR75X>:
532        IAR/STR75x/port.c
533        IAR/STR75x/portasm.s79>
534
535    $<$<STREQUAL:${FREERTOS_PORT},IAR_LPC2000>:
536        IAR/LPC2000/port.c
537        IAR/LPC2000/portasm.s79>
538
539    $<$<STREQUAL:${FREERTOS_PORT},IAR_ATMEL_SAM7S64>:
540        IAR/AtmelSAM7S64/port.c
541        IAR/AtmelSAM7S64/portasm.s79>
542
543    # ARMv5TE ARM926 ports for IAR Embedded Workbench for ARM
544    $<$<STREQUAL:${FREERTOS_PORT},IAR_STR91X>:
545        IAR/STR91x/port.c
546        IAR/STR91x/portasm.s79>
547
548    $<$<STREQUAL:${FREERTOS_PORT},IAR_ATMEL_SAM9XE>:
549        IAR/AtmelSAM9XE/port.c
550        IAR/AtmelSAM9XE/portasm.s79>
551
552    # ARM Cortex-M4F port for the MikroElektronika MikroC compiler
553    $<$<STREQUAL:${FREERTOS_PORT},MIKROC_ARM_CM4F>:
554        MikroC/ARM_CM4F/port.c>
555
556    # Microchip PIC18 8-bit MCU port for MPLAB XC8
557    $<$<STREQUAL:${FREERTOS_PORT},MPLAB_PIC18F>:
558        MPLAB/PIC18F/port.c>
559
560    # Microchip PIC24 16-bit MCU port for MPLAB XC16
561    $<$<STREQUAL:${FREERTOS_PORT},MPLAB_PIC24>:
562        MPLAB/PIC24_dsPIC/port.c
563        MPLAB/PIC24_dsPIC/portasm_PIC24.S> # TODO: What to do with portasm_dsPIC.S ?
564
565    # Microchip MIPS 32-Bit MCU ports for MPLAB XC32
566    $<$<STREQUAL:${FREERTOS_PORT},MPLAB_PIC32MEC14XX>:
567        MPLAB/PIC32MEC14xx/port.c
568        MPLAB/PIC32MEC14xx/port_asm.S>
569
570    $<$<STREQUAL:${FREERTOS_PORT},MPLAB_PIC32MX>:
571        MPLAB/PIC32MX/port.c
572        MPLAB/PIC32MX/port_asm.S>
573
574    $<$<STREQUAL:${FREERTOS_PORT},MPLAB_PIC32MZ>:
575        MPLAB/PIC32MZ/port.c
576        MPLAB/PIC32MZ/port_asm.S>
577
578    # Windows Simulator for Microsoft Visual C Compiler and MinGW GCC
579    $<$<STREQUAL:${FREERTOS_PORT},MSVC_MINGW>:
580        MSVC-MingW/port.c>
581
582    # 16 bit DOS ports for Open Watcom
583    $<$<STREQUAL:${FREERTOS_PORT},OWATCOM_16BIT_DOS_FLSH186>:
584        oWatcom/16BitDOS/common/portcomn.c
585        oWatcom/16BitDOS/Flsh186/port.c>
586
587    $<$<STREQUAL:${FREERTOS_PORT},OWATCOM_16BIT_DOS_PC>:
588        oWatcom/16BitDOS/common/portcomn.c
589        oWatcom/16BitDOS/PC/port.c>
590
591    $<$<STREQUAL:${FREERTOS_PORT},PARADIGM_TERN_EE_LARGE>:
592        Paradigm/Tern_EE/large_untested/port.c>
593
594    $<$<STREQUAL:${FREERTOS_PORT},PARADIGM_TERN_EE_SMALL>:
595        Paradigm/Tern_EE/small/port.c>
596
597    # Renesas RX mcu ports for Renesas CC-RX
598    $<$<STREQUAL:${FREERTOS_PORT},RENESAS_RX100>:
599        Renesas/RX100/port.c
600        Renesas/RX100/port_asm.src>
601
602    $<$<STREQUAL:${FREERTOS_PORT},RENESAS_RX200>:
603        Renesas/RX200/port.c
604        Renesas/RX200/port_asm.src>
605
606    $<$<STREQUAL:${FREERTOS_PORT},RENESAS_RX600>:
607        Renesas/RX600/port.c
608        Renesas/RX600/port_asm.src>
609
610    $<$<STREQUAL:${FREERTOS_PORT},RENESAS_RX600_V2>:
611        Renesas/RX600v2/port.c
612        Renesas/RX600v2/port_asm.src>
613
614    $<$<STREQUAL:${FREERTOS_PORT},RENESAS_RX700_V3_DPFPU>:
615        Renesas/RX700v3_DPFPU/port.c
616        Renesas/RX700v3_DPFPU/port_asm.src>
617
618    # Renesas (formerly  Hitach) SHA2 SuperH port for the Renesas SH C Compiler
619    $<$<STREQUAL:${FREERTOS_PORT},RENESAS_SH2A_FPU>:
620        Renesas/SH2A_FPU/port.c
621        Renesas/SH2A_FPU/portasm.src>
622
623    # Texas Instruments MSP430 port for Rowley CrossWorks
624    $<$<STREQUAL:${FREERTOS_PORT},ROWLEY_MSP430F449>:
625        Rowley/MSP430F449/port.c
626        Rowley/MSP430F449/portext.asm>
627
628    # ARMv7-A Cortex-A9 port for ARM RVDS / armcc
629    $<$<STREQUAL:${FREERTOS_PORT},RVDS_ARM_CA9>:
630        RVDS/ARM_CA9/port.c
631        RVDS/ARM_CA9/portASM.s>
632
633    # ARMv6-M port for ARM RVDS / armcc
634    $<$<STREQUAL:${FREERTOS_PORT},RVDS_ARM_CM0>:
635        RVDS/ARM_CM0/port.c>
636
637    # ARMv7-M port for ARM RVDS / armcc
638    $<$<STREQUAL:${FREERTOS_PORT},RVDS_ARM_CM3>:
639        RVDS/ARM_CM3/port.c>
640
641    # ARMv7E-M ports for ARM RVDS / armcc
642    $<$<STREQUAL:${FREERTOS_PORT},RVDS_ARM_CM4_MPU>:
643        RVDS/ARM_CM4_MPU/port.c>
644
645    $<$<STREQUAL:${FREERTOS_PORT},RVDS_ARM_CM4F>:
646        RVDS/ARM_CM4F/port.c>
647
648    $<$<STREQUAL:${FREERTOS_PORT},RVDS_ARM_CM7>:
649        RVDS/ARM_CM7/r0p1/port.c>
650
651    # ARMv4T / ARM7TDMI LPC21XX port for ARM RVDS / armcc
652    $<$<STREQUAL:${FREERTOS_PORT},RVDS_ARM7_LPC21XX>:
653        RVDS/ARM7_LPC21xx/port.c
654        RVDS/ARM7_LPC21xx/portASM.s>
655
656    # Cygnal c8051 port for SDCC (Small Device C Compiler)
657    $<$<STREQUAL:${FREERTOS_PORT},SDCC_CYGNAL>:
658        SDCC/Cygnal/port.c>
659
660    # Infineon (formerly Fujitsu, Spansion, Cypress) MB9x ports for Softune C Compiler
661    $<$<STREQUAL:${FREERTOS_PORT},SOFTUNE_MB91460>:
662        Softune/MB91460/__STD_LIB_sbrk.c
663        Softune/MB91460/port.c>
664
665    $<$<STREQUAL:${FREERTOS_PORT},SOFTUNE_MB96340>:
666        Softune/MB96340/__STD_LIB_sbrk.c
667        Softune/MB96340/port.c>
668
669    # ARMv7E-M (Cortex-M4F) port for TASKING VX-toolset for ARM
670    $<$<STREQUAL:${FREERTOS_PORT},TASKING_ARM_CM4F>:
671        Tasking/ARM_CM4F/port.c
672        Tasking/ARM_CM4F/port_asm.asm>
673
674    # Port for C-SKY T-HEAD CK802
675    $<$<STREQUAL:${FREERTOS_PORT},CDK_THEAD_CK802>:
676        ThirdParty/CDK/T-HEAD_CK802/port.c
677        ThirdParty/CDK/T-HEAD_CK802/portasm.S>
678
679    # Tensilica Xtensa port for XCC
680    $<$<STREQUAL:${FREERTOS_PORT},XCC_XTENSA>:
681        ThirdParty/XCC/Xtensa/port.c
682        ThirdParty/XCC/Xtensa/portasm.S
683        ThirdParty/XCC/Xtensa/portclib.c
684        ThirdParty/XCC/Xtensa/xtensa_context.S
685        ThirdParty/XCC/Xtensa/xtensa_init.c
686        ThirdParty/XCC/Xtensa/xtensa_intr_asm.S
687        ThirdParty/XCC/Xtensa/xtensa_intr.c
688        ThirdParty/XCC/Xtensa/xtensa_overlay_os_hook.c
689        ThirdParty/XCC/Xtensa/xtensa_vectors.S>
690
691    # Microchip PIC18 port for WIZ-C
692    $<$<STREQUAL:${FREERTOS_PORT},WIZC_PIC18>:
693        WizC/PIC18/port.c
694        WizC/PIC18/Drivers/Tick/isrTick.c
695        WizC/PIC18/Drivers/Tick/Tick.c>
696)
697
698if( FREERTOS_PORT MATCHES "GCC_ARM_CM(3|4)_MPU" OR
699    FREERTOS_PORT STREQUAL "IAR_ARM_CM4F_MPU" OR
700    FREERTOS_PORT STREQUAL "RVDS_ARM_CM4_MPU" OR
701    FREERTOS_PORT MATCHES "GCC_ARM_CM(23|33|55|85)_NTZ_NONSECURE" OR
702    FREERTOS_PORT MATCHES "GCC_ARM_CM(23|33|55|85)_NONSECURE" OR
703    FREERTOS_PORT MATCHES "GCC_ARM_CM(33|55|85)_TFM" OR
704    FREERTOS_PORT MATCHES "IAR_ARM_CM(23|33|55|85)_NTZ_NONSECURE" OR
705    FREERTOS_PORT MATCHES "IAR_ARM_CM(23|33|55|85)_NONSECURE"
706)
707    target_sources(freertos_kernel_port PRIVATE Common/mpu_wrappers.c)
708endif()
709
710target_include_directories(freertos_kernel_port PUBLIC
711    # 16-Bit DOS ports for BCC
712    $<$<STREQUAL:${FREERTOS_PORT},BCC_16BIT_DOS_FLSH186>:
713        ${CMAKE_CURRENT_LIST_DIR}/BCC/16BitDOS/common
714        ${CMAKE_CURRENT_LIST_DIR}/BCC/16BitDOS/Flsh186>
715
716    $<$<STREQUAL:${FREERTOS_PORT},BCC_16BIT_DOS_PC>:
717        ${CMAKE_CURRENT_LIST_DIR}/BCC/16BitDOS/common
718        ${CMAKE_CURRENT_LIST_DIR}/BCC/16BitDOS/PC>
719
720    # ARMv7-M port for Texas Instruments Code Composer Studio
721    $<$<STREQUAL:${FREERTOS_PORT},CCS_ARM_CM3>:${CMAKE_CURRENT_LIST_DIR}/CCS/ARM_CM3>
722
723    # ARMv7E-M port for Texas Instruments Code Composer Studio
724    $<$<STREQUAL:${FREERTOS_PORT},CCS_ARM_CM4F>:${CMAKE_CURRENT_LIST_DIR}/CCS/ARM_CM4F>
725
726    # ARMv7-R port for Texas Instruments Code Composer Studio
727    $<$<STREQUAL:${FREERTOS_PORT},CCS_ARM_CR4>:${CMAKE_CURRENT_LIST_DIR}/CCS/ARM_Cortex-R4>
728
729    # Texas Instruments MSP430 port for Texas Instruments Code Composer Studio
730    $<$<STREQUAL:${FREERTOS_PORT},CCS_MSP430X>:${CMAKE_CURRENT_LIST_DIR}/CCS/MSP430X>
731
732    # NXP (formerly Motorola, Freescale) Cold Fire and 68HCS12 ports for Code Warrior
733    $<$<STREQUAL:${FREERTOS_PORT},CODEWARRIOR_COLDFIRE_V1>:${CMAKE_CURRENT_LIST_DIR}/CodeWarrior/ColdFire_V1>
734    $<$<STREQUAL:${FREERTOS_PORT},CODEWARRIOR_COLDFIRE_V2>:${CMAKE_CURRENT_LIST_DIR}/CodeWarrior/ColdFire_V2>
735    $<$<STREQUAL:${FREERTOS_PORT},CODEWARRIOR_HCS12>:${CMAKE_CURRENT_LIST_DIR}/CodeWarrior/HCS12>
736
737    # ARMv7-A port for GCC
738    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CA9>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CA9>
739
740    # ARMv8-A ports for GCC
741    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CA53_64_BIT>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CA53_64_BIT>
742    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CA53_64_BIT_SRE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CA53_64_BIT_SRE>
743
744    # ARMv6-M port for GCC
745    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM0>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM0>
746
747    # ARMv6-M / Cortex-M0 Raspberry PI RP2040 port for GCC
748    $<$<STREQUAL:${FREERTOS_PORT},GCC_RP2040>:${CMAKE_CURRENT_LIST_DIR}/ThirdParty/GCC/RP2040/include>
749
750    # ARMv7-M ports for GCC
751    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM3>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM3>
752    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM3_MPU>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM3_MPU>
753
754    # ARMv7E-M ports for GCC
755    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM4_MPU>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM4_MPU>
756    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM4F>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM4F>
757    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM7>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM7/r0p1>
758
759    # ARMv8-M ports for GCC
760    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM23_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM23/non_secure>
761    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM23_SECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM23/secure>
762    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM23_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM23_NTZ/non_secure>
763
764    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM33_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM33/non_secure>
765    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM33_SECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM33/secure>
766    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM33_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM33_NTZ/non_secure>
767    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM33_TFM>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM33_NTZ/non_secure>
768
769    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM35P_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM35P/non_secure>
770    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM35P_SECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM35P/secure>
771    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM35P_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM35P_NTZ/non_secure>
772
773    # ARMv8.1-M ports for GCC
774    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM55_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM55/non_secure>
775    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM55_SECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM55/secure>
776    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM55_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM55_NTZ/non_secure>
777    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM55_TFM>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM85_NTZ/non_secure>
778
779    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM85_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM85/non_secure>
780    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM85_SECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM85/secure>
781    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM85_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM85_NTZ/non_secure>
782    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM85_TFM>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM85_NTZ/non_secure>
783
784    # ARMv7-R ports for GCC
785    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CR5>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CR5>
786    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CRX_NOGIC>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CRx_No_GIC>
787
788    # ARMv4T ARM7TDMI ports for GCC
789    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM7_AT91FR40008>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM7_AT91FR40008>
790    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM7_AT91SAM7S>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM7_AT91SAM7S>
791    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM7_LPC2000>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM7_LPC2000>
792    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARM7_LPC23XX>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM7_LPC23xx>
793    $<$<STREQUAL:${FREERTOS_PORT},GCC_STR75X>:${CMAKE_CURRENT_LIST_DIR}/GCC/STR75x>
794
795    # Microchip (formerly Ateml) AVR8 ports for GCC
796    $<$<STREQUAL:${FREERTOS_PORT},GCC_ATMEGA323>:${CMAKE_CURRENT_LIST_DIR}/GCC/ATMega323>
797    $<$<STREQUAL:${FREERTOS_PORT},GCC_ATMEGA>:${CMAKE_CURRENT_LIST_DIR}/ThirdParty/GCC/ATmega>
798    $<$<STREQUAL:${FREERTOS_PORT},GCC_AVRDX>:${CMAKE_CURRENT_LIST_DIR}/ThirdParty/Partner-Supported-Ports/GCC/AVR_AVRDx>
799    $<$<STREQUAL:${FREERTOS_PORT},GCC_AVR_MEGA0>:${CMAKE_CURRENT_LIST_DIR}/ThirdParty/Partner-Supported-Ports/GCC/AVR_Mega0>
800
801    # Microchip (formerly Ateml) AVR32 port for GCC
802    $<$<STREQUAL:${FREERTOS_PORT},GCC_AVR32_UC3>:${CMAKE_CURRENT_LIST_DIR}/GCC/AVR32_UC3>
803
804    # NXP (formerly Motorola, Freescale) Cold Fire and 68HCS12 ports for GCC
805    $<$<STREQUAL:${FREERTOS_PORT},GCC_COLDFIRE_V2>:${CMAKE_CURRENT_LIST_DIR}/GCC/ColdFire_V2>
806    $<$<STREQUAL:${FREERTOS_PORT},GCC_HCS12>:${CMAKE_CURRENT_LIST_DIR}/GCC/HCS12>
807
808    # Cortus APS3 soft core port for GCC
809    $<$<STREQUAL:${FREERTOS_PORT},GCC_CORTUS_APS3>:${CMAKE_CURRENT_LIST_DIR}/GCC/CORTUS_APS3>
810
811    # Renesas (formerly Hitach) H8S port for GCC
812    $<$<STREQUAL:${FREERTOS_PORT},GCC_H8S2329>:${CMAKE_CURRENT_LIST_DIR}/GCC/H8S2329>
813
814    # x86 / IA32 flat memory model port for GCC
815    $<$<STREQUAL:${FREERTOS_PORT},GCC_IA32_FLAT>:${CMAKE_CURRENT_LIST_DIR}/GCC/IA32_flat>
816
817    # Intel (formerly Altera) NIOS II soft core port for GCC
818    $<$<STREQUAL:${FREERTOS_PORT},GCC_NIOSII>:${CMAKE_CURRENT_LIST_DIR}/GCC/NiosII>
819
820    # Texas Instruments MSP430 port for GCC
821    $<$<STREQUAL:${FREERTOS_PORT},GCC_MSP430F449>:${CMAKE_CURRENT_LIST_DIR}/GCC/MSP430F449>
822
823    # Xilinx MicroBlaze soft core ports for GCC
824    $<$<STREQUAL:${FREERTOS_PORT},GCC_MICROBLAZE>:${CMAKE_CURRENT_LIST_DIR}/GCC/MicroBlaze>
825    $<$<STREQUAL:${FREERTOS_PORT},GCC_MICROBLAZE_V8>:${CMAKE_CURRENT_LIST_DIR}/GCC/MicroBlazeV8>
826    $<$<STREQUAL:${FREERTOS_PORT},GCC_MICROBLAZE_V9>:${CMAKE_CURRENT_LIST_DIR}/GCC/MicroBlazeV9>
827
828    # Xilinx PCC4XX soft core ports for GCC
829    $<$<STREQUAL:${FREERTOS_PORT},GCC_PPC405_XILINX>:${CMAKE_CURRENT_LIST_DIR}/GCC/PPC405_Xilinx>
830    $<$<STREQUAL:${FREERTOS_PORT},GCC_PPC440_XILINX>:${CMAKE_CURRENT_LIST_DIR}/GCC/PPC440_Xilinx>
831
832    # RISC-V architecture ports for GCC
833    $<$<STREQUAL:${FREERTOS_PORT},GCC_RISC_V>:
834        ${CMAKE_CURRENT_LIST_DIR}/GCC/RISC-V
835        ${CMAKE_CURRENT_LIST_DIR}/GCC/RISC-V/chip_specific_extensions/RISCV_MTIME_CLINT_no_extensions>
836
837    $<$<STREQUAL:${FREERTOS_PORT},GCC_RISC_V_PULPINO_VEGA_RV32M1RM>:
838        ${CMAKE_CURRENT_LIST_DIR}/GCC/RISC-V
839        ${CMAKE_CURRENT_LIST_DIR}/GCC/RISC-V/chip_specific_extensions/Pulpino_Vega_RV32M1RM>
840
841    # Renesas RL78 port for GCC
842    $<$<STREQUAL:${FREERTOS_PORT},GCC_RL78>:${CMAKE_CURRENT_LIST_DIR}/GCC/RL78>
843
844    # Renesas RX architecture ports for GCC
845    $<$<STREQUAL:${FREERTOS_PORT},GCC_RX100>:${CMAKE_CURRENT_LIST_DIR}/GCC/RX100>
846    $<$<STREQUAL:${FREERTOS_PORT},GCC_RX200>:${CMAKE_CURRENT_LIST_DIR}/GCC/RX200>
847    $<$<STREQUAL:${FREERTOS_PORT},GCC_RX600>:${CMAKE_CURRENT_LIST_DIR}/GCC/RX600>
848    $<$<STREQUAL:${FREERTOS_PORT},GCC_RX600_V2>:${CMAKE_CURRENT_LIST_DIR}/GCC/RX600v2>
849    $<$<STREQUAL:${FREERTOS_PORT},GCC_RX700_V3_DPFPU>:${CMAKE_CURRENT_LIST_DIR}/GCC/RX700v3_DPFPU>
850
851    # Infineon TriCore 1782 port for GCC
852    $<$<STREQUAL:${FREERTOS_PORT},GCC_TRICORE_1782>:${CMAKE_CURRENT_LIST_DIR}/GCC/TriCore_1782>
853
854    # Synopsys ARC architecture ports for GCC
855    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARC_EM_HS>:${CMAKE_CURRENT_LIST_DIR}/ThirdParty/GCC/ARC_EM_HS>
856    $<$<STREQUAL:${FREERTOS_PORT},GCC_ARC_V1>:${CMAKE_CURRENT_LIST_DIR}/ThirdParty/GCC/ARC_v1>
857
858    # Posix Simulator port for GCC
859    $<$<STREQUAL:${FREERTOS_PORT},GCC_POSIX>:
860        ${CMAKE_CURRENT_LIST_DIR}/ThirdParty/GCC/Posix
861        ${CMAKE_CURRENT_LIST_DIR}/ThirdParty/GCC/Posix/utils>
862
863    # Xtensa LX / Espressif ESP32 port for GCC
864    $<$<STREQUAL:${FREERTOS_PORT},GCC_XTENSA_ESP32>:
865        ${CMAKE_CURRENT_LIST_DIR}/ThirdParty/GCC/Xtensa_ESP32
866        ${CMAKE_CURRENT_LIST_DIR}/ThirdParty/GCC/Xtensa_ESP32/include>
867
868    # Renesas (formerly NEC) 78K port for IAR EW78K
869    $<$<STREQUAL:${FREERTOS_PORT},IAR_78K0K>:${CMAKE_CURRENT_LIST_DIR}/IAR/78K0R>
870
871    # ARMv7-A ports for IAR EWARM
872    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CA5_NOGIC>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CA5_No_GIC>
873    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CA9>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CA9>
874
875    # ARMv6-M port for IAR EWARM
876    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM0>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM0>
877
878    # ARMv7-M port for IAR EWARM
879    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM3>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM3>
880
881    # ARMv7E-M ports for IAR EWARM
882    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM4F>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM4F>
883    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM4F_MPU>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM4F_MPU>
884    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM7>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM7/r0p1>
885
886    # ARMv8-M Ports for IAR EWARM
887    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM23_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM23/non_secure>
888    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM23_SECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM23/secure>
889    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM23_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM23_NTZ/non_secure>
890
891    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM33_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM33/non_secure>
892    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM33_SECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM33/secure>
893    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM33_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM33_NTZ/non_secure>
894
895    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM35P_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM35P/non_secure>
896    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM35P_SECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM35P/secure>
897    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM35P_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM35P_NTZ/non_secure>
898
899    # ARMv8.1-M ports for IAR EWARM
900    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM55_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM55/non_secure>
901    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM55_SECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM55/secure>
902    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM55_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM55_NTZ/non_secure>
903
904    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM85_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM85/non_secure>
905    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM85_SECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM85/secure>
906    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM85_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM85_NTZ/non_secure>
907
908    # ARMv7-R Ports for IAR EWARM
909    $<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CRX_NOGIC>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CRx_No_GIC>
910
911    # ARMv4T ARM7TDMI ports for IAR Embedded Workbench for ARM
912    $<$<STREQUAL:${FREERTOS_PORT},IAR_STR71X>:${CMAKE_CURRENT_LIST_DIR}/IAR/STR71x>
913    $<$<STREQUAL:${FREERTOS_PORT},IAR_STR75X>:${CMAKE_CURRENT_LIST_DIR}/IAR/STR75x>
914    $<$<STREQUAL:${FREERTOS_PORT},IAR_LPC2000>:${CMAKE_CURRENT_LIST_DIR}/IAR/LPC2000>
915    $<$<STREQUAL:${FREERTOS_PORT},IAR_ATMEL_SAM7S64>:${CMAKE_CURRENT_LIST_DIR}/IAR/AtmelSAM7S64>
916
917    # ARMv5TE ARM926 ports for IAR Embedded Workbench for ARM
918    $<$<STREQUAL:${FREERTOS_PORT},IAR_STR91X>:${CMAKE_CURRENT_LIST_DIR}/IAR/STR91x>
919    $<$<STREQUAL:${FREERTOS_PORT},IAR_ATMEL_SAM9XE>:${CMAKE_CURRENT_LIST_DIR}/IAR/AtmelSAM9XE>
920
921    # Microchip (formerly Atmel) AVR8 ports for IAR EWAVR
922    $<$<STREQUAL:${FREERTOS_PORT},IAR_ATMEGA323>:${CMAKE_CURRENT_LIST_DIR}/IAR/ATMega323>
923    $<$<STREQUAL:${FREERTOS_PORT},IAR_AVR_AVRDX>:${CMAKE_CURRENT_LIST_DIR}/IAR/AVR_AVRDx>
924    $<$<STREQUAL:${FREERTOS_PORT},IAR_AVR_MEGA0>:${CMAKE_CURRENT_LIST_DIR}/IAR/AVR_Mega0>
925
926    # Microchip (formerly Atmel) AVR32 port for IAR Embedded Workbench for AVR32
927    $<$<STREQUAL:${FREERTOS_PORT},IAR_AVR32_UC3>:${CMAKE_CURRENT_LIST_DIR}/IAR/AVR32_UC3>
928
929    # Texas Instruments MSP430 ports for IAR Embedded Workbench for MSP430
930    $<$<STREQUAL:${FREERTOS_PORT},IAR_MSP430>:${CMAKE_CURRENT_LIST_DIR}/IAR/MSP430>
931    $<$<STREQUAL:${FREERTOS_PORT},IAR_MSP430X>:${CMAKE_CURRENT_LIST_DIR}/IAR/MSP430X>
932
933    # RISC-V architecture port for IAR Embedded Workbench for RISC-V
934    $<$<STREQUAL:${FREERTOS_PORT},IAR_RISC_V>:
935        ${CMAKE_CURRENT_LIST_DIR}/IAR/RISC-V
936        ${CMAKE_CURRENT_LIST_DIR}/IAR/RISC-V/chip_specific_extensions/RV32I_CLINT_no_extensions>
937
938    # Renesas RL78 port for IAR EWRL78
939    $<$<STREQUAL:${FREERTOS_PORT},IAR_RL78>:${CMAKE_CURRENT_LIST_DIR}/IAR/RL78>
940
941    # Renesas RX architecture ports for IAR EWRX
942    $<$<STREQUAL:${FREERTOS_PORT},IAR_RX100>:${CMAKE_CURRENT_LIST_DIR}/IAR/RX100>
943    $<$<STREQUAL:${FREERTOS_PORT},IAR_RX600>:${CMAKE_CURRENT_LIST_DIR}/IAR/RX600>
944    $<$<STREQUAL:${FREERTOS_PORT},IAR_RX700_V3_DPFPU>:${CMAKE_CURRENT_LIST_DIR}/IAR/RX700v3_DPFPU>
945    $<$<STREQUAL:${FREERTOS_PORT},IAR_RX_V2>:${CMAKE_CURRENT_LIST_DIR}/IAR/RXv2>
946
947    # Renesas (formerly NEC) V850ES port for IAR EWV850
948    $<$<STREQUAL:${FREERTOS_PORT},IAR_V850ES_FX3>:${CMAKE_CURRENT_LIST_DIR}/IAR/V850ES>
949    $<$<STREQUAL:${FREERTOS_PORT},IAR_V850ES_HX3>:${CMAKE_CURRENT_LIST_DIR}/IAR/V850ES>
950
951    # ARM Cortex-M4F port for the MikroElektronika MikroC compiler
952    $<$<STREQUAL:${FREERTOS_PORT},MIKROC_ARM_CM4F>:${CMAKE_CURRENT_LIST_DIR}/MikroC/ARM_CM4F>
953
954    # Microchip PIC18 8-bit MCU port for MPLAB XC8
955    $<$<STREQUAL:${FREERTOS_PORT},MPLAB_PIC18F>:${CMAKE_CURRENT_LIST_DIR}/MPLAB/PIC18F>
956
957    # Microchip PIC24 16-bit MCU port for MPLAB XC16
958    $<$<STREQUAL:${FREERTOS_PORT},MPLAB_PIC24>:${CMAKE_CURRENT_LIST_DIR}/MPLAB/PIC24_dsPIC>
959
960    # Microchip MIPS 32-Bit MCU ports for MPLAB XC32
961    $<$<STREQUAL:${FREERTOS_PORT},MPLAB_PIC32MEC14XX>:${CMAKE_CURRENT_LIST_DIR}/MPLAB/PIC32MEC14xx>
962    $<$<STREQUAL:${FREERTOS_PORT},MPLAB_PIC32MX>:${CMAKE_CURRENT_LIST_DIR}/MPLAB/PIC32MX>
963    $<$<STREQUAL:${FREERTOS_PORT},MPLAB_PIC32MZ>:${CMAKE_CURRENT_LIST_DIR}/MPLAB/PIC32MZ>
964
965    # Windows Simulator for Microsoft Visual C Compiler and MinGW GCC
966    $<$<STREQUAL:${FREERTOS_PORT},MSVC_MINGW>:${CMAKE_CURRENT_LIST_DIR}/MSVC-MingW>
967
968    # 16 bit DOS ports for Open Watcom
969    $<$<STREQUAL:${FREERTOS_PORT},OWATCOM_16BIT_DOS_FLSH186>:
970        ${CMAKE_CURRENT_LIST_DIR}/oWatcom/16BitDOS/common
971        ${CMAKE_CURRENT_LIST_DIR}/oWatcom/16BitDOS/Flsh186>
972    $<$<STREQUAL:${FREERTOS_PORT},OWATCOM_16BIT_DOS_PC>:
973        ${CMAKE_CURRENT_LIST_DIR}/oWatcom/16BitDOS/common
974        ${CMAKE_CURRENT_LIST_DIR}/oWatcom/16BitDOS/PC>
975
976    $<$<STREQUAL:${FREERTOS_PORT},PARADIGM_TERN_EE_LARGE>:${CMAKE_CURRENT_LIST_DIR}/Paradigm/Tern_EE/large_untested>
977    $<$<STREQUAL:${FREERTOS_PORT},PARADIGM_TERN_EE_SMALL>:${CMAKE_CURRENT_LIST_DIR}/Paradigm/Tern_EE/small>
978
979    # Renesas RX mcu ports for Renesas CC-RX
980    $<$<STREQUAL:${FREERTOS_PORT},RENESAS_RX100>:${CMAKE_CURRENT_LIST_DIR}/Renesas/RX100>
981    $<$<STREQUAL:${FREERTOS_PORT},RENESAS_RX200>:${CMAKE_CURRENT_LIST_DIR}/Renesas/RX200>
982    $<$<STREQUAL:${FREERTOS_PORT},RENESAS_RX600>:${CMAKE_CURRENT_LIST_DIR}/Renesas/RX600>
983    $<$<STREQUAL:${FREERTOS_PORT},RENESAS_RX600_V2>:${CMAKE_CURRENT_LIST_DIR}/Renesas/RX600v2>
984    $<$<STREQUAL:${FREERTOS_PORT},RENESAS_RX700_V3_DPFPU>:${CMAKE_CURRENT_LIST_DIR}/Renesas/RX700v3_DPFPU>
985
986    # Renesas (formerly  Hitach) SHA2 SuperH port for the Renesas SH C Compiler
987    $<$<STREQUAL:${FREERTOS_PORT},RENESAS_SH2A_FPU>:${CMAKE_CURRENT_LIST_DIR}/Renesas/SH2A_FPU>
988
989    # Texas Instruments MSP430 port for Rowley CrossWorks
990    $<$<STREQUAL:${FREERTOS_PORT},ROWLEY_MSP430F449>:${CMAKE_CURRENT_LIST_DIR}/Rowley/MSP430F449>
991
992    # ARMv7-A Cortex-A9 port for ARM RVDS / armcc
993    $<$<STREQUAL:${FREERTOS_PORT},RVDS_ARM_CA9>:${CMAKE_CURRENT_LIST_DIR}/RVDS/ARM_CA9>
994
995    # ARMv6-M port for ARM RVDS / armcc
996    $<$<STREQUAL:${FREERTOS_PORT},RVDS_ARM_CM0>:${CMAKE_CURRENT_LIST_DIR}/RVDS/ARM_CM0>
997
998    # ARMv7-M port for ARM RVDS / armcc
999    $<$<STREQUAL:${FREERTOS_PORT},RVDS_ARM_CM3>:${CMAKE_CURRENT_LIST_DIR}/RVDS/ARM_CM3>
1000
1001    # ARMv7E-M ports for ARM RVDS / armcc
1002    $<$<STREQUAL:${FREERTOS_PORT},RVDS_ARM_CM4_MPU>:${CMAKE_CURRENT_LIST_DIR}/RVDS/ARM_CM4_MPU>
1003    $<$<STREQUAL:${FREERTOS_PORT},RVDS_ARM_CM4F>:${CMAKE_CURRENT_LIST_DIR}/RVDS/ARM_CM4F>
1004    $<$<STREQUAL:${FREERTOS_PORT},RVDS_ARM_CM7>:${CMAKE_CURRENT_LIST_DIR}/RVDS/ARM_CM7/r0p1>
1005
1006    # ARMv4T / ARM7TDMI LPC21XX port for ARM RVDS / armcc
1007    $<$<STREQUAL:${FREERTOS_PORT},RVDS_ARM7_LPC21XX>:${CMAKE_CURRENT_LIST_DIR}/RVDS/ARM7_LPC21xx>
1008
1009    # Cygnal c8051 port for SDCC (Small Device C Compiler)
1010    $<$<STREQUAL:${FREERTOS_PORT},SDCC_CYGNAL>:${CMAKE_CURRENT_LIST_DIR}/SDCC/Cygnal>
1011
1012    # Infineon (formerly Fujitsu, Spansion, Cypress) MB9x ports for Softune C Compiler
1013    $<$<STREQUAL:${FREERTOS_PORT},SOFTUNE_MB91460>:${CMAKE_CURRENT_LIST_DIR}/Softune/MB91460>
1014    $<$<STREQUAL:${FREERTOS_PORT},SOFTUNE_MB96340>:${CMAKE_CURRENT_LIST_DIR}/Softune/MB96340>
1015
1016    # ARMv7E-M (Cortex-M4F) port for TASKING VX-toolset for ARM
1017    $<$<STREQUAL:${FREERTOS_PORT},TASKING_ARM_CM4F>:${CMAKE_CURRENT_LIST_DIR}/Tasking/ARM_CM4F>
1018
1019    # Port for C-SKY T-HEAD CK802
1020    $<$<STREQUAL:${FREERTOS_PORT},CDK_THEAD_CK802>:${CMAKE_CURRENT_LIST_DIR}/ThirdParty/CDK/T-HEAD_CK802>
1021
1022    # Tensilica Xtensa port for XCC
1023    $<$<STREQUAL:${FREERTOS_PORT},XCC_XTENSA>:${CMAKE_CURRENT_LIST_DIR}/ThirdParty/XCC/Xtensa>
1024
1025    # Microchip PIC18 port for WIZ-C
1026    $<$<STREQUAL:${FREERTOS_PORT},WIZC_PIC18>:${CMAKE_CURRENT_LIST_DIR}/WizC/PIC18>
1027)
1028
1029if(FREERTOS_PORT STREQUAL GCC_POSIX)
1030    find_package(Threads REQUIRED)
1031endif()
1032
1033target_link_libraries(freertos_kernel_port
1034    PUBLIC
1035        $<$<STREQUAL:${FREERTOS_PORT},GCC_RP2040>:pico_base_headers>
1036        $<$<STREQUAL:${FREERTOS_PORT},GCC_XTENSA_ESP32>:idf::esp32>
1037    PRIVATE
1038        freertos_kernel_include
1039        $<$<STREQUAL:${FREERTOS_PORT},GCC_POSIX>:Threads::Threads>
1040        "$<$<STREQUAL:${FREERTOS_PORT},GCC_RP2040>:hardware_clocks;hardware_exception>"
1041        $<$<STREQUAL:${FREERTOS_PORT},MSVC_MINGW>:winmm> # Windows library which implements timers
1042)
1043