cmake-demo/CMakeLists.txt
2025-03-25 15:28:07 +01:00

88 lines
2.3 KiB
CMake

cmake_minimum_required(VERSION 3.16)
set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_SOURCE_DIR}/libs/stm32-cmake/cmake/stm32_gcc.cmake)
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/libs/stm32-cmake/cmake)
project(demo C CXX ASM)
################## TOOLCHAIN SETUP ####################################
find_package(HAL COMPONENTS STM32F4 REQUIRED)
find_package(FreeRTOS COMPONENTS ARM_CM4F STM32F4 REQUIRED)
find_package(CMSIS COMPONENTS STM32F407ZG RTOS_V2 REQUIRED)
#######################################################################
set (PROJECT_SOURCES
core/src/main.c
core/src/freertos.c
core/src/adc.c
core/src/gpio.c
core/src/can.c
core/src/dma.c
core/src/spi.c
core/src/tim.c
core/src/usart.c
core/src/syscalls.c
core/src/sysmem.c
core/src/stm32f4xx_it.c
core/src/stm32f4xx_hal_msp.c
core/src/stm32f4xx_hal_timebase_tim.c
# Application specific
App/Src/shared.cpp
App/Src/startup.cpp
App/Src/tasks/arming.cpp
App/Src/tasks/fire.cpp
App/Src/tasks/sense.cpp
)
set (PROJECT_INCLUDES
core/inc/
# Application specific
App/Inc/
libs/STAHR-defs/
)
############ Libraries ###############################################
# STA-CORE
add_subdirectory(libs/sta-core)
list(APPEND PROJECT_SOURCES ${STA_CORE_SOURCES})
list(APPEND PROJECT_INCLUDES ${STA_CORE_INCLUDES})
# rtos2-utils
add_subdirectory(libs/rtos2-utils)
list(APPEND PROJECT_SOURCES ${RTOS2_UTILS_SOURCES})
list(APPEND PROJECT_INCLUDES ${RTOS2_UTILS_INCLUDES})
# TACOS
add_subdirectory(libs/TACOS)
list(APPEND PROJECT_SOURCES ${TACOS_SOURCES})
list(APPEND PROJECT_INCLUDES ${TACOS_INCLUDES})
#######################################################################
# ################## PROJECT SETUP ######################################
add_executable(demo ${PROJECT_SOURCES})
target_link_libraries(demo PRIVATE
FreeRTOS::STM32::F4::ARM_CM4F
FreeRTOS::STM32::F4::Timers
FreeRTOS::STM32::F4::Heap::4
FreeRTOS::STM32::F4::EventGroups
CMSIS::STM32::F4::RTOS_V2
CMSIS::STM32::F407ZG
HAL::STM32::F4
HAL::STM32::F4::ADC
HAL::STM32::F4::CAN
HAL::STM32::F4::GPIO
HAL::STM32::F4::UART
HAL::STM32::F4::SPI
HAL::STM32::F4::DMA
HAL::STM32::F4::RCC
HAL::STM32::F4::TIM
HAL::STM32::F4::TIMEx
HAL::STM32::F4::CORTEX
STM32::NoSys
)
target_include_directories (demo PRIVATE ${PROJECT_INCLUDES})
target_compile_definitions(demo PRIVATE
USE_CMSIS_RTOS_V2
CMSIS_RTOS_V2_DEVICE_HEADER="stm32f4xx_hal.h"
)