111 lines
No EOL
4.7 KiB
Bash
111 lines
No EOL
4.7 KiB
Bash
|
|
#!/bin/bash
|
|
##
|
|
# We compile all examples using arduino-cli in order to identify compile errors
|
|
# The return codes are made available in the build-examples-log.txt file.
|
|
# -> rc=0: success
|
|
# -> rc=1: error
|
|
##
|
|
#arduino-cli lib upgrade
|
|
#arduino-cli lib linstall
|
|
git -C .. pull
|
|
git -C ../../ESP32-A2DP pull
|
|
git -C ../../arduino-audio-driver pull
|
|
git -C ../../codec-helix pull
|
|
|
|
# Examples that are not buildable for esp32:esp32:esp32 by design (wrong
|
|
# platform, or not an arduino-cli sketch at all) and are therefore skipped
|
|
# rather than reported as a build failure.
|
|
EXCLUDE_LIST=(
|
|
"streams-mp34dt05-serial" # Nano 33 BLE Sense only (needs PDM.h)
|
|
"fft-cmsis" # ARM Cortex-M only (STM32/RP2040/Renesas)
|
|
"streams-stk-desktop" # desktop build via CMake/PortAudio, not an ESP32 sketch
|
|
"python-post-server" # Python script, not an Arduino sketch
|
|
)
|
|
|
|
function is_excluded {
|
|
local name
|
|
name=$(basename "$1")
|
|
for ex in "${EXCLUDE_LIST[@]}"; do
|
|
if [[ "$name" == "$ex" ]]; then
|
|
return 0
|
|
fi
|
|
done
|
|
return 1
|
|
}
|
|
|
|
function compile_example {
|
|
ARCH=$1
|
|
FILES=$2
|
|
for f in $FILES
|
|
do
|
|
# Skip README.md files
|
|
if [[ $(basename "$f") == "README.md" ]]; then
|
|
echo "Skipping README.md file: $f"
|
|
continue
|
|
fi
|
|
|
|
if is_excluded "$f"; then
|
|
echo "Skipping excluded example: $f"
|
|
continue
|
|
fi
|
|
|
|
# A sketch directory must contain a .ino file with the same base name.
|
|
# If it doesn't, it's a container of sub-sketches (e.g.
|
|
# serial/mp3/{send-mp3,receive-mp3}) - recurse into it one level instead
|
|
# of trying to compile the container itself.
|
|
if [[ -d "$f" && ! -f "$f/$(basename "$f").ino" ]]; then
|
|
compile_example "$ARCH" "$f/*"
|
|
continue
|
|
fi
|
|
|
|
echo "Processing $f ..."
|
|
# take action on each file. $f store current file name
|
|
#arduino-cli compile -b "$ARCH" "$f"
|
|
arduino-cli compile -b "$ARCH" --build-property "build.partitions=rainmaker" --build-property "upload.maximum_size=3145728" "$f"
|
|
EC=$?
|
|
#if [ $EC -ne 0 ]; then
|
|
#break
|
|
echo -e "$f -> rc=$EC" >> "build-examples-log.txt"
|
|
#fi
|
|
done
|
|
}
|
|
|
|
rm build-examples-log.txt
|
|
compile_example "esp32:esp32:esp32" "../examples/examples-basic-api/base*"
|
|
compile_example "esp32:esp32:esp32" "../examples/examples-player/player*"
|
|
compile_example "esp32:esp32:esp32" "../examples/examples-stream/streams*"
|
|
compile_example "esp32:esp32:esp32" "../examples/examples-audiokit/*"
|
|
compile_example "esp32:esp32:esp32" "../examples/examples-tts/streams*"
|
|
compile_example "esp32:esp32:esp32" "../examples/examples-dsp/examples-maximilian/*"
|
|
compile_example "esp32:esp32:esp32" "../examples/examples-dsp/examples-mozzi/*"
|
|
compile_example "esp32:esp32:esp32" "../examples/examples-dsp/examples-pd/*"
|
|
compile_example "esp32:esp32:esp32" "../examples/examples-dsp/examples-stk/*"
|
|
compile_example "esp32:esp32:esp32" "../examples/examples-dsp/examples-faust/streams*"
|
|
compile_example "esp32:esp32:esp32" "../examples/examples-communication/a2dp/*"
|
|
compile_example "esp32:esp32:esp32" "../examples/examples-communication/esp-now/codec/*"
|
|
compile_example "esp32:esp32:esp32" "../examples/examples-communication/esp-now/pcm/*"
|
|
compile_example "esp32:esp32:esp32" "../examples/examples-communication/esp-now/speed-test/*"
|
|
compile_example "esp32:esp32:esp32" "../examples/examples-communication/ip/*"
|
|
compile_example "esp32:esp32:esp32" "../examples/examples-communication/udp/*"
|
|
compile_example "esp32:esp32:esp32" "../examples/examples-communication/vban/*"
|
|
compile_example "esp32:esp32:esp32" "../examples/examples-communication/rtsp/*"
|
|
compile_example "esp32:esp32:esp32" "../examples/examples-communication/serial/*"
|
|
compile_example "esp32:esp32:esp32" "../examples/examples-communication/snapcast/*"
|
|
compile_example "esp32:esp32:esp32" "../examples/examples-communication/http-client/*"
|
|
compile_example "esp32:esp32:esp32" "../examples/examples-communication/http-server/*"
|
|
compile_example "esp32:esp32:esp32" "../examples/tests/adc/*"
|
|
compile_example "esp32:esp32:esp32" "../examples/tests/basic/*"
|
|
compile_example "esp32:esp32:esp32" "../examples/tests/codecs/*"
|
|
compile_example "esp32:esp32:esp32" "../examples/tests/concurrency/*"
|
|
compile_example "esp32:esp32:esp32" "../examples/tests/conversion/*"
|
|
compile_example "esp32:esp32:esp32" "../examples/tests/effects/*"
|
|
compile_example "esp32:esp32:esp32" "../examples/tests/etc/*"
|
|
compile_example "esp32:esp32:esp32" "../examples/tests/fft/*"
|
|
compile_example "esp32:esp32:esp32" "../examples/tests/filters/*"
|
|
compile_example "esp32:esp32:esp32" "../examples/tests/performance/*"
|
|
compile_example "esp32:esp32:esp32" "../examples/tests/player/*"
|
|
compile_example "esp32:esp32:esp32" "../examples/tests/timer/*"
|
|
rm -rf /tmp/arduino
|
|
|
|
./cleanup.sh |