mirror of
https://github.com/ByteWelder/Tactility.git
synced 2026-02-18 10:53:17 +00:00
- Fix for `sdkconfig` generation: the keys that contained the MCU type in its name weren't properly upper-cased. - Moved WiFi configuration property files to the user data path of the app instead of a fixed location. - Moved more properties from `device.py` to `sdkconfig/default.properties` - Fix for `device.cmake` device id parsing: separate basic property parsing from device id validation - Created internal `tt::service::wifi::findServiceContext()` - Changed Wi-Fi service id to lowercase (will change it for other services later)
38 lines
1.8 KiB
CMake
38 lines
1.8 KiB
CMake
if (NOT WIN32)
|
|
string(ASCII 27 Esc)
|
|
set(ColorReset "${Esc}[m")
|
|
set(Cyan "${Esc}[36m")
|
|
else ()
|
|
set(ColorReset "")
|
|
set(Cyan "")
|
|
endif ()
|
|
|
|
function(INIT_TACTILITY_GLOBALS SDKCONFIG_FILE)
|
|
get_filename_component(SDKCONFIG_FILE_ABS ${SDKCONFIG_FILE} ABSOLUTE)
|
|
# Find the device identifier in the sdkconfig file
|
|
if (NOT EXISTS ${SDKCONFIG_FILE_ABS})
|
|
message(FATAL_ERROR "sdkconfig file not found:\nMake sure you select a device by running \"python device.py [device-id]\"\n")
|
|
endif ()
|
|
file(READ ${SDKCONFIG_FILE_ABS} sdkconfig_text)
|
|
string(REGEX MATCH "(CONFIG_TT_DEVICE_ID\=\"[^\"]*\")" sdkconfig_device_id "${sdkconfig_text}")
|
|
if (sdkconfig_device_id STREQUAL "CONFIG_TT_DEVICE_ID=\"\"" OR sdkconfig_device_id STREQUAL "")
|
|
message(FATAL_ERROR "CONFIG_TT_DEVICE_ID not found in sdkconfig:\nMake sure you select a device with 'python device.py device-id'")
|
|
endif ()
|
|
string(LENGTH ${sdkconfig_device_id} sdkconfig_device_id_length)
|
|
set(id_length 0)
|
|
# Total length minus chars of 'CONFIG_TT_DEVICE_ID=""'
|
|
math(EXPR id_length "${sdkconfig_device_id_length} - 22")
|
|
# Skip 'CONFIG_TT_DEVICE_ID="' then read the relevant (remaining) chars
|
|
string(SUBSTRING ${sdkconfig_device_id} 21 ${id_length} device_id)
|
|
# Validate device id
|
|
if (NOT device_id MATCHES "^[a-z0-9\-]*$")
|
|
message(FATAL_ERROR "Device identifier ${device_id} contains invalid characters. Valid characters: a-z 0-9 \"-\"")
|
|
endif ()
|
|
# Output results
|
|
message("Device identifier: ${Cyan}${device_id}${ColorReset}")
|
|
set(TACTILITY_DEVICE_PROJECT ${device_id})
|
|
message("Device project path: ${Cyan}Devices/${TACTILITY_DEVICE_PROJECT}${ColorReset}\n")
|
|
set_property(GLOBAL PROPERTY TACTILITY_DEVICE_PROJECT ${TACTILITY_DEVICE_PROJECT})
|
|
set_property(GLOBAL PROPERTY TACTILITY_DEVICE_ID ${device_id})
|
|
endfunction()
|