Tactility/Tactility/Tests/CMakeLists.txt
Ken Van Hoeylandt 56ddd4b355
Mesh Chat apps, ESP-NOW mesh radio, and shared Wi-Fi radio ownership (#698)
Mesh gets contacts, channels, delivery receipts, QR sharing and an ESP-NOW radio. Mesh Chat is split into Mesh Contacts and Mesh Channels, `mesh inspect` replaces the Mesh Inspect app, and ESP-NOW and Wi-Fi now share the Wi-Fi radio safely.
2026-10-17 18:56:27 +02:00

73 lines
2.4 KiB
CMake

project(TactilityTests)
enable_language(C CXX ASM)
file(GLOB_RECURSE TEST_SOURCES CONFIGURE_DEPENDS ${PROJECT_SOURCE_DIR}/Source/*.cpp)
# Compile Tactility's own sources directly rather than linking the Tactility executable target.
# Main.cpp is excluded - it pulls in the device's Module/devicetree symbols, which would drag
# the whole device stack into the test binary just to get plain helpers like file/String.
file(GLOB_RECURSE TACTILITY_SOURCES CONFIGURE_DEPENDS ${CMAKE_CURRENT_LIST_DIR}/../Source/*.c*)
list(FILTER TACTILITY_SOURCES EXCLUDE REGEX ".*/Main\\.cpp$")
add_executable(TactilityTests EXCLUDE_FROM_ALL ${TEST_SOURCES} ${TACTILITY_SOURCES})
target_include_directories(TactilityTests PRIVATE ${DOCTESTINC})
target_include_directories(TactilityTests PRIVATE ${CMAKE_CURRENT_LIST_DIR}/../Include)
target_include_directories(TactilityTests PRIVATE ${CMAKE_CURRENT_LIST_DIR}/../Private)
# Tactility's own CMakeLists.txt derives this from sdkconfig, but this target only ever builds for
# the POSIX simulator (see Tests/tests.md), so it just hardcodes that same file's own POSIX default
# rather than reimplementing the sdkconfig lookup here too.
target_compile_definitions(TactilityTests PRIVATE
"-DTT_FONT_DEFAULT_SIZE=14"
"-DTACTILITY_TEST_DATA_DIR=\"${CMAKE_CURRENT_LIST_DIR}/../../Data\""
"-DTACTILITY_TEST_FONTS_DIR=\"${CMAKE_CURRENT_LIST_DIR}/../Fonts\""
)
add_test(NAME TactilityTests COMMAND TactilityTests)
# No --wrap flags declared here: linking platform-posix and app-module below already brings all
# of pthread_attr_setstack/read/write/close/the printf family along (see their own CMakeLists.txt
# files).
target_link_libraries(TactilityTests PRIVATE
TactilityKernel
TactilityKernelCpp
TactilityFreeRtos
platform-posix
app-posix-module
lvgl-module
lvgl-window-manager-module
app-module
app-hub-module
coreutils-module
audio-decoder-module
c-symbols-module
cjson-module
cpp-symbols-module
crypt-module
development-module
freertos-module
gps-module
graphics-module
http-module
location-module
mbedtls-module
mesh-module
mesh-meshcore-module
mesh-meshtastic-module
posix-symbols-module
pthread-module
gps-generic-module
gps-meshtastic-module
service-module
wifi-module
lv_screenshot
minitar
lvgl
cJSON
SDL2::SDL2-static SDL2-static
)