From 5a4f040def3dd64a47555425539c6b6bc81a7d00 Mon Sep 17 00:00:00 2001 From: laokaiyao Date: Wed, 20 Mar 2024 13:19:53 +0800 Subject: [PATCH] ci(esp32c5): support to build template app for beta3 and mp --- tools/ci/build_template_app.sh | 61 ++++++++++++++++++++++++++-------- 1 file changed, 48 insertions(+), 13 deletions(-) diff --git a/tools/ci/build_template_app.sh b/tools/ci/build_template_app.sh index 4fb416f450..e020ac3979 100755 --- a/tools/ci/build_template_app.sh +++ b/tools/ci/build_template_app.sh @@ -9,31 +9,33 @@ set -euo pipefail +TEMPLATE_APP_PATH="esp-idf-template" + gen_configs() { # CONFIG_COMPILER_OPTIMIZATION_NONE with flag -O0 - echo "CONFIG_COMPILER_OPTIMIZATION_NONE=y" > esp-idf-template/sdkconfig.ci.O0 + echo "CONFIG_COMPILER_OPTIMIZATION_NONE=y" > ${TEMPLATE_APP_PATH}/sdkconfig.ci.O0 # CONFIG_COMPILER_OPTIMIZATION_SIZE with flag -Os - echo "CONFIG_COMPILER_OPTIMIZATION_SIZE=y" > esp-idf-template/sdkconfig.ci.Os - echo "CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y" >> esp-idf-template/sdkconfig.ci.Os + echo "CONFIG_COMPILER_OPTIMIZATION_SIZE=y" > ${TEMPLATE_APP_PATH}/sdkconfig.ci.Os + echo "CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y" >> ${TEMPLATE_APP_PATH}/sdkconfig.ci.Os # CONFIG_COMPILER_OPTIMIZATION_PERF with flag -O2 - echo "CONFIG_COMPILER_OPTIMIZATION_PERF=y" > esp-idf-template/sdkconfig.ci.O2 - echo "CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF=y" >> esp-idf-template/sdkconfig.ci.O2 + echo "CONFIG_COMPILER_OPTIMIZATION_PERF=y" > ${TEMPLATE_APP_PATH}/sdkconfig.ci.O2 + echo "CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF=y" >> ${TEMPLATE_APP_PATH}/sdkconfig.ci.O2 # -O2 makes the bootloader too large to fit in the default space, otherwise(!) - echo "CONFIG_PARTITION_TABLE_OFFSET=0x10000" >> esp-idf-template/sdkconfig.ci.O2 + echo "CONFIG_PARTITION_TABLE_OFFSET=0x10000" >> ${TEMPLATE_APP_PATH}/sdkconfig.ci.O2 # This part will be built in earlier stage (pre_build job) with only cmake. Built with make in later stage # CONFIG_COMPILER_OPTIMIZATION_DEBUG with flag -Og - echo "CONFIG_COMPILER_OPTIMIZATION_DEBUG=y" > esp-idf-template/sdkconfig.ci2.Og - echo "CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG=y" >> esp-idf-template/sdkconfig.ci2.Og + echo "CONFIG_COMPILER_OPTIMIZATION_DEBUG=y" > ${TEMPLATE_APP_PATH}/sdkconfig.ci2.Og + echo "CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG=y" >> ${TEMPLATE_APP_PATH}/sdkconfig.ci2.Og # -Og makes the bootloader too large to fit in the default space, otherwise(!) - echo "CONFIG_PARTITION_TABLE_OFFSET=0x10000" >> esp-idf-template/sdkconfig.ci2.Og + echo "CONFIG_PARTITION_TABLE_OFFSET=0x10000" >> ${TEMPLATE_APP_PATH}/sdkconfig.ci2.Og # Needs to be built with specific extra flags # Same as O2, but also disable assertions. - cp esp-idf-template/sdkconfig.ci.O2 esp-idf-template/sdkconfig.ci3.no_assert - echo "CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y" >> esp-idf-template/sdkconfig.ci3.no_assert + cp ${TEMPLATE_APP_PATH}/sdkconfig.ci.O2 ${TEMPLATE_APP_PATH}/sdkconfig.ci3.no_assert + echo "CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y" >> ${TEMPLATE_APP_PATH}/sdkconfig.ci3.no_assert } get_config_str() { @@ -53,7 +55,7 @@ build_stage2() { export EXTRA_CFLAGS=${PEDANTIC_CFLAGS/-Werror=unused-variable -Werror=unused-but-set-variable -Werror=unused-function/} export EXTRA_CXXFLAGS=${PEDANTIC_CXXFLAGS/-Werror=unused-variable -Werror=unused-but-set-variable -Werror=unused-function/} python -m idf_build_apps build -vv \ - -p esp-idf-template \ + -p ${TEMPLATE_APP_PATH} \ -t all \ ${CONFIG_STR} \ --work-dir ${BUILD_PATH}/cmake \ @@ -68,7 +70,7 @@ build_stage2() { build_stage1() { CONFIG_STR=$(get_config_str sdkconfig.ci2.*=) python -m idf_build_apps build -vv \ - -p esp-idf-template \ + -p ${TEMPLATE_APP_PATH} \ -t all \ ${CONFIG_STR} \ --work-dir ${BUILD_PATH}/cmake \ @@ -79,6 +81,35 @@ build_stage1() { --default-build-targets esp32 esp32s2 esp32s3 esp32c2 esp32c3 esp32c5 esp32c6 esp32h2 esp32p4 } +# TODO: IDF-9197 remove the additional test for esp32c5 beta3 +build_c5beta3() { + # Update the config to select C5 beta3 + C5BETA3_CFG="CONFIG_IDF_TARGET_ESP32C5_BETA3_VERSION=y\nCONFIG_IDF_TARGET_ESP32C5_MP_VERSION=n" + if [ $1 = 1 ] + then + echo "${C5BETA3_CFG}" >> ${TEMPLATE_APP_PATH}/sdkconfig.ci2.Og + CONFIG_STR=$(get_config_str sdkconfig.ci2.*=) + KEEP_GOING="" + else + echo "${C5BETA3_CFG}" >> ${TEMPLATE_APP_PATH}/sdkconfig.ci.O0 + echo "${C5BETA3_CFG}" >> ${TEMPLATE_APP_PATH}/sdkconfig.ci.Os + echo "${C5BETA3_CFG}" >> ${TEMPLATE_APP_PATH}/sdkconfig.ci.O2 + CONFIG_STR=$(get_config_str sdkconfig.ci.*=) + KEEP_GOING=" --keep-going" + fi + python -m idf_build_apps build -vv \ + -p ${TEMPLATE_APP_PATH} \ + -t esp32c5 \ + ${CONFIG_STR} \ + --work-dir ${BUILD_PATH}/cmake \ + --build-dir ${BUILD_DIR} \ + --build-log ${BUILD_LOG_CMAKE} \ + --size-file size.json \ + ${KEEP_GOING} \ + --collect-size-info size_info.txt \ + --default-build-targets esp32c5 +} + # Default arguments # STAGE: # 1 (-p): fast build, 2 (default): regular build @@ -104,3 +135,7 @@ then else build_stage2 fi + +# TODO: IDF-9197 remove the additional test for esp32c5 beta3 +echo "Build ESP32-C5 beta3 additionally" +build_c5beta3 ${STAGE}