Remove TactilityC and Firmware subprojects (#638)

- Removed TactilityC, moved its symbols to existing modules and several new ones (pthread-module, c-symbols-module, cpp-symbols-module, posix-symbols-module, freertos-module).
- Removed Firmware subproject and moved main() into Tactility subproject.
- Strengthened application archive, path, version, stack-size, and device validation.
- Moved symbol resolution for elf_loader to app-esp32-module.
- Improved `struct Module` declarations and made module and symbol definitions in modules more consistent.
- Removed old http download code from Tactility subproject.
- Rename app-module's source files for consistency.
- Add missing pthread symbols.
- Kernel module symbols are now resolvable on all platforms.
This commit is contained in:
Ken Van Hoeylandt
2026-08-29 21:06:43 +02:00
committed by GitHub
parent d3556fb536
commit 19b11eb9a8
99 changed files with 2678 additions and 2092 deletions
+15 -10
View File
@@ -33,17 +33,21 @@ if (DEFINED ENV{ESP_IDF_VERSION})
message("Using ESP-IDF ${Cyan}v$ENV{ESP_IDF_VERSION}${ColorReset}")
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
set(COMPONENTS Firmware)
set(COMPONENTS Tactility)
set(EXTRA_COMPONENT_DIRS
"Firmware"
# Tactility must be discovered first: its CMakeLists.txt calls init_tactility_globals(),
# which other components' CMakeLists.txt (e.g. lvgl-module) rely on having already run to
# read back TACTILITY_DEVICE_ID/TACTILITY_DEVICE_PROJECT via get_property(). ESP-IDF's
# requirements-discovery pass processes EXTRA_COMPONENT_DIRS in an isolated sub-process, in
# the order listed here, so this must stay first now that Firmware no longer exists as a
# separate component.
"Tactility"
"Devices/${TACTILITY_DEVICE_PROJECT}"
"Drivers"
"Modules"
"Platforms/platform-esp32"
"TactilityKernel"
"TactilityKernelCpp"
"Tactility"
"TactilityC"
"TactilityFreeRtos"
"Libraries/elf_loader"
"Libraries/esp_epaper"
@@ -71,9 +75,7 @@ if (DEFINED ENV{ESP_IDF_VERSION})
else ()
message("Building for sim target")
# Devices/simulator/Source/Simulator.cpp always defines its own hardwareConfiguration; without
# this, Firmware/Source/Main.cpp's #else branch also defines an empty one (its ESP32-only
# fallback for devices migrated off the deprecated HAL), causing a duplicate-definition link error.
# eps-idf generates these from Kconfig, but posix build isn't set up with Kconfig.
add_compile_definitions(CONFIG_TT_DEVICE_ID="simulator")
add_compile_definitions(CONFIG_TT_DEVICE_NAME="Simulator")
add_compile_definitions(CONFIG_TT_DEVICE_VENDOR="")
@@ -99,9 +101,15 @@ if (NOT DEFINED ENV{ESP_IDF_VERSION})
add_subdirectory(Libraries/minitar)
add_subdirectory(Libraries/minmea)
add_subdirectory(Modules/lvgl-module)
add_subdirectory(Modules/c-symbols-module)
add_subdirectory(Modules/cpp-symbols-module)
add_subdirectory(Modules/crypt-module)
add_subdirectory(Modules/freertos-module)
add_subdirectory(Modules/gps-module)
add_subdirectory(Modules/http-module)
add_subdirectory(Modules/mbedtls-module)
add_subdirectory(Modules/posix-symbols-module)
add_subdirectory(Modules/pthread-module)
add_subdirectory(Modules/service-module)
add_subdirectory(Modules/app-module)
add_subdirectory(Modules/lvgl-window-manager-module)
@@ -130,9 +138,6 @@ if (NOT DEFINED ENV{ESP_IDF_VERSION})
add_subdirectory(Libraries/lvgl) # Added as idf component for ESP and as library for other targets
target_link_libraries(lvgl PRIVATE SDL2-static)
# Sim app
add_subdirectory(Firmware)
# Tests
add_subdirectory(Tests)