]> begriffs open source - meson-wrap/blob - packagefiles/cmsis-freertos/meson.build
Fix cmsis-driver-validation for use
[meson-wrap] / packagefiles / cmsis-freertos / meson.build
1 project('cmsis-freertos', 'c',
2   version: '11.2.0',
3   license: 'MIT')
4
5 # Get dependencies needed for internal FreeRTOS build
6 cmsis_subproject = subproject('cmsis')
7 cmsis_core_dep = cmsis_subproject.get_variable('cmsis_core_dep')
8 cmsis_rtos_dep = cmsis_subproject.get_variable('cmsis_rtos_dep')
9 os_tick_dep = cmsis_subproject.get_variable('os_tick_dep')
10 cmsis_dfp_dep = subproject('cmsis-dfp-stm32f4').get_variable('cmsis_dfp_stm32f4_dep')
11
12 # Build internal FreeRTOS kernel from Source/ directory
13 subdir('Source')
14
15 # FreeRTOS-RTOS2 wrapper sources (implements CMSIS-RTOS2 API using FreeRTOS)
16 freertos_wrapper_src = files(
17   'CMSIS'/'RTOS2'/'FreeRTOS'/'Source'/'cmsis_os2.c',
18   'CMSIS'/'RTOS2'/'FreeRTOS'/'Source'/'freertos_evr.c')
19
20 # FreeRTOS-specific RTOS2 implementation headers
21 freertos_wrapper_inc = include_directories(
22   'CMSIS'/'RTOS2'/'FreeRTOS'/'Include')
23
24 # Build CMSIS-FreeRTOS library
25 # Combines: FreeRTOS kernel + CMSIS-RTOS2 wrapper + OS Tick implementation
26 # - cmsis_rtos_dep: Standard CMSIS-RTOS2 API headers (cmsis_os2.h, os_tick.h)
27 # - freertos_wrapper_inc: FreeRTOS-specific headers (freertos_os2.h, freertos_evr.h)
28 # - os_tick_dep: OS Tick source compiled with device-specific DFP context
29 cmsis_freertos_lib = library(
30   'cmsis_freertos',
31   freertos_wrapper_src,
32   include_directories: [freertos_wrapper_inc, include_directories('.')],  # '.' for RTE_Components.h
33   dependencies: [freertos_internal_dep, cmsis_core_dep, cmsis_rtos_dep, cmsis_dfp_dep, os_tick_dep])
34
35 # Export dependency
36 cmsis_freertos_dep = declare_dependency(
37   include_directories: freertos_wrapper_inc,
38   link_with: cmsis_freertos_lib,
39   dependencies: freertos_internal_dep)