mirror of
https://github.com/ByteWelder/Tactility.git
synced 2026-02-18 19:03:16 +00:00
* **New Features** * Thread API with lifecycle, priority, affinity and state monitoring * Timer subsystem: one-shot/periodic timers, reset, pending callbacks, expiry queries * Expanded I²C: register-level ops, bulk writes, presence checks, ESP32 integration and new config properties * GPIO controller: pin level and options APIs * Error utilities: new error code, error-to-string, timeout helper and common macros * Device construction helpers (construct+start) * **Tests** * New unit tests for thread and timer behavior * **Documentation** * Expanded coding style guide (files/folders, C conventions)
82 lines
1.8 KiB
CMake
82 lines
1.8 KiB
CMake
cmake_minimum_required(VERSION 3.20)
|
|
|
|
if (DEFINED ENV{ESP_IDF_VERSION})
|
|
file(GLOB_RECURSE SOURCE_FILES Source/*.c*)
|
|
|
|
list(APPEND REQUIRES_LIST
|
|
TactilityKernel
|
|
PlatformEsp32
|
|
TactilityCore
|
|
TactilityFreeRtos
|
|
lvgl
|
|
driver
|
|
elf_loader
|
|
lv_screenshot
|
|
QRCode
|
|
esp_http_server
|
|
esp_http_client
|
|
esp-tls
|
|
esp_lvgl_port
|
|
esp_wifi
|
|
json
|
|
minitar
|
|
minmea
|
|
nvs_flash
|
|
spiffs
|
|
vfs
|
|
fatfs
|
|
lwip
|
|
spi_flash
|
|
)
|
|
|
|
if ("${IDF_TARGET}" STREQUAL "esp32s3")
|
|
list(APPEND REQUIRES_LIST esp_tinyusb)
|
|
endif ()
|
|
|
|
idf_component_register(
|
|
SRCS ${SOURCE_FILES}
|
|
INCLUDE_DIRS "Include/"
|
|
PRIV_INCLUDE_DIRS "Private/"
|
|
REQUIRES ${REQUIRES_LIST}
|
|
)
|
|
|
|
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
|
target_compile_options(${COMPONENT_LIB} PUBLIC -Wno-unused-variable)
|
|
endif ()
|
|
|
|
if (NOT DEFINED TACTILITY_SKIP_SPIFFS)
|
|
# Read-only
|
|
fatfs_create_rawflash_image(system "${CMAKE_CURRENT_SOURCE_DIR}/../Data/system" FLASH_IN_PROJECT PRESERVE_TIME)
|
|
# Read-write
|
|
fatfs_create_spiflash_image(data "${CMAKE_CURRENT_SOURCE_DIR}/../Data/data" FLASH_IN_PROJECT PRESERVE_TIME)
|
|
endif ()
|
|
else()
|
|
file(GLOB_RECURSE SOURCES "Source/*.c*")
|
|
|
|
add_library(Tactility OBJECT)
|
|
|
|
target_sources(Tactility PRIVATE ${SOURCES})
|
|
|
|
target_include_directories(Tactility
|
|
PRIVATE Private/
|
|
PUBLIC Include/
|
|
)
|
|
|
|
add_definitions(-D_Nullable=)
|
|
add_definitions(-D_Nonnull=)
|
|
|
|
target_link_libraries(Tactility PUBLIC
|
|
cJSON
|
|
TactilityFreeRtos
|
|
TactilityCore
|
|
TactilityKernel
|
|
PlatformPosix
|
|
freertos_kernel
|
|
lvgl
|
|
lv_screenshot
|
|
minmea
|
|
minitar
|
|
)
|
|
endif()
|
|
|