1# 2# Arm SCP/MCP Software 3# Copyright (c) 2021, Arm Limited and Contributors. All rights reserved. 4# 5# SPDX-License-Identifier: BSD-3-Clause 6# 7 8# cmake-lint: disable=C0301 9 10cmake_minimum_required(VERSION 3.18.3) 11 12project( 13 CMSIS 14 VERSION 5.2.0 15 DESCRIPTION "Cortex Microcontroller Software Interface Standard (CMSIS)" 16 HOMEPAGE_URL "https://developer.arm.com/tools-and-software/embedded/cmsis" 17 LANGUAGES C ASM) 18 19# 20# Define CMSIS-Core (M). 21# 22 23add_library(core-m INTERFACE) 24 25target_include_directories( 26 core-m INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/git/CMSIS/Core/Include") 27 28add_library(cmsis::core-m ALIAS core-m) 29 30# 31# Define CMSIS-RTOS2. 32# 33 34add_library(rtos2 INTERFACE) 35 36target_include_directories( 37 rtos2 INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/git/CMSIS/RTOS2/Include") 38 39add_library(cmsis::rtos2 ALIAS rtos2) 40 41# 42# Define and build CMSIS-RTOS2 RTX. 43# 44 45add_library(rtos2-rtx INTERFACE) 46 47target_include_directories( 48 rtos2-rtx 49 INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/include" 50 "${CMAKE_CURRENT_SOURCE_DIR}/git/CMSIS/RTOS2/RTX/Include" 51 "${CMAKE_CURRENT_SOURCE_DIR}/git/CMSIS/RTOS2/RTX/Source") 52 53# cmake-lint: disable=E1122 54target_sources( 55 rtos2-rtx 56 INTERFACE 57 "${CMAKE_CURRENT_SOURCE_DIR}/git/CMSIS/RTOS2/RTX/Source/rtx_delay.c" 58 "${CMAKE_CURRENT_SOURCE_DIR}/git/CMSIS/RTOS2/RTX/Source/rtx_evflags.c" 59 "${CMAKE_CURRENT_SOURCE_DIR}/git/CMSIS/RTOS2/RTX/Source/rtx_evr.c" 60 "${CMAKE_CURRENT_SOURCE_DIR}/git/CMSIS/RTOS2/RTX/Source/rtx_kernel.c" 61 "${CMAKE_CURRENT_SOURCE_DIR}/git/CMSIS/RTOS2/RTX/Source/rtx_memory.c" 62 "${CMAKE_CURRENT_SOURCE_DIR}/git/CMSIS/RTOS2/RTX/Source/rtx_mempool.c" 63 "${CMAKE_CURRENT_SOURCE_DIR}/git/CMSIS/RTOS2/RTX/Source/rtx_msgqueue.c" 64 "${CMAKE_CURRENT_SOURCE_DIR}/git/CMSIS/RTOS2/RTX/Source/rtx_mutex.c" 65 "${CMAKE_CURRENT_SOURCE_DIR}/git/CMSIS/RTOS2/RTX/Source/rtx_semaphore.c" 66 "${CMAKE_CURRENT_SOURCE_DIR}/git/CMSIS/RTOS2/RTX/Source/rtx_system.c" 67 "${CMAKE_CURRENT_SOURCE_DIR}/git/CMSIS/RTOS2/RTX/Source/rtx_thread.c" 68 "${CMAKE_CURRENT_SOURCE_DIR}/git/CMSIS/RTOS2/RTX/Source/rtx_timer.c" 69 "${CMAKE_CURRENT_SOURCE_DIR}/git/CMSIS/RTOS2/Source/os_systick.c") 70 71target_compile_definitions(rtos2-rtx INTERFACE RTX_NO_MULTITHREAD_CLIB) 72target_compile_options(rtos2-rtx INTERFACE -Wno-array-bounds) 73 74if(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m[37]") 75 target_sources( 76 rtos2-rtx 77 INTERFACE 78 "${CMAKE_CURRENT_SOURCE_DIR}/git/CMSIS/RTOS2/RTX/Source/GCC/irq_cm3.S" 79 ) 80endif() 81 82target_link_libraries(rtos2-rtx INTERFACE core-m rtos2) 83 84add_library(cmsis::rtos2-rtx ALIAS rtos2-rtx) 85