Add initial board, HAL, and executor modules
This commit is contained in:
1 parent
3b9e129c88
commit
0b2eebe76d
82 files changed
+20611
No files matched your search
@@ -0,0 +1,150 @@
|
||||
# 获取当前选择的 demo 配置
|
||||
if(CONFIG_SWEEKAR_DEMO_1)
|
||||
set(ACTIVE_DEMO "sweekar_demo1")
|
||||
elseif(CONFIG_SWEEKAR_DEMO_2)
|
||||
set(ACTIVE_DEMO "sweekar_demo2")
|
||||
elseif(CONFIG_SWEEKAR_DEMO_3)
|
||||
set(ACTIVE_DEMO "sweekar_demo3")
|
||||
elseif(CONFIG_SWEEKAR_DEMO_4)
|
||||
set(ACTIVE_DEMO "sweekar_demo4")
|
||||
elseif(CONFIG_SWEEKAR_DEMO_5)
|
||||
set(ACTIVE_DEMO "sweekar_demo5")
|
||||
elseif(CONFIG_SWEEKAR_DEMO_6)
|
||||
set(ACTIVE_DEMO "sweekar_demo6")
|
||||
elseif(CONFIG_SWEEKAR_DEMO_7)
|
||||
set(ACTIVE_DEMO "sweekar_demo7")
|
||||
endif()
|
||||
|
||||
# 初始化全局变量,用于收集各模块的信息
|
||||
set(MODULE_SRCS)
|
||||
set(MODULE_INCLUDE_DIRS)
|
||||
set(MODULE_REQUIRES)
|
||||
set(MODULE_PRIV_REQUIRES)
|
||||
set(MODULE_EMBED_TXTFILES)
|
||||
|
||||
if(NOT DEFINED CONFIG_SWEEKAR_DEMO_SELECTION)
|
||||
set(EARLY_EXPANSION TRUE)
|
||||
message(STATUS "Early expansion pass: loading all module requirements")
|
||||
else()
|
||||
set(EARLY_EXPANSION FALSE)
|
||||
endif()
|
||||
|
||||
# ===================================================================
|
||||
# 执行 Kconfig 自动组装脚本 (在配置阶段自动生成 Kconfig.modules)
|
||||
# ===================================================================
|
||||
execute_process(
|
||||
COMMAND python3 ${CMAKE_CURRENT_LIST_DIR}/generate_kconfig_modules.py
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
|
||||
RESULT_VARIABLE generate_kconfig_result
|
||||
)
|
||||
if(NOT generate_kconfig_result EQUAL 0)
|
||||
message(FATAL_ERROR "Failed to generate Kconfig.modules")
|
||||
endif()
|
||||
|
||||
# ==================== 模块注册区 ====================
|
||||
# 定义需要扫描的架构层级目录
|
||||
set(SUBSYSTEM_DIRS
|
||||
"04_hal"
|
||||
"05_executors"
|
||||
"05_service"
|
||||
"06_behaviors"
|
||||
"tests"
|
||||
)
|
||||
|
||||
# 扫描并加载所有启用的子模块(依赖各个模块中的 module.cmake)
|
||||
foreach(dir ${SUBSYSTEM_DIRS})
|
||||
file(GLOB MODULE_FILES "${CMAKE_CURRENT_LIST_DIR}/${dir}/*/module.cmake")
|
||||
foreach(mod_file ${MODULE_FILES})
|
||||
include(${mod_file})
|
||||
endforeach()
|
||||
endforeach()
|
||||
|
||||
# sweekar_demos 模块 (单独加载)
|
||||
# include(${CMAKE_CURRENT_LIST_DIR}/sweekar_demos/module.cmake)
|
||||
|
||||
# ===================================================================
|
||||
|
||||
if(MODULE_REQUIRES)
|
||||
list(REMOVE_DUPLICATES MODULE_REQUIRES)
|
||||
endif()
|
||||
if(MODULE_PRIV_REQUIRES)
|
||||
list(REMOVE_DUPLICATES MODULE_PRIV_REQUIRES)
|
||||
endif()
|
||||
|
||||
message(STATUS "==== DEBUG ====")
|
||||
message(STATUS "MODULE_REQUIRES: ${MODULE_REQUIRES}")
|
||||
message(STATUS "MODULE_SRCS: ${MODULE_SRCS}")
|
||||
message(STATUS "===============")
|
||||
|
||||
idf_component_register(
|
||||
SRCS
|
||||
"main.cc"
|
||||
# "tests/test.cc"
|
||||
# "tests/korvo_port/korvo_port_runner.cc"
|
||||
# "tests/korvo_port/ai_agent.c"
|
||||
# "tests/korvo_port/audio_proc.c"
|
||||
# "tests/korvo_port/rtc_proc.c"
|
||||
# "../managed_components/espressif__zlib/zlib/contrib/minizip/unzip.c"
|
||||
# "../managed_components/espressif__zlib/zlib/contrib/minizip/ioapi.c"
|
||||
${MODULE_SRCS}
|
||||
INCLUDE_DIRS
|
||||
"."
|
||||
# "../managed_components/espressif__zlib/zlib/contrib/minizip"
|
||||
# "05_executors/touch_sensor"
|
||||
# "05_executors/aw_touch_sensor"
|
||||
${MODULE_INCLUDE_DIRS}
|
||||
|
||||
REQUIRES
|
||||
# lvgl
|
||||
# esp_timer
|
||||
# driver
|
||||
# esp_driver_i2c
|
||||
# esp_driver_i2s
|
||||
# esp_event
|
||||
# nvs_flash
|
||||
# spi_flash
|
||||
# esp_driver_gpio
|
||||
# spiffs
|
||||
# vfs
|
||||
# esp_http_server
|
||||
# log
|
||||
# fatfs
|
||||
# bt
|
||||
# mbedtls
|
||||
# audio_pipeline
|
||||
# audio_hal
|
||||
# audio_board
|
||||
# esp_peripherals
|
||||
# audio_stream
|
||||
# audio_sal
|
||||
# esp-adf-libs
|
||||
# espressif__zlib
|
||||
${MODULE_REQUIRES}
|
||||
PRIV_REQUIRES
|
||||
# esp-qcloud
|
||||
${MODULE_PRIV_REQUIRES}
|
||||
EMBED_TXTFILES
|
||||
${MODULE_EMBED_TXTFILES}
|
||||
)
|
||||
# 添加 C++ 标准库支持
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
# 自动创建SPIFFS分区镜像
|
||||
# 这会在构建时自动生成audio.bin并在烧录时一并烧录
|
||||
# spiffs_create_partition_image(audio ../spiffs FLASH_IN_PROJECT)
|
||||
|
||||
# 添加编译选项来忽略字符串常量转换警告
|
||||
target_compile_options(${COMPONENT_LIB} PRIVATE -Wno-write-strings)
|
||||
target_compile_options(${COMPONENT_LIB} PRIVATE -DUSE_FILE32API)
|
||||
|
||||
|
||||
set(LANG_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/assets/lang_config.h")
|
||||
|
||||
# 根据 boards 目录内部模块自动匹配当前选择的板卡
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/02_physical/boards/module.cmake)
|
||||
|
||||
if (CONFIG_VOLC_RTC_MODE)
|
||||
set(COMPONENT_SRCS ${COMPONENT_SRCS} RtcBotUtils.c)
|
||||
endif()
|
||||
target_compile_definitions(${COMPONENT_LIB} PRIVATE IOAPI_NO_64)
|
||||
Reference in new issue
Block a user