# 1. 自动搜索 ui 目录下所有的 .c 文件 (包含子目录)
file(GLOB_RECURSE GUI_SOURCES "${CMAKE_CURRENT_LIST_DIR}/ui/*.c")
file(GLOB GUIDER_FONT_SOURCES "${CMAKE_CURRENT_LIST_DIR}/ui/generated/guider_fonts/*.c")
# 下列文件已在 SRCS 中显式列出，避免 GLOB 与显式重复导致同一 .c 编译/链接两次
list(REMOVE_ITEM GUI_SOURCES
    "${CMAKE_CURRENT_LIST_DIR}/ui/ui_events.c"
    "${CMAKE_CURRENT_LIST_DIR}/ui/ui_nav.c"
    "${CMAKE_CURRENT_LIST_DIR}/ui/ui_test_page.c"
)
# 注释内置 guider_fonts：改为运行时外部字体
list(REMOVE_ITEM GUI_SOURCES ${GUIDER_FONT_SOURCES})

# 2. 定义头文件路径
set(GUI_INCLUDES 
    "ui/custom" 
    "ui/generated" 
    "ui/generated/guider_customer_fonts"
)

# 3. 注册组件
idf_component_register(
    SRCS 
        "main.c" 
        "OTA/ota_upgrade.c" 
        "ota_trigger.c"
        "MQTT/mqtt.c" 
        "FLASH/flash.c" 
        "ZIP_EXTRACTOR/zip_extractor.c" 
        "MINIZ/miniz.c"
        "MOTOR/motor.c"
        "MOTOR/step_motor_init.c"
        "MOTOR/foc.c"
        "MOTOR/motor_timer.c"
        "MOTOR/motor_control.c"
        "MOTOR/motor_io.c"
        "BLE/ble.c"
        "BLE/ble_data_ansy.c"
        "BLE/ble_send.c"
        "WIFI/wifi.c"     
        "SC7U22/SC7U22.c" 
        "EVENT/event.c"
        "ES7243E/ES7243E.c"
        "SPEECH/speech_app.c"
        "SPEECH/speech_init.c"
        "SCREEN/screen_init.c"    
        "SCREEN/screen_brightness.c"  
        "SCREEN/screen_sleep.c"  
        "UI_DISPATCH/ui_dispatch.c"
        "PET/pet_init.c"
        "NS4168/ns4168.c"
        "NS4168/wav_demux.c"
        "NS4168/ogg_demux.c"
        "NS4168/micro_decoder_wrapper.cpp"
        "NS4168/AudioSourceFile.cpp"
        "UI_DISPATCH/almanac_service.c"
        "ui_cmd.c"
        "ALGORITHM/crc.c"
        "SYSTEM/system.c"
        "EMOJI_STORAGE/emoji_storage.c"
        "LVGL/lvgl_src.c"
        "LVGL/lvgl_init.c"
        "LVGL/lvgl_lottie.c"
        "LVGL/lvgl_lottie_logic.c"
        "remapping.c"
        "ui/ui_events.c"
        "ui/ui_nav.c"
        "ui/ui_test_page.c"
        ${GUI_SOURCES} 

    INCLUDE_DIRS 
        "." 
        "EVENT" 
        "ui" 
        ${GUI_INCLUDES}

    EMBED_TXTFILES
        "UI_DISPATCH/yiji_data_2026_2030.json"

REQUIRES
        # --- GUI & Screen ---
        lvgl 
        esp_lcd_qspi_amoled 
        esp_lcd_touch_cst820
        
        # --- 系统基础 ---
        nvs_flash 
        esp_event 
        esp_wifi 
        esp_netif 
        driver 
        log
        freertos
        spi_flash
        # --- 网络与通信 ---
        mqtt 
        esp_http_client
        esp_https_ota
        bt 
        
        # --- 存储与文件系统 ---
        app_update
        esp_partition
        fatfs 
        spiffs
        sdmmc
        
        # --- 其他 ---
        json
        mbedtls
)

# 内置 guider_fonts 已不参与编译，保留以下属性配置作为历史参考
# set_source_files_properties(
#     ${GUIDER_FONT_SOURCES}
#     PROPERTIES COMPILE_OPTIONS
#     -DLV_LVGL_H_INCLUDE_SIMPLE
# )

# 5. 生成分区镜像（storage 已废弃，表情已迁移至 /extflash）
# spiffs_create_partition_image(storage lottie_files FLASH_IN_PROJECT)

