]> begriffs open source - freertos/blob - portable/CMakeLists.txt
Use the bigger priority whenever possible. (#760)
[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     # 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
698 if( 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)
708 endif()
709
710 target_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
1029 if(FREERTOS_PORT STREQUAL GCC_POSIX)
1030     find_package(Threads REQUIRED)
1031 endif()
1032
1033 target_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 )