Tactility/Modules/lvgl-module/CMakeLists.txt
Ken Van Hoeylandt 9a11e6f47b
Implement UI scaling and more (#501)
**New Features**
 * Runtime font accessors and new symbol fonts for text, launcher, statusbar, and shared icons.
 * Added font height base setting to device.properties
 * Text fonts now have 3 sizes: small, default, large

**Improvements**
 * Renamed `UiScale` to `UiDensity`
 * Statusbar, toolbar and many UI components now compute heights and spacing from fonts/density.
 * SSD1306 initialization sequence refined for more stable startup.
 * Multiple image assets replaced by symbol-font rendering.
 * Many layout improvements related to density, font scaling and icon scaling
 * Updated folder name capitalization for newer style
2026-02-15 01:41:47 +01:00

83 lines
3.2 KiB
CMake

cmake_minimum_required(VERSION 3.20)
# ####################################
# Read properties
# ####################################
include("${CMAKE_CURRENT_LIST_DIR}/../../Buildscripts/properties.cmake")
if (DEFINED ENV{ESP_IDF_VERSION})
GET_PROPERTY_FILE_CONTENT("${CMAKE_CURRENT_LIST_DIR}/../../sdkconfig" sdkconfig_text)
GET_PROPERTY_VALUE(sdkconfig_text "CONFIG_TT_LVGL_FONT_SIZE_SMALL" font_size_small)
GET_PROPERTY_VALUE(sdkconfig_text "CONFIG_TT_LVGL_FONT_SIZE_DEFAULT" font_size_default)
GET_PROPERTY_VALUE(sdkconfig_text "CONFIG_TT_LVGL_FONT_SIZE_LARGE" font_size_large)
GET_PROPERTY_VALUE(sdkconfig_text "CONFIG_TT_LVGL_STATUSBAR_ICON_SIZE" statusbar_symbol_size)
GET_PROPERTY_VALUE(sdkconfig_text "CONFIG_TT_LVGL_LAUNCHER_ICON_SIZE" launcher_symbol_size)
GET_PROPERTY_VALUE(sdkconfig_text "CONFIG_TT_LVGL_SHARED_ICON_SIZE" shared_symbol_size)
else ()
# Default values for simulator
set(font_size_small 10)
set(font_size_default 14)
set(font_size_large 18)
set(statusbar_symbol_size 20)
set(launcher_symbol_size 36)
set(shared_symbol_size 16)
endif ()
message("Font sizes:")
message(" - small: ${font_size_small}")
message(" - default: ${font_size_default}")
message(" - large: ${font_size_large}")
message("Icon sizes:")
message(" - statusbar: ${statusbar_symbol_size}")
message(" - launcher: ${launcher_symbol_size}")
message(" - shared: ${shared_symbol_size}")
# ####################################
# Create module
# ####################################
# Regular source files
file(GLOB_RECURSE SOURCE_FILES "source/*.c*")
# Font source files
list(APPEND SOURCE_FILES "source-fonts/material_symbols_statusbar_${statusbar_symbol_size}.c")
list(APPEND SOURCE_FILES "source-fonts/material_symbols_launcher_${launcher_symbol_size}.c")
list(APPEND SOURCE_FILES "source-fonts/material_symbols_shared_${shared_symbol_size}.c")
list(APPEND REQUIRES_LIST
TactilityKernel
lvgl
)
if (DEFINED ENV{ESP_IDF_VERSION})
list(APPEND REQUIRES_LIST esp_lvgl_port)
else ()
list(APPEND REQUIRES_LIST freertos_kernel)
endif ()
include("${CMAKE_CURRENT_LIST_DIR}/../../Buildscripts/module.cmake")
tactility_add_module(lvgl-module
SRCS ${SOURCE_FILES}
INCLUDE_DIRS include/
REQUIRES ${REQUIRES_LIST}
)
tactility_get_module_name("lvgl-module" MODULE_NAME)
target_compile_definitions(${MODULE_NAME} PUBLIC
"-DLV_LVGL_H_INCLUDE_SIMPLE"
"-DTT_LVGL_TEXT_FONT_SMALL_SIZE=${font_size_small}"
"-DTT_LVGL_TEXT_FONT_SMALL_SYMBOL=lv_font_montserrat_${font_size_small}"
"-DTT_LVGL_TEXT_FONT_DEFAULT_SIZE=${font_size_default}"
"-DTT_LVGL_TEXT_FONT_DEFAULT_SYMBOL=lv_font_montserrat_${font_size_default}"
"-DTT_LVGL_TEXT_FONT_LARGE_SIZE=${font_size_large}"
"-DTT_LVGL_TEXT_FONT_LARGE_SYMBOL=lv_font_montserrat_${font_size_large}"
"-DTT_LVGL_STATUSBAR_FONT_ICON_SIZE=${statusbar_symbol_size}"
"-DTT_LVGL_STATUSBAR_FONT_ICON_SYMBOL=material_symbols_statusbar_${statusbar_symbol_size}"
"-DTT_LVGL_LAUNCHER_FONT_ICON_SIZE=${launcher_symbol_size}"
"-DTT_LVGL_LAUNCHER_FONT_ICON_SYMBOL=material_symbols_launcher_${launcher_symbol_size}"
"-DTT_LVGL_SHARED_FONT_ICON_SIZE=${shared_symbol_size}"
"-DTT_LVGL_SHARED_FONT_ICON_SYMBOL=material_symbols_shared_${shared_symbol_size}"
)