11#! /bin/bash
22
33if ! [ -x " $( command -v python3) " ]; then
4- echo " ERROR: python is not installed! Please install python first."
4+ echo " ERROR: python is not installed or not in PATH ! Please install python first."
55 exit 1
66fi
77
88if ! [ -x " $( command -v git) " ]; then
9- echo " ERROR: git is not installed! Please install git first."
9+ echo " ERROR: git is not installed or not in PATH! Please install git first."
10+ exit 1
11+ fi
12+
13+ if ! [ -x " $( command -v ninja) " ]; then
14+ echo " ERROR: ninja is not installed or not in PATH! Please install ninja first."
1015 exit 1
1116fi
1217
1318# Fixes building some components. See https://github.com/espressif/arduino-esp32/issues/10167
1419export IDF_COMPONENT_OVERWRITE_MANAGED_COMPONENTS=1
1520
21+ CCACHE_ENABLE=1
22+
1623export TARGET=" esp32"
1724BUILD_TYPE=" all"
1825SKIP_ENV=0
@@ -21,8 +28,9 @@ ARCHIVE_OUT=1
2128DEPLOY_OUT=0
2229
2330function print_help() {
24- echo " Usage: build.sh [-s] [-A <arduino_branch>] [-I <idf_branch>] [-i <idf_commit>] [-c <path>] [-t <target>] [-b <build|menuconfig|reconfigure|idf-libs|copy-bootloader|mem-variant>] [config ...]"
31+ echo " Usage: build.sh [-s] [-n] [- A <arduino_branch>] [-I <idf_branch>] [-i <idf_commit>] [-c <path>] [-t <target>] [-b <build|menuconfig|reconfigure|idf-libs|copy-bootloader|mem-variant>] [config ...]"
2532 echo " -s Skip installing/updating of ESP-IDF and all components"
33+ echo " -n Disable ccache"
2634 echo " -A Set which branch of arduino-esp32 to be used for compilation"
2735 echo " -I Set which branch of ESP-IDF to be used for compilation"
2836 echo " -i Set which commit of ESP-IDF to be used for compilation"
@@ -38,6 +46,9 @@ while getopts ":A:I:i:c:t:b:sde" opt; do
3846 s )
3947 SKIP_ENV=1
4048 ;;
49+ n )
50+ CCACHE_ENABLE=0
51+ ;;
4152 e )
4253 ARCHIVE_OUT=1
4354 ;;
7889shift $(( OPTIND - 1 ))
7990CONFIGS=$@
8091
92+ export IDF_CCACHE_ENABLE=$CCACHE_ENABLE
93+
8194# Output the TARGET array
8295echo " TARGET(s): ${TARGET[@]} "
8396
8497mkdir -p dist
8598rm -rf dependencies.lock
8699
87100if [ $SKIP_ENV -eq 0 ]; then
88- echo " * Installing ESP-IDF/Arduino and all components..."
101+ echo " * Installing/Updating Arduino and ESP-IDF."
102+
89103 # install arduino component
90104 ./tools/install-arduino.sh
91105 if [ $? -ne 0 ]; then exit 1; fi
@@ -137,7 +151,7 @@ if [ "$BUILD_TYPE" != "all" ]; then
137151
138152 echo " idf.py -DIDF_TARGET=\" $target \" -DSDKCONFIG_DEFAULTS=\" $configs \" $BUILD_TYPE "
139153 rm -rf build sdkconfig
140- idf.py -DIDF_TARGET=" $target " -DSDKCONFIG_DEFAULTS=" $configs " $BUILD_TYPE
154+ COMPONENTS_SUBSET=full idf.py -DIDF_TARGET=" $target " -DSDKCONFIG_DEFAULTS=" $configs " $BUILD_TYPE
141155 if [ $? -ne 0 ]; then exit 1; fi
142156 done
143157 exit 0
@@ -200,7 +214,7 @@ for target_json in `jq -c '.targets[]' configs/builds.json`; do
200214
201215 echo " * Build IDF-Libs: $idf_libs_configs "
202216 rm -rf build sdkconfig
203- idf.py -DIDF_TARGET=" $target " -DSDKCONFIG_DEFAULTS=" $idf_libs_configs " idf-libs
217+ COMPONENTS_SUBSET=full idf.py -DIDF_TARGET=" $target " -DSDKCONFIG_DEFAULTS=" $idf_libs_configs " idf-libs
204218 if [ $? -ne 0 ]; then exit 1; fi
205219
206220 # Build Bootloaders
@@ -212,7 +226,7 @@ for target_json in `jq -c '.targets[]' configs/builds.json`; do
212226
213227 echo " * Build BootLoader: $bootloader_configs "
214228 rm -rf build sdkconfig
215- idf.py -DIDF_TARGET=" $target " -DSDKCONFIG_DEFAULTS=" $bootloader_configs " copy-bootloader
229+ COMPONENTS_SUBSET=none idf.py -DIDF_TARGET=" $target " -DSDKCONFIG_DEFAULTS=" $bootloader_configs " copy-bootloader
216230 if [ $? -ne 0 ]; then exit 1; fi
217231 done
218232
@@ -225,7 +239,7 @@ for target_json in `jq -c '.targets[]' configs/builds.json`; do
225239
226240 echo " * Build Memory Variant: $mem_configs "
227241 rm -rf build sdkconfig
228- idf.py -DIDF_TARGET=" $target " -DSDKCONFIG_DEFAULTS=" $mem_configs " mem-variant
242+ COMPONENTS_SUBSET=none idf.py -DIDF_TARGET=" $target " -DSDKCONFIG_DEFAULTS=" $mem_configs " mem-variant
229243 if [ $? -ne 0 ]; then exit 1; fi
230244 done
231245done
0 commit comments