lift_indicator_suite/CMakeLists.txt
Ezra Maccabee c4feaa8f45 # 10
- добавлен компонент util/log - логгер
- написан адаптер UART для логгера: port/log
- util/log покрыт юнит-тестами
2026-03-23 12:19:39 +03:00

59 lines
2.6 KiB
CMake

cmake_minimum_required(VERSION 3.20)
project(tft_firmware C ASM)
# -----------------------------------------------------------------------------
# Глобальные опции — управляются через пресеты
# -----------------------------------------------------------------------------
option(BUILD_TESTS_HOST "Build host unit tests" OFF)
option(BUILD_TESTS_TARGET "Build on-target tests" OFF)
option(SEGGER_RTT_ENABLED "Enable SEGGER RTT" OFF)
option(UNITY_TESTING_ENABLED "Enable Unity framework" OFF)
# -----------------------------------------------------------------------------
# Общие настройки для ARM сборки
# -----------------------------------------------------------------------------
if(NOT BUILD_TESTS_HOST)
set(CMAKE_EXECUTABLE_SUFFIX ".elf")
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_C_EXTENSIONS OFF)
set(BSP_SYSCALLS_FILE
"${CMAKE_SOURCE_DIR}/bsp/generated/syscalls.c"
CACHE FILEPATH "Заглушки системных вызовов newlib")
set(BSP_GENERATED
"${CMAKE_SOURCE_DIR}/bsp/generated"
CACHE PATH "Путь до сгенерированных ConfigTools файлов")
set(BSP_STARTUP_FILE
"${BSP_GENERATED}/startup/startup_MIMXRT1052.S"
CACHE FILEPATH "Путь до стартап файла")
endif()
# -----------------------------------------------------------------------------
# SDK и BSP — всегда подключаются, но содержат защиту от host сборки внутри
# -----------------------------------------------------------------------------
add_subdirectory(sdk)
add_subdirectory(utils)
add_subdirectory(bsp)
add_subdirectory(port)
# -----------------------------------------------------------------------------
# Сторонние и внутренние библиотеки
# -----------------------------------------------------------------------------
add_subdirectory(lib)
# -----------------------------------------------------------------------------
# Firmware проекты — только для ARM сборки
# -----------------------------------------------------------------------------
if(NOT BUILD_TESTS_HOST)
add_subdirectory(firmware/test)
# add_subdirectory(firmware/bootloader) - add_subdirectory(firmware/app) #
# Загрузчик + Основное приложение
endif()
# -----------------------------------------------------------------------------
# Тесты
# -----------------------------------------------------------------------------
if(BUILD_TESTS_HOST OR BUILD_TESTS_TARGET)
enable_testing()
add_subdirectory(tests)
endif()