lift_indicator_suite/CMakeLists.txt
2026-07-21 12:04:49 +03:00

64 lines
3 KiB
CMake
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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/tft_app)
# Заглушка tft_app для аппаратной верификации bootutil (Фаза 2). Пока
# оставляем рядом с реальным firmware/tft_app как независимую A/B-регрессию
# загрузчика — удалить, когда app сам сможет служить стендом. См.
# firmware/bootloader/PLAN.md и firmware/tft_app/PLAN.md.
add_subdirectory(firmware/bootloader/test_stub)
endif()
# -----------------------------------------------------------------------------
# Тесты
# -----------------------------------------------------------------------------
if(BUILD_TESTS_HOST OR BUILD_TESTS_TARGET)
enable_testing()
add_subdirectory(tests)
endif()