#!/usr/bin/env bash # Compila MicroCity (homebrew de Arduboy de James Howard, GPL-3.0) da tag v1.3, com versoes fixas: o # nucleo Arduino AVR 1.8.6 (LGPL-2.1; avr-gcc 7.3.0) e a biblioteca Arduboy2 6.0.0 (BSD-3), pelo # arduino-cli 1.5.1. O .hex do release do autor nao e reproduzivel (a versao do Arduboy2 que ele usou nao # esta registrada); servimos este, cujo fonte completo hospedamos junto: o jogo na tag, o Arduboy2, o # nucleo AVR e este script. # # src/FredGames.Bundler/Builds/build-microcity.sh # # Saida: artifacts/build/microcity-v1.3/MicroCity.hex set -euo pipefail CLI=1.5.1 CLI_SHA256=cb952e8c1621c95ef5f1d17831c945e3d0ec5973f89c557a7ec8feb9c4f7d4c9 GAME_SHA256=3c4fcd064ec9f05ddde0be49d727bd678020932c72a2190dc65b4ae37607851d ARDUBOY2=6.0.0 ARDUBOY2_SHA256=34c5530b98167106f7fa7f5e7568e39512f689bf819b370abc9f6a212077bf06 CORE=1.8.6 here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" root="$(git -C "$here" rev-parse --show-toplevel 2>/dev/null || pwd)" out="$root/artifacts/build/microcity-v1.3" cache="$root/artifacts/build/cache" tools="$root/artifacts/tools/arduino-$CLI" mkdir -p "$cache" "$tools" cli="$cache/arduino-cli_${CLI}_macOS_ARM64.tar.gz" game="$cache/MicroCity-v1.3.tar.gz" lib="$cache/Arduboy2-$ARDUBOY2.tar.gz" [ -f "$cli" ] || curl -fsSL "https://github.com/arduino/arduino-cli/releases/download/v$CLI/arduino-cli_${CLI}_macOS_ARM64.tar.gz" -o "$cli" [ -f "$game" ] || curl -fsSL "https://github.com/jhhoward/MicroCity/archive/refs/tags/v1.3.tar.gz" -o "$game" [ -f "$lib" ] || curl -fsSL "https://github.com/MLXXXp/Arduboy2/archive/refs/tags/$ARDUBOY2.tar.gz" -o "$lib" echo "$CLI_SHA256 $cli" | shasum -a 256 -c - echo "$GAME_SHA256 $game" | shasum -a 256 -c - echo "$ARDUBOY2_SHA256 $lib" | shasum -a 256 -c - tar -xzf "$cli" -C "$tools" arduino-cli export ARDUINO_DIRECTORIES_DATA="$tools/data" ARDUINO_DIRECTORIES_DOWNLOADS="$tools/staging" ARDUINO_DIRECTORIES_USER="$tools/user" "$tools/arduino-cli" core update-index >/dev/null "$tools/arduino-cli" core install "arduino:avr@$CORE" >/dev/null rm -rf "$out" mkdir -p "$out/src/MicroCity" "$out/lib/Arduboy2" "$out/hex" tar -xzf "$game" -C "$out/src/MicroCity" --strip-components 1 tar -xzf "$lib" -C "$out/lib/Arduboy2" --strip-components 1 "$tools/arduino-cli" compile -b arduino:avr:leonardo --library "$out/lib/Arduboy2" \ --output-dir "$out/hex" "$out/src/MicroCity/Source/MicroCity" >/dev/null cp "$out/hex/MicroCity.ino.hex" "$out/MicroCity.hex" shasum -a 256 "$out/MicroCity.hex"