mcuboot/ci/espressif_run.sh

55 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD
# SPDX-License-Identifier: Apache-2.0
SCRIPT_ROOTDIR=$(dirname "$(realpath "${BASH_SOURCE[0]}")")
MCUBOOT_ROOTDIR=$(realpath "${SCRIPT_ROOTDIR}/..")
ESPRESSIF_ROOT="${MCUBOOT_ROOTDIR}/boot/espressif"
IDF_PATH="${ESPRESSIF_ROOT}/hal/esp-idf"
set -eo pipefail
prepare_environment() {
# Prepare the environment for ESP-IDF
. "${IDF_PATH}"/export.sh
}
build_mcuboot() {
local target=${1}
local feature=${2}
local toolchain_file="${ESPRESSIF_ROOT}/tools/toolchain-${target}.cmake"
local mcuboot_config="${ESPRESSIF_ROOT}/port/${target}/bootloader.conf"
local build_dir=".build-${target}"
if [ -n "${feature}" ]; then
mcuboot_config="${mcuboot_config};${ESPRESSIF_ROOT}/secureboot-${feature}.conf"
build_dir=".build-${target}-${feature}"
fi
# Build MCUboot for selected target
cd "${MCUBOOT_ROOTDIR}" &>/dev/null
cmake -DCMAKE_TOOLCHAIN_FILE="${toolchain_file}" \
-DMCUBOOT_TARGET="${target}" \
-DMCUBOOT_CONFIG_FILE="${mcuboot_config}" \
-DIDF_PATH="${IDF_PATH}" \
-B "${build_dir}" \
"${ESPRESSIF_ROOT}"
cmake --build "${build_dir}"/
}
prepare_environment
if [ -n "${MCUBOOT_FEATURES}" ]; then
IFS=','
read -ra target_list <<< "${MCUBOOT_TARGETS}"
for target in "${target_list[@]}"; do
read -ra feature_list <<< "${MCUBOOT_FEATURES}"
for feature in "${feature_list[@]}"; do
echo "Building MCUboot for \"${target}\" with support for \"${feature}\""
build_mcuboot "${target}" "${feature}"
done
done
fi