# AUTO-GENERATED by build.sh — DO NOT EDIT
if(IDF_TARGET STREQUAL "esp32p4" OR IDF_TARGET STREQUAL "esp32s3")
    set(DEVICE_SRCS av_device_filestream.c audio_device_filestream.c)
else()
    message(FATAL_ERROR "Unsupported target: ${IDF_TARGET}")
endif()

idf_component_register(
    SRCS
        cmd_iot_demo.c
        video_source.c
        ${DEVICE_SRCS}
        iot_video_demo/iot_demo.c
        iot_video_demo/av_sender.c
        iot_video_demo/av_receiver.c
        iot_video_demo/cloud_storage_demo.c
        iot_aitalk_demo/aitalk_demo.c
    INCLUDE_DIRS include
    PRIV_INCLUDE_DIRS . iot_video_demo iot_aitalk_demo
        ${CMAKE_CURRENT_LIST_DIR}/../tc_iot_sdk/include/hal
    PRIV_REQUIRES console tc_iot_sdk esp_netif espressif__esp_audio_codec
)

target_compile_definitions(${COMPONENT_LIB} PRIVATE PLATFORM_FREERTOS)

set(BUILD_IOT_AV 1)
set(BUILD_IOT_CLOUD_STORAGE 1)
set(BUILD_IOT_AITALK 1)
include(${CMAKE_CURRENT_LIST_DIR}/../tc_iot_sdk/module_config.cmake OPTIONAL)
target_compile_definitions(${COMPONENT_LIB} PRIVATE
    BUILD_IOT_AV=${BUILD_IOT_AV}
    BUILD_IOT_CLOUD_STORAGE=${BUILD_IOT_CLOUD_STORAGE}
    BUILD_IOT_AITALK=${BUILD_IOT_AITALK}
    BUILD_OPUS=${BUILD_OPUS})

target_compile_options(${COMPONENT_LIB} PRIVATE
    "SHELL:-include ${CMAKE_CURRENT_LIST_DIR}/platform_compat.h"
)

# HAL_Audio 作为 OBJECT 库注入，避免 archive 链接顺序导致 tc_iot_sdk 找不到 HAL 符号
add_library(hal_audio_obj OBJECT ${CMAKE_CURRENT_LIST_DIR}/HAL_Audio_esp.c)
target_include_directories(hal_audio_obj PRIVATE
    $<TARGET_PROPERTY:${COMPONENT_LIB},INCLUDE_DIRECTORIES>
)
target_compile_definitions(hal_audio_obj PRIVATE
    $<TARGET_PROPERTY:${COMPONENT_LIB},COMPILE_DEFINITIONS>
)
target_link_libraries(${COMPONENT_LIB} PUBLIC $<TARGET_OBJECTS:hal_audio_obj>)
