Gustavo Henrique Nihei | 38453f6 | 2021-11-03 15:00:19 -0300 | [diff] [blame] | 1 | #!/usr/bin/env bash |
| 2 | # SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD |
| 3 | # SPDX-License-Identifier: Apache-2.0 |
| 4 | |
| 5 | SCRIPT_ROOTDIR=$(dirname "$(realpath "${BASH_SOURCE[0]}")") |
| 6 | MCUBOOT_ROOTDIR=$(realpath "${SCRIPT_ROOTDIR}/..") |
| 7 | ESPRESSIF_ROOT="${MCUBOOT_ROOTDIR}/boot/espressif" |
| 8 | IDF_PATH="${ESPRESSIF_ROOT}/hal/esp-idf" |
| 9 | |
| 10 | set -eo pipefail |
| 11 | |
Gustavo Henrique Nihei | 67b73d3 | 2021-12-09 17:05:10 -0300 | [diff] [blame] | 12 | prepare_environment() { |
Gustavo Henrique Nihei | 38453f6 | 2021-11-03 15:00:19 -0300 | [diff] [blame] | 13 | # Prepare the environment for ESP-IDF |
| 14 | |
| 15 | . "${IDF_PATH}"/export.sh |
Gustavo Henrique Nihei | 67b73d3 | 2021-12-09 17:05:10 -0300 | [diff] [blame] | 16 | } |
| 17 | |
| 18 | build_mcuboot() { |
Gustavo Henrique Nihei | d6e9810 | 2021-12-28 14:05:52 -0300 | [diff] [blame] | 19 | local target=${1} |
| 20 | local feature=${2} |
Almir Okato | bfdf934 | 2023-01-27 16:24:00 -0300 | [diff] [blame^] | 21 | local img_num=${3} |
Gustavo Henrique Nihei | 67b73d3 | 2021-12-09 17:05:10 -0300 | [diff] [blame] | 22 | local build_dir=".build-${target}" |
Almir Okato | bfdf934 | 2023-01-27 16:24:00 -0300 | [diff] [blame^] | 23 | local toolchain_file="${ESPRESSIF_ROOT}/tools/toolchain-${target}.cmake" |
| 24 | |
| 25 | if [ -n "$img_num" ]; then |
| 26 | img_num="-${img_num}" |
| 27 | fi |
| 28 | local mcuboot_config="${ESPRESSIF_ROOT}/port/${target}/bootloader${img_num}.conf" |
Gustavo Henrique Nihei | 67b73d3 | 2021-12-09 17:05:10 -0300 | [diff] [blame] | 29 | |
| 30 | if [ -n "${feature}" ]; then |
Almir Okato | bfdf934 | 2023-01-27 16:24:00 -0300 | [diff] [blame^] | 31 | mcuboot_config="${mcuboot_config};${ESPRESSIF_ROOT}/ci_configs/${feature}.conf" |
Gustavo Henrique Nihei | 67b73d3 | 2021-12-09 17:05:10 -0300 | [diff] [blame] | 32 | build_dir=".build-${target}-${feature}" |
| 33 | fi |
Gustavo Henrique Nihei | 38453f6 | 2021-11-03 15:00:19 -0300 | [diff] [blame] | 34 | |
| 35 | # Build MCUboot for selected target |
| 36 | |
| 37 | cd "${MCUBOOT_ROOTDIR}" &>/dev/null |
| 38 | cmake -DCMAKE_TOOLCHAIN_FILE="${toolchain_file}" \ |
| 39 | -DMCUBOOT_TARGET="${target}" \ |
| 40 | -DMCUBOOT_CONFIG_FILE="${mcuboot_config}" \ |
| 41 | -DIDF_PATH="${IDF_PATH}" \ |
| 42 | -B "${build_dir}" \ |
| 43 | "${ESPRESSIF_ROOT}" |
| 44 | cmake --build "${build_dir}"/ |
| 45 | } |
| 46 | |
Gustavo Henrique Nihei | 67b73d3 | 2021-12-09 17:05:10 -0300 | [diff] [blame] | 47 | prepare_environment |
| 48 | |
| 49 | if [ -n "${MCUBOOT_FEATURES}" ]; then |
| 50 | IFS=',' |
Gustavo Henrique Nihei | d6e9810 | 2021-12-28 14:05:52 -0300 | [diff] [blame] | 51 | read -ra target_list <<< "${MCUBOOT_TARGETS}" |
Almir Okato | bfdf934 | 2023-01-27 16:24:00 -0300 | [diff] [blame^] | 52 | read img_num <<< "${MCUBOOT_IMG_NUM}" |
Gustavo Henrique Nihei | d6e9810 | 2021-12-28 14:05:52 -0300 | [diff] [blame] | 53 | for target in "${target_list[@]}"; do |
| 54 | read -ra feature_list <<< "${MCUBOOT_FEATURES}" |
| 55 | for feature in "${feature_list[@]}"; do |
| 56 | echo "Building MCUboot for \"${target}\" with support for \"${feature}\"" |
Almir Okato | bfdf934 | 2023-01-27 16:24:00 -0300 | [diff] [blame^] | 57 | build_mcuboot "${target}" "${feature}" "${img_num}" |
Gustavo Henrique Nihei | d6e9810 | 2021-12-28 14:05:52 -0300 | [diff] [blame] | 58 | done |
Gustavo Henrique Nihei | 67b73d3 | 2021-12-09 17:05:10 -0300 | [diff] [blame] | 59 | done |
| 60 | fi |