chore: checkpoint 第一版
ci / verify (push) Canceled after 0s

This commit is contained in:
Codex Local
2026-09-06 17:04:11 +08:00
parent a8cdec98d1
commit 0c2151ace9
659 changed files with 185855 additions and 554 deletions
@@ -0,0 +1,33 @@
set(VOLC_CONV_AI_SRCS "${CMAKE_CURRENT_LIST_DIR}/../src/volc_conv_ai.c"
"${CMAKE_CURRENT_LIST_DIR}/../src/base/volc_device_manager.c"
"${CMAKE_CURRENT_LIST_DIR}/../src/util/volc_auth.c"
"${CMAKE_CURRENT_LIST_DIR}/../src/util/volc_base64.c"
"${CMAKE_CURRENT_LIST_DIR}/../src/util/volc_http.c"
"${CMAKE_CURRENT_LIST_DIR}/../src/util/volc_json.c"
"${CMAKE_CURRENT_LIST_DIR}/../third_party/mbedtls_port/tls_certificate.c"
"${CMAKE_CURRENT_LIST_DIR}/../third_party/mbedtls_port/tls_client.c"
"${CMAKE_CURRENT_LIST_DIR}/../third_party/webclient/src/webclient.c"
CACHE INTERNAL "ConversationalAI-Embedded-Kit-2.0 common src file")
set(VOLC_CONV_AI_INCS "${CMAKE_CURRENT_LIST_DIR}/../inc"
"${CMAKE_CURRENT_LIST_DIR}/../src"
"${CMAKE_CURRENT_LIST_DIR}/../third_party/mbedtls_port"
"${CMAKE_CURRENT_LIST_DIR}/../third_party/webclient/inc"
CACHE INTERNAL "ConversationalAI-Embedded-Kit-2.0 common include dir")
set(VOLC_CONV_AI_LOW_LOAD_SRCS "${CMAKE_CURRENT_LIST_DIR}/../src/transports/low_load/src/volc_ws.c"
"${CMAKE_CURRENT_LIST_DIR}/../src/transports/low_load/third_party/websocket/websocket.c"
CACHE INTERNAL "ConversationalAI-Embedded-Kit-2.0 low load solution src file")
set(VOLC_CONV_AI_LOW_LOAD_INCS "${CMAKE_CURRENT_LIST_DIR}/../src/transports/low_load/inc"
"${CMAKE_CURRENT_LIST_DIR}/../src/transports/low_load/third_party/websocket"
CACHE INTERNAL "ConversationalAI-Embedded-Kit-2.0 low load solution include dir")
set(VOLC_CONV_AI_HIGH_QUALITY_SRCS "${CMAKE_CURRENT_LIST_DIR}/../src/transports/high_quality/src/volc_rtc.c"
CACHE INTERNAL "ConversationalAI-Embedded-Kit-2.0 high quality solution src file")
set(VOLC_CONV_AI_HIGH_QUALITY_INCS "${CMAKE_CURRENT_LIST_DIR}/../src/transports/high_quality/inc"
"${CMAKE_CURRENT_LIST_DIR}/../src/transports/high_quality/third_party/volc_rtc_engine_lite/inc"
CACHE INTERNAL "ConversationalAI-Embedded-Kit-2.0 high quality solution include dir")
set(VOLC_CONV_AI_PLATFORM_INCS "${CMAKE_CURRENT_LIST_DIR}/../osal/inc"
CACHE INTERNAL "ConversationalAI-Embedded-Kit-2.0 platform include dir")
@@ -0,0 +1,66 @@
# Copyright (2025) Beijing Volcano Engine Technology Ltd.
# SPDX-License-Identifier: Apache-2.0
# ConversationalAI SDK ESP-IDF component configuration
# Converted from standard CMake to ESP-IDF component format
# Source files
set(VOLC_SRCS ${VOLC_CONV_AI_SRCS}
"${CMAKE_CURRENT_LIST_DIR}/../osal/src/espressif/volc_osal.c"
)
set(VOLC_INCS ${VOLC_CONV_AI_INCS}
"${CMAKE_CURRENT_LIST_DIR}/../osal/inc"
)
if(CONFIG_VOLC_RTC_MODE)
message(STATUS "CONFIG_VOLC_RTC_MODE: ${CONFIG_VOLC_RTC_MODE}")
list(APPEND VOLC_SRCS
${VOLC_CONV_AI_HIGH_QUALITY_SRCS}
)
list(APPEND VOLC_INCS
${VOLC_CONV_AI_HIGH_QUALITY_INCS}
)
endif()
if(CONFIG_VOLC_WS_MODE)
message(STATUS "CONFIG_VOLC_WS_MODE: ${CONFIG_VOLC_WS_MODE}")
list(APPEND VOLC_SRCS
${VOLC_CONV_AI_LOW_LOAD_SRCS}
)
list(APPEND VOLC_INCS
${VOLC_CONV_AI_LOW_LOAD_INCS}
)
endif()
idf_component_register(
SRCS ${VOLC_SRCS}
INCLUDE_DIRS ${VOLC_INCS}
REQUIRES mbedtls json lwip esp_netif
)
if(CONFIG_VOLC_RTC_MODE)
target_compile_definitions(${COMPONENT_LIB} PRIVATE ENABLE_RTC_MODE)
# Add prebuilt library for RTC mode
add_prebuilt_library(volc_engine_rtc_lite
"${CMAKE_CURRENT_LIST_DIR}/../src/transports/high_quality/third_party/volc_rtc_engine_lite/libs/${CONFIG_IDF_TARGET}/libVolcEngineRTCLite.a"
REQUIRES mbedtls espressif__zlib json lwip)
target_link_libraries(${COMPONENT_LIB} INTERFACE volc_engine_rtc_lite)
endif()
if(CONFIG_VOLC_WS_MODE)
target_compile_definitions(${COMPONENT_LIB} PRIVATE ENABLE_WS_MODE)
endif()
# Compiler flags
target_compile_options(${COMPONENT_LIB} PRIVATE
-w
-Os
-ffunction-sections
-fdata-sections
)
# Export the library for use by other components
set(VOLC_CONV_AI_SDK_LIBRARIES ${COMPONENT_LIB} PARENT_SCOPE)
set(VOLC_CONV_AI_SDK_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/../inc PARENT_SCOPE)
@@ -0,0 +1,116 @@
message(STATUS "配置Linux平台的volc_conv_ai库")
option(ENABLE_RTC_MODE "Enable Conv AI RTC mode" ON)
option(ENABLE_WS_MODE "Enable Conv AI WS mode" OFF)
option(ENABLE_CJSON "Enable cJSON" ON)
option(ENABLE_MBEDTLS "Enable Mbedtls" ON)
option(ENABLE_SAMPLE "Enable sample" ON)
# 系统抽象层代码
if(NOT DEFINED VOLC_CONV_AI_PLATFORM_SRCS)
set(VOLC_CONV_AI_PLATFORM_SRCS
"${CMAKE_CURRENT_LIST_DIR}/../osal/src/linux/volc_osal.c"
CACHE INTERNAL "ConversationalAI-Embedded-Kit-2.0 platform src file")
endif()
# mbedtls构建
set(MBEDTLS_PREBUILT_DIR ${CMAKE_CURRENT_LIST_DIR}/../third_party/prebuilt/mbedtls)
set(MBEDTLS_LIBRARY_FILE "${MBEDTLS_PREBUILT_DIR}/lib/libmbedtls.a")
set(MBEDTLS_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/../third_party/mbedtls)
# 使用第三方开源库构建
if(NOT EXISTS "${MBEDTLS_LIBRARY_FILE}" AND NOT EXISTS "${MBEDTLS_SOURCE_DIR}/CMakeLists.txt")
message(STATUS "start download and compile mbedtls...")
include(ExternalProject)
ExternalProject_Add(
mbedtls
GIT_REPOSITORY https://github.com/ARMmbed/mbedtls.git
GIT_TAG v3.6.3
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/build
SOURCE_DIR ${MBEDTLS_SOURCE_DIR}
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=${MBEDTLS_PREBUILT_DIR}
-DUSE_SHARED_MBEDTLS_LIBRARY=${BUILD_SHARED}
-DCMAKE_BUILD_TYPE=Debug
-DCMAKE_MACOSX_RPATH=${CMAKE_MACOSX_RPATH}
-DENABLE_TESTING=OFF
-DENABLE_PROGRAMS=OFF
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -Wno-unused-but-set-parameter
-DMBEDTLS_FATAL_WARNINGS=OFF
BUILD_ALWAYS FALSE
TEST_COMMAND ""
)
else()
message(STATUS "mbedtls library already exists, skip download and compile")
endif()
# volc_conv_ai_a库的构建,注意此处用源码的形式包括了 cJSON库
add_library(volc_conv_ai_a STATIC
${VOLC_CONV_AI_SRCS}
${VOLC_CONV_AI_PLATFORM_SRCS}
"${CMAKE_CURRENT_LIST_DIR}/../src/util/cJSON/cJSON.c"
)
# cJSON库 头文件目录
if(ENABLE_CJSON)
target_include_directories(volc_conv_ai_a PUBLIC
"${CMAKE_CURRENT_LIST_DIR}/../src/util/cJSON/"
)
endif()
add_library(mbedtls_static STATIC IMPORTED GLOBAL)
add_library(mbedx509_static STATIC IMPORTED GLOBAL)
add_library(zlib_static STATIC IMPORTED GLOBAL)
add_library(mbedcrypto_static STATIC IMPORTED GLOBAL)
set_target_properties(zlib_static PROPERTIES
IMPORTED_LOCATION ${CMAKE_CURRENT_LIST_DIR}/../third_party/prebuilt/zlib/lib/libz.a
)
set_target_properties(mbedtls_static PROPERTIES
IMPORTED_LOCATION ${MBEDTLS_PREBUILT_DIR}/lib/libmbedtls.a
)
set_target_properties(mbedx509_static PROPERTIES
IMPORTED_LOCATION ${MBEDTLS_PREBUILT_DIR}/lib/libmbedx509.a
)
set_target_properties(mbedcrypto_static PROPERTIES
IMPORTED_LOCATION ${MBEDTLS_PREBUILT_DIR}/lib/libmbedcrypto.a
)
# 包括 火山引擎RTC Engine Lite库
if(ENABLE_RTC_MODE)
add_definitions(-DENABLE_RTC_MODE)
target_sources(volc_conv_ai_a PRIVATE
${VOLC_CONV_AI_HIGH_QUALITY_SRCS}
)
message(STATUS "use high quality RTC mode")
set(RTC_LIB_DIR ${CMAKE_CURRENT_LIST_DIR}/../src/transports/high_quality/third_party/volc_rtc_engine_lite/libs/linux_x64)
message(STATUS "RTC_LIB_DIR: ${RTC_LIB_DIR}")
find_library(RTC_LIBRARIES NAMES VolcEngineRTCLite REQUIRED NO_CMAKE_FIND_ROOT_PATH PATHS ${RTC_LIB_DIR})
target_link_libraries(volc_conv_ai_a PRIVATE
${RTC_LIBRARIES}
)
target_include_directories(volc_conv_ai_a PUBLIC
${VOLC_CONV_AI_HIGH_QUALITY_INCS}
)
endif()
if(ENABLE_MBEDTLS)
target_include_directories(volc_conv_ai_a PUBLIC ${MBEDTLS_PREBUILT_DIR}/include)
target_link_libraries(volc_conv_ai_a PRIVATE
mbedtls_static
mbedx509_static
mbedcrypto_static
zlib_static
)
target_compile_definitions(volc_conv_ai_a PRIVATE ENABLE_MBEDTLS)
endif()
target_link_libraries(volc_conv_ai_a PUBLIC pthread)
target_include_directories(volc_conv_ai_a PUBLIC
${VOLC_CONV_AI_INCS}
${VOLC_CONV_AI_PLATFORM_INCS}
)
@@ -0,0 +1,133 @@
message(STATUS "配置macOS平台的volc_conv_ai库")
option(ENABLE_RTC_MODE "Enable Conv AI RTC mode" OFF)
option(ENABLE_WS_MODE "Enable Conv AI WS mode" OFF)
option(ENABLE_CJSON "Enable cJSON" ON)
option(ENABLE_MBEDTLS "Enable Mbedtls" ON)
if(NOT DEFINED VOLC_CONV_AI_PLATFORM_SRCS)
set(VOLC_CONV_AI_PLATFORM_SRCS
"${CMAKE_CURRENT_LIST_DIR}/../osal/src/macos/volc_osal.c"
CACHE INTERNAL "ConversationalAI-Embedded-Kit-2.0 platform src file")
endif()
set(MBEDTLS_PREBUILT_DIR ${CMAKE_CURRENT_LIST_DIR}/../third_party/prebuilt/mbedtls)
set(MBEDTLS_LIBRARY_FILE "${MBEDTLS_PREBUILT_DIR}/lib/libmbedtls.a")
set(MBEDTLS_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/../third_party/mbedtls)
if(NOT EXISTS "${MBEDTLS_LIBRARY_FILE}" AND NOT EXISTS "${MBEDTLS_SOURCE_DIR}/CMakeLists.txt")
message(STATUS "start download and compile mbedtls...")
include(ExternalProject)
ExternalProject_Add(
mbedtls
GIT_REPOSITORY https://github.com/ARMmbed/mbedtls.git
GIT_TAG v3.6.3
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/build
SOURCE_DIR ${MBEDTLS_SOURCE_DIR}
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=${MBEDTLS_PREBUILT_DIR}
-DUSE_SHARED_MBEDTLS_LIBRARY=${BUILD_SHARED}
-DCMAKE_BUILD_TYPE=Debug
-DCMAKE_MACOSX_RPATH=${CMAKE_MACOSX_RPATH}
-DENABLE_TESTING=OFF
-DENABLE_PROGRAMS=OFF
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -Wno-unused-but-set-parameter
-DMBEDTLS_FATAL_WARNINGS=OFF
BUILD_ALWAYS FALSE
TEST_COMMAND ""
)
else()
message(STATUS "mbedtls library already exists, skip download and compile")
endif()
add_library(volc_conv_ai_a STATIC
${VOLC_CONV_AI_SRCS}
${VOLC_CONV_AI_PLATFORM_SRCS}
)
if(ENABLE_WS_MODE)
message(STATUS "use low load WS mode")
target_sources(volc_conv_ai_a PRIVATE
${VOLC_CONV_AI_LOW_LOAD_SRCS}
)
endif()
add_library(mbedtls_static STATIC IMPORTED GLOBAL)
add_library(mbedx509_static STATIC IMPORTED GLOBAL)
add_library(zlib_static STATIC IMPORTED GLOBAL)
add_library(mbedcrypto_static STATIC IMPORTED GLOBAL)
set_target_properties(zlib_static PROPERTIES
IMPORTED_LOCATION ${CMAKE_CURRENT_LIST_DIR}/../third_party/prebuilt/zlib/lib/libz.a
)
set_target_properties(mbedtls_static PROPERTIES
IMPORTED_LOCATION ${MBEDTLS_PREBUILT_DIR}/lib/libmbedtls.a
)
set_target_properties(mbedx509_static PROPERTIES
IMPORTED_LOCATION ${MBEDTLS_PREBUILT_DIR}/lib/libmbedx509.a
)
set_target_properties(mbedcrypto_static PROPERTIES
IMPORTED_LOCATION ${MBEDTLS_PREBUILT_DIR}/lib/libmbedcrypto.a
)
if(ENABLE_RTC_MODE)
target_sources(volc_conv_ai_a PRIVATE
${VOLC_CONV_AI_HIGH_QUALITY_SRCS}
)
message(STATUS "use high quality RTC mode")
set(RTC_LIB_DIR ${CMAKE_CURRENT_LIST_DIR}/../src/transports/high_quality/third_party/volc_rtc_engine_lite/libs/macos)
message(STATUS "RTC_LIB_DIR: ${RTC_LIB_DIR}")
find_library(RTC_LIBRARIES NAMES VolcEngineRTCLite REQUIRED NO_CMAKE_FIND_ROOT_PATH PATHS ${RTC_LIB_DIR})
target_link_libraries(volc_conv_ai_a PRIVATE
${RTC_LIBRARIES}
)
endif()
if(ENABLE_WS_MODE)
target_compile_definitions(volc_conv_ai_a PRIVATE ENABLE_WS_MODE)
endif()
if(ENABLE_RTC_MODE)
target_compile_definitions(volc_conv_ai_a PRIVATE ENABLE_RTC_MODE)
endif()
if(ENABLE_CJSON)
target_compile_definitions(volc_conv_ai_a PRIVATE ENABLE_CJSON)
endif()
if(ENABLE_MBEDTLS)
target_include_directories(volc_conv_ai_a PUBLIC ${MBEDTLS_PREBUILT_DIR}/include)
target_link_libraries(volc_conv_ai_a PRIVATE
mbedtls_static
mbedx509_static
mbedcrypto_static
zlib_static
)
target_compile_definitions(volc_conv_ai_a PRIVATE ENABLE_MBEDTLS)
endif()
target_include_directories(volc_conv_ai_a PUBLIC
${VOLC_CONV_AI_INCS}
${VOLC_CONV_AI_PLATFORM_INCS}
)
if(ENABLE_WS_MODE)
target_include_directories(volc_conv_ai_a PUBLIC
${VOLC_CONV_AI_LOW_LOAD_INCS}
)
endif()
if(ENABLE_RTC_MODE)
target_include_directories(volc_conv_ai_a PUBLIC
${VOLC_CONV_AI_HIGH_QUALITY_INCS}
)
endif()
set_target_properties(volc_conv_ai_a PROPERTIES
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
)