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