| cmake_minimum_required(VERSION 3.15) | 
 |  | 
 | # User is responsible to one mandatory option: | 
 | #   FREERTOS_PORT, if not specified and native port detected, uses the native compile. | 
 | # | 
 | # User is responsible for one library target: | 
 | #   freertos_config ,typcially an INTERFACE library | 
 | # | 
 | # DEPRECATED: FREERTOS_CONFIG_FILE_DIRECTORY - but still supported if no freertos_config defined for now. | 
 | #             May be removed at some point in the future. | 
 | # User can choose which heap implementation to use (either the implementations | 
 | # included with FreeRTOS [1..5] or a custom implementation ) by providing the | 
 | # option FREERTOS_HEAP. If the option is not set, the cmake will default to | 
 | # using heap_4.c. | 
 |  | 
 | # `freertos_config` target defines the path to FreeRTOSConfig.h and optionally other freertos based config files | 
 | if(NOT TARGET freertos_config ) | 
 |     if (NOT DEFINED FREERTOS_CONFIG_FILE_DIRECTORY ) | 
 |  | 
 |         message(FATAL_ERROR " freertos_config target not specified.  Please specify a cmake target that defines the include directory for FreeRTOSConfig.h:\n" | 
 |             "  add_library(freertos_config INTERFACE)\n" | 
 |             "  target_include_directories(freertos_config SYSTEM\n" | 
 |             "    INTERFACE\n" | 
 |             "      include) # The config file directory\n" | 
 |             "  target_compile_definitions(freertos_config\n" | 
 |             "    PUBLIC\n" | 
 |             "    projCOVERAGE_TEST=0)\n") | 
 |     else() | 
 |         message(WARNING " Using deprecated 'FREERTOS_CONFIG_FILE_DIRECTORY' - please update your project CMakeLists.txt file:\n" | 
 |             "  add_library(freertos_config INTERFACE)\n" | 
 |             "  target_include_directories(freertos_config SYSTEM\n" | 
 |             "    INTERFACE\n" | 
 |             "      include) # The config file directory\n" | 
 |             "  target_compile_definitions(freertos_config\n" | 
 |             "    PUBLIC\n" | 
 |             "    projCOVERAGE_TEST=0)\n") | 
 |     endif() | 
 | endif() | 
 |  | 
 | # Heap number or absolute path to custom heap implementation provided by user | 
 | set(FREERTOS_HEAP "4" CACHE STRING "FreeRTOS heap model number. 1 .. 5. Or absolute path to custom heap source file") | 
 |  | 
 | # FreeRTOS port option | 
 | if(NOT FREERTOS_PORT) | 
 |     message(WARNING " FREERTOS_PORT is not set. Please specify it from top-level CMake file (example):\n" | 
 |         "  set(FREERTOS_PORT GCC_ARM_CM4F CACHE STRING \"\")\n" | 
 |         " or from CMake command line option:\n" | 
 |         "  -DFREERTOS_PORT=GCC_ARM_CM4F\n" | 
 |         " \n" | 
 |         " Available port options:\n" | 
 |         " A_CUSTOM_PORT                    - Compiler: User Defined  Target: User Defined\n" | 
 |         " BCC_16BIT_DOS_FLSH186            - Compiler: BCC           Target: 16 bit DOS Flsh186\n" | 
 |         " BCC_16BIT_DOS_PC                 - Compiler: BCC           Target: 16 bit DOS PC\n" | 
 |         " CCS_ARM_CM3                      - Compiler: CCS           Target: ARM Cortex-M3\n" | 
 |         " CCS_ARM_CM4F                     - Compiler: CCS           Target: ARM Cortex-M4 with FPU\n" | 
 |         " CCS_ARM_CR4                      - Compiler: CCS           Target: ARM Cortex-R4\n" | 
 |         " CCS_MSP430X                      - Compiler: CCS           Target: MSP430X\n" | 
 |         " CODEWARRIOR_COLDFIRE_V1          - Compiler: CoreWarrior   Target: ColdFire V1\n" | 
 |         " CODEWARRIOR_COLDFIRE_V2          - Compiler: CoreWarrior   Target: ColdFire V2\n" | 
 |         " CODEWARRIOR_HCS12                - Compiler: CoreWarrior   Target: HCS12\n" | 
 |         " GCC_ARM_CA9                      - Compiler: GCC           Target: ARM Cortex-A9\n" | 
 |         " GCC_ARM_CA53_64_BIT              - Compiler: GCC           Target: ARM Cortex-A53 64 bit\n" | 
 |         " GCC_ARM_CA53_64_BIT_SRE          - Compiler: GCC           Target: ARM Cortex-A53 64 bit SRE\n" | 
 |         " GCC_ARM_CM0                      - Compiler: GCC           Target: ARM Cortex-M0\n" | 
 |         " GCC_ARM_CM3                      - Compiler: GCC           Target: ARM Cortex-M3\n" | 
 |         " GCC_ARM_CM3_MPU                  - Compiler: GCC           Target: ARM Cortex-M3 with MPU\n" | 
 |         " GCC_ARM_CM4_MPU                  - Compiler: GCC           Target: ARM Cortex-M4 with MPU\n" | 
 |         " GCC_ARM_CM4F                     - Compiler: GCC           Target: ARM Cortex-M4 with FPU\n" | 
 |         " GCC_ARM_CM7                      - Compiler: GCC           Target: ARM Cortex-M7\n" | 
 |         " GCC_ARM_CM23_NONSECURE           - Compiler: GCC           Target: ARM Cortex-M23 non-secure\n" | 
 |         " GCC_ARM_CM23_SECURE              - Compiler: GCC           Target: ARM Cortex-M23 secure\n" | 
 |         " GCC_ARM_CM23_NTZ_NONSECURE       - Compiler: GCC           Target: ARM Cortex-M23 non-trustzone non-secure\n" | 
 |         " GCC_ARM_CM33_NONSECURE           - Compiler: GCC           Target: ARM Cortex-M33 non-secure\n" | 
 |         " GCC_ARM_CM33_SECURE              - Compiler: GCC           Target: ARM Cortex-M33 secure\n" | 
 |         " GCC_ARM_CM33_NTZ_NONSECURE       - Compiler: GCC           Target: ARM Cortex-M33 non-trustzone non-secure\n" | 
 |         " GCC_ARM_CM33_TFM                 - Compiler: GCC           Target: ARM Cortex-M33 non-secure for TF-M\n" | 
 |         " GCC_ARM_CM35P_NONSECURE          - Compiler: GCC           Target: ARM Cortex-M35P non-secure\n" | 
 |         " GCC_ARM_CM35P_SECURE             - Compiler: GCC           Target: ARM Cortex-M35P secure\n" | 
 |         " GCC_ARM_CM35P_NTZ_NONSECURE      - Compiler: GCC           Target: ARM Cortex-M35P non-trustzone non-secure\n" | 
 |         " GCC_ARM_CM55_NONSECURE           - Compiler: GCC           Target: ARM Cortex-M55 non-secure\n" | 
 |         " GCC_ARM_CM55_SECURE              - Compiler: GCC           Target: ARM Cortex-M55 secure\n" | 
 |         " GCC_ARM_CM55_NTZ_NONSECURE       - Compiler: GCC           Target: ARM Cortex-M55 non-trustzone non-secure\n" | 
 |         " GCC_ARM_CM55_TFM                 - Compiler: GCC           Target: ARM Cortex-M55 non-secure for TF-M\n" | 
 |         " GCC_ARM_CM85_NONSECURE           - Compiler: GCC           Target: ARM Cortex-M85 non-secure\n" | 
 |         " GCC_ARM_CM85_SECURE              - Compiler: GCC           Target: ARM Cortex-M85 secure\n" | 
 |         " GCC_ARM_CM85_NTZ_NONSECURE       - Compiler: GCC           Target: ARM Cortex-M85 non-trustzone non-secure\n" | 
 |         " GCC_ARM_CM85_TFM                 - Compiler: GCC           Target: ARM Cortex-M85 non-secure for TF-M\n" | 
 |         " GCC_ARM_CR5                      - Compiler: GCC           Target: ARM Cortex-R5\n" | 
 |         " GCC_ARM_CRX_NOGIC                - Compiler: GCC           Target: ARM Cortex-Rx no GIC\n" | 
 |         " GCC_ARM7_AT91FR40008             - Compiler: GCC           Target: ARM7 Atmel AT91R40008\n" | 
 |         " GCC_ARM7_AT91SAM7S               - Compiler: GCC           Target: ARM7 Atmel AT91SAM7S\n" | 
 |         " GCC_ARM7_LPC2000                 - Compiler: GCC           Target: ARM7 LPC2000\n" | 
 |         " GCC_ARM7_LPC23XX                 - Compiler: GCC           Target: ARM7 LPC23xx\n" | 
 |         " GCC_ATMEGA323                    - Compiler: GCC           Target: ATMega323\n" | 
 |         " GCC_AVR32_UC3                    - Compiler: GCC           Target: AVR32 UC3\n" | 
 |         " GCC_COLDFIRE_V2                  - Compiler: GCC           Target: ColdFire V2\n" | 
 |         " GCC_CORTUS_APS3                  - Compiler: GCC           Target: CORTUS APS3\n" | 
 |         " GCC_H8S2329                      - Compiler: GCC           Target: H8S2329\n" | 
 |         " GCC_HCS12                        - Compiler: GCC           Target: HCS12\n" | 
 |         " GCC_IA32_FLAT                    - Compiler: GCC           Target: IA32 flat\n" | 
 |         " GCC_MICROBLAZE                   - Compiler: GCC           Target: MicroBlaze\n" | 
 |         " GCC_MICROBLAZE_V8                - Compiler: GCC           Target: MicroBlaze V8\n" | 
 |         " GCC_MICROBLAZE_V9                - Compiler: GCC           Target: MicroBlaze V9\n" | 
 |         " GCC_MSP430F449                   - Compiler: GCC           Target: MSP430F449\n" | 
 |         " GCC_NIOSII                       - Compiler: GCC           Target: NiosII\n" | 
 |         " GCC_PPC405_XILINX                - Compiler: GCC           Target: Xilinx PPC405\n" | 
 |         " GCC_PPC440_XILINX                - Compiler: GCC           Target: Xilinx PPC440\n" | 
 |         " GCC_RISC_V                       - Compiler: GCC           Target: RISC-V\n" | 
 |         " GCC_RISC_V_PULPINO_VEGA_RV32M1RM - Compiler: GCC           Target: RISC-V Pulpino Vega RV32M1RM\n" | 
 |         " GCC_RL78                         - Compiler: GCC           Target: Renesas RL78\n" | 
 |         " GCC_RX100                        - Compiler: GCC           Target: Renesas RX100\n" | 
 |         " GCC_RX200                        - Compiler: GCC           Target: Renesas RX200\n" | 
 |         " GCC_RX600                        - Compiler: GCC           Target: Renesas RX600\n" | 
 |         " GCC_RX600_V2                     - Compiler: GCC           Target: Renesas RX600 v2\n" | 
 |         " GCC_RX700_V3_DPFPU               - Compiler: GCC           Target: Renesas RX700 v3 with DPFPU\n" | 
 |         " GCC_STR75X                       - Compiler: GCC           Target: STR75x\n" | 
 |         " GCC_TRICORE_1782                 - Compiler: GCC           Target: TriCore 1782\n" | 
 |         " GCC_ARC_EM_HS                    - Compiler: GCC           Target: DesignWare ARC EM HS\n" | 
 |         " GCC_ARC_V1                       - Compiler: GCC           Target: DesignWare ARC v1\n" | 
 |         " GCC_ATMEGA                       - Compiler: GCC           Target: ATmega\n" | 
 |         " GCC_POSIX                        - Compiler: GCC           Target: Posix\n" | 
 |         " GCC_RP2040                       - Compiler: GCC           Target: RP2040 ARM Cortex-M0+\n" | 
 |         " GCC_XTENSA_ESP32                 - Compiler: GCC           Target: Xtensa ESP32\n" | 
 |         " GCC_AVRDX                        - Compiler: GCC           Target: AVRDx\n" | 
 |         " GCC_AVR_MEGA0                    - Compiler: GCC           Target: AVR Mega0\n" | 
 |         " IAR_78K0K                        - Compiler: IAR           Target: Renesas 78K0K\n" | 
 |         " IAR_ARM_CA5_NOGIC                - Compiler: IAR           Target: ARM Cortex-A5 no GIC\n" | 
 |         " IAR_ARM_CA9                      - Compiler: IAR           Target: ARM Cortex-A9\n" | 
 |         " IAR_ARM_CM0                      - Compiler: IAR           Target: ARM Cortex-M0\n" | 
 |         " IAR_ARM_CM3                      - Compiler: IAR           Target: ARM Cortex-M3\n" | 
 |         " IAR_ARM_CM4F                     - Compiler: IAR           Target: ARM Cortex-M4 with FPU\n" | 
 |         " IAR_ARM_CM4F_MPU                 - Compiler: IAR           Target: ARM Cortex-M4 with FPU and MPU\n" | 
 |         " IAR_ARM_CM7                      - Compiler: IAR           Target: ARM Cortex-M7\n" | 
 |         " IAR_ARM_CM23_NONSECURE           - Compiler: IAR           Target: ARM Cortex-M23 non-secure\n" | 
 |         " IAR_ARM_CM23_SECURE              - Compiler: IAR           Target: ARM Cortex-M23 secure\n" | 
 |         " IAR_ARM_CM23_NTZ_NONSECURE       - Compiler: IAR           Target: ARM Cortex-M23 non-trustzone non-secure\n" | 
 |         " IAR_ARM_CM33_NONSECURE           - Compiler: IAR           Target: ARM Cortex-M33 non-secure\n" | 
 |         " IAR_ARM_CM33_SECURE              - Compiler: IAR           Target: ARM Cortex-M33 secure\n" | 
 |         " IAR_ARM_CM33_NTZ_NONSECURE       - Compiler: IAR           Target: ARM Cortex-M33 non-trustzone non-secure\n" | 
 |         " IAR_ARM_CM35P_NONSECURE          - Compiler: IAR           Target: ARM Cortex-M35P non-secure\n" | 
 |         " IAR_ARM_CM35P_SECURE             - Compiler: IAR           Target: ARM Cortex-M35P secure\n" | 
 |         " IAR_ARM_CM35P_NTZ_NONSECURE      - Compiler: IAR           Target: ARM Cortex-M35P non-trustzone non-secure\n" | 
 |         " IAR_ARM_CM55_NONSECURE           - Compiler: IAR           Target: ARM Cortex-M55 non-secure\n" | 
 |         " IAR_ARM_CM55_SECURE              - Compiler: IAR           Target: ARM Cortex-M55 secure\n" | 
 |         " IAR_ARM_CM55_NTZ_NONSECURE       - Compiler: IAR           Target: ARM Cortex-M55 non-trustzone non-secure\n" | 
 |         " IAR_ARM_CM85_NONSECURE           - Compiler: IAR           Target: ARM Cortex-M85 non-secure\n" | 
 |         " IAR_ARM_CM85_SECURE              - Compiler: IAR           Target: ARM Cortex-M85 secure\n" | 
 |         " IAR_ARM_CM85_NTZ_NONSECURE       - Compiler: IAR           Target: ARM Cortex-M85 non-trustzone non-secure\n" | 
 |         " IAR_ARM_CRX_NOGIC                - Compiler: IAR           Target: ARM Cortex-Rx no GIC\n" | 
 |         " IAR_ATMEGA323                    - Compiler: IAR           Target: ATMega323\n" | 
 |         " IAR_ATMEL_SAM7S64                - Compiler: IAR           Target: Atmel SAM7S64\n" | 
 |         " IAR_ATMEL_SAM9XE                 - Compiler: IAR           Target: Atmel SAM9XE\n" | 
 |         " IAR_AVR_AVRDX                    - Compiler: IAR           Target: AVRDx\n" | 
 |         " IAR_AVR_MEGA0                    - Compiler: IAR           Target: AVR Mega0\n" | 
 |         " IAR_AVR32_UC3                    - Compiler: IAR           Target: AVR32 UC3\n" | 
 |         " IAR_LPC2000                      - Compiler: IAR           Target: LPC2000\n" | 
 |         " IAR_MSP430                       - Compiler: IAR           Target: MSP430\n" | 
 |         " IAR_MSP430X                      - Compiler: IAR           Target: MSP430X\n" | 
 |         " IAR_RISC_V                       - Compiler: IAR           Target: RISC-V\n" | 
 |         " IAR_RL78                         - Compiler: IAR           Target: Renesas RL78\n" | 
 |         " IAR_RX100                        - Compiler: IAR           Target: Renesas RX100\n" | 
 |         " IAR_RX600                        - Compiler: IAR           Target: Renesas RX600\n" | 
 |         " IAR_RX700_V3_DPFPU               - Compiler: IAR           Target: Renesas RX700 v3 with DPFPU\n" | 
 |         " IAR_RX_V2                        - Compiler: IAR           Target: Renesas RX v2\n" | 
 |         " IAR_STR71X                       - Compiler: IAR           Target: STR71x\n" | 
 |         " IAR_STR75X                       - Compiler: IAR           Target: STR75x\n" | 
 |         " IAR_STR91X                       - Compiler: IAR           Target: STR91x\n" | 
 |         " IAR_V850ES_FX3                   - Compiler: IAR           Target: Renesas V850ES/Fx3\n" | 
 |         " IAR_V850ES_HX3                   - Compiler: IAR           Target: Renesas V850ES/Hx3\n" | 
 |         " MIKROC_ARM_CM4F                  - Compiler: MikroC        Target: ARM Cortex-M4 with FPU\n" | 
 |         " MPLAB_PIC18F                     - Compiler: MPLAB         Target: PIC18F\n" | 
 |         " MPLAB_PIC24                      - Compiler: MPLAB         Target: PIC24\n" | 
 |         " MPLAB_PIC32MEC14XX               - Compiler: MPLAB         Target: PIC32MEC14xx\n" | 
 |         " MPLAB_PIC32MX                    - Compiler: MPLAB         Target: PIC32MX\n" | 
 |         " MPLAB_PIC32MZ                    - Compiler: MPLAB         Target: PIC32MZ\n" | 
 |         " MSVC_MINGW                       - Compiler: MSVC or MinGW Target: x86\n" | 
 |         " OWATCOM_16BIT_DOS_FLSH186        - Compiler: Open Watcom   Target: 16 bit DOS Flsh186\n" | 
 |         " OWATCOM_16BIT_DOS_PC             - Compiler: Open Watcom   Target: 16 bit DOS PC\n" | 
 |         " PARADIGM_TERN_EE_LARGE           - Compiler: Paradigm      Target: Tern EE large\n" | 
 |         " PARADIGM_TERN_EE_SMALL           - Compiler: Paradigm      Target: Tern EE small\n" | 
 |         " RENESAS_RX100                    - Compiler: Renesas       Target: RX100\n" | 
 |         " RENESAS_RX200                    - Compiler: Renesas       Target: RX200\n" | 
 |         " RENESAS_RX600                    - Compiler: Renesas       Target: RX600\n" | 
 |         " RENESAS_RX600_V2                 - Compiler: Renesas       Target: RX600 v2\n" | 
 |         " RENESAS_RX700_V3_DPFPU           - Compiler: Renesas       Target: RX700 v3 with DPFPU\n" | 
 |         " RENESAS_SH2A_FPU                 - Compiler: Renesas       Target: SH2A with FPU\n" | 
 |         " ROWLEY_MSP430F449                - Compiler: Rowley        Target: MSP430F449\n" | 
 |         " RVDS_ARM_CA9                     - Compiler: RVDS          Target: ARM Cortex-A9\n" | 
 |         " RVDS_ARM_CM0                     - Compiler: RVDS          Target: ARM Cortex-M0\n" | 
 |         " RVDS_ARM_CM3                     - Compiler: RVDS          Target: ARM Cortex-M3\n" | 
 |         " RVDS_ARM_CM4_MPU                 - Compiler: RVDS          Target: ARM Cortex-M4 with MPU\n" | 
 |         " RVDS_ARM_CM4F                    - Compiler: RVDS          Target: ARM Cortex-M4 with FPU\n" | 
 |         " RVDS_ARM_CM7                     - Compiler: RVDS          Target: ARM Cortex-M7\n" | 
 |         " RVDS_ARM7_LPC21XX                - Compiler: RVDS          Target: ARM7 LPC21xx\n" | 
 |         " SDCC_CYGNAL                      - Compiler: SDCC          Target: Cygnal\n" | 
 |         " SOFTUNE_MB91460                  - Compiler: Softune       Target: MB91460\n" | 
 |         " SOFTUNE_MB96340                  - Compiler: Softune       Target: MB96340\n" | 
 |         " TASKING_ARM_CM4F                 - Compiler: Tasking       Target: ARM Cortex-M4 with FPU\n" | 
 |         " CDK_THEAD_CK802                  - Compiler: CDK           Target: T-head CK802\n" | 
 |         " XCC_XTENSA                       - Compiler: XCC           Target: Xtensa\n" | 
 |         " WIZC_PIC18                       - Compiler: WizC          Target: PIC18") | 
 |     # Native FREERTOS_PORT for Linux and Windows MINGW builds | 
 |     if(UNIX) | 
 |         message(STATUS " Auto-Detected Unix, setting FREERTOS_PORT=GCC_POSIX") | 
 |         set(FREERTOS_PORT GCC_POSIX CACHE STRING "FreeRTOS port name") | 
 |     elseif(MINGW) | 
 |         message(STATUS " Auto-Detected MINGW, setting FREERTOS_PORT=MSVC_MINGW") | 
 |         set(FREERTOS_PORT MSVC_MINGW CACHE STRING "FreeRTOS port name") | 
 |     endif() | 
 | elseif((FREERTOS_PORT STREQUAL "A_CUSTOM_PORT") AND (NOT TARGET freertos_kernel_port) ) | 
 |     message(FATAL_ERROR " FREERTOS_PORT is set to A_CUSTOM_PORT. Please specify the custom port target with all necessary files. For example:\n" | 
 |     " Assuming a directory of:\n" | 
 |     "  FreeRTOSCustomPort/\n" | 
 |     "    CMakeLists.txt\n" | 
 |     "    port.c\n" | 
 |     "    portmacro.h\n" | 
 |     " Where FreeRTOSCustomPort/CMakeLists.txt is a modified version of:\n" | 
 |     "   add_library(freertos_kernel_port STATIC)\n" | 
 |     "   target_sources(freertos_kernel_port\n" | 
 |     "     PRIVATE\n" | 
 |     "       port.c\n" | 
 |     "       portmacro.h)\n" | 
 |     "   target_include_directories(freertos_kernel_port\n" | 
 |     "     PUBLIC\n" | 
 |     "      .)\n" | 
 |     "   target_link_libraries(freertos_kernel_port\n" | 
 |     "     PRIVATE\n" | 
 |     "       freertos_kernel)") | 
 | endif() | 
 |  | 
 | ######################################################################## | 
 | # Overall Compile Options | 
 | # Note the compile option strategy is to error on everything and then | 
 | # Per library opt-out of things that are warnings/errors. | 
 | # This ensures that no matter what strategy for compilation you take, the | 
 | # builds will still occur. | 
 | # | 
 | # Only tested with GNU and Clang. | 
 | # Other options are https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER_ID.html#variable:CMAKE_%3CLANG%3E_COMPILER_ID | 
 | # Naming of compilers translation map: | 
 | # | 
 | #   FreeRTOS    | CMake | 
 | #   ------------------- | 
 | #   CCS         | ?TBD? | 
 | #   GCC         | GNU, Clang, *Clang Others? | 
 | #   IAR         | IAR | 
 | #   Keil        | ARMCC | 
 | #   MSVC        | MSVC # Note only for MinGW? | 
 | #   Renesas     | ?TBD? | 
 |  | 
 | add_compile_options( | 
 |     ### Gnu/Clang C Options | 
 |     $<$<COMPILE_LANG_AND_ID:C,GNU>:-fdiagnostics-color=always> | 
 |     $<$<COMPILE_LANG_AND_ID:C,Clang>:-fcolor-diagnostics> | 
 |  | 
 |     $<$<COMPILE_LANG_AND_ID:C,Clang,GNU>:-Wall> | 
 |     $<$<COMPILE_LANG_AND_ID:C,Clang,GNU>:-Wextra> | 
 |     $<$<COMPILE_LANG_AND_ID:C,Clang,GNU>:-Wpedantic> | 
 |     $<$<COMPILE_LANG_AND_ID:C,Clang,GNU>:-Werror> | 
 |     $<$<COMPILE_LANG_AND_ID:C,Clang>:-Weverything> | 
 |  | 
 |     # TODO: Add in other Compilers here. | 
 | ) | 
 |  | 
 |  | 
 | ######################################################################## | 
 | add_subdirectory(portable) | 
 |  | 
 | add_library(freertos_kernel STATIC | 
 |     event_groups.c | 
 |     list.c | 
 |     queue.c | 
 |     stream_buffer.c | 
 |     tasks.c | 
 |     timers.c | 
 |  | 
 |     # If FREERTOS_HEAP is digit between 1 .. 5 - it is heap number, otherwise - it is path to custom heap source file | 
 |     $<IF:$<BOOL:$<FILTER:${FREERTOS_HEAP},EXCLUDE,^[1-5]$>>,${FREERTOS_HEAP},portable/MemMang/heap_${FREERTOS_HEAP}.c> | 
 | ) | 
 |  | 
 | target_include_directories(freertos_kernel | 
 |     PUBLIC | 
 |         include | 
 |         # Note: DEPRECATED but still supported, may be removed in a future release. | 
 |         $<$<NOT:$<TARGET_EXISTS:freertos_config>>:${FREERTOS_CONFIG_FILE_DIRECTORY}> | 
 | ) | 
 |  | 
 | target_link_libraries(freertos_kernel | 
 |     PUBLIC | 
 |         $<$<TARGET_EXISTS:freertos_config>:freertos_config> | 
 |         freertos_kernel_port | 
 | ) | 
 |  | 
 | ######################################################################## |