#!/usr/bin/env bash # Compila o Rectball (Dani Rodriguez, GPL-3.0-or-later; github.com/danirod/rectball, Kotlin + libGDX) para a # web com o modulo teavm do proprio autor (TeaVM 0.9.2 + gdx-teavm 1.0.0-b9, libGDX 1.12.1), JDK 17 do # artifacts/tools e o Gradle wrapper do projeto (8.2, sha256 pinado) com GRADLE_USER_HOME em # artifacts/build/cache/gradle-rectball: # # src/FredGames.Bundler/Builds/build-rectball.sh # # Mudancas (rectball/rectball-fredygames.patch): so os modulos core e teavm entram na build (sem android nem # lwjgl3, que pedem o Android SDK) e gdx-teavm 1.0.0-b8 -> b9 (a b8 depende de um snapshot do TeaVM que saiu do # Maven). O jogo nao tem Play Games, loja nem links externos na web (GameServices/Marketplace nulos). # index.html e nosso (CSP so desta origem, sem o logo do libGDX); ver java-web/env.sh. # # Saida: artifacts/build/rectball-/{rectball-web.tar.gz, rectball-.tar.gz (o fonte exato do autor)}. set -euo pipefail here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "$here/java-web/env.sh" rectball 17 COMMIT=01ac8fa0e12d08ee3d1a7d0c97ba4f638a671659 SHA256=a2763331258ab2eb3b67c6372b4eb0dbacf81a6134b591677c289585f4c4fce8 out="$root/artifacts/build/rectball-${COMMIT:0:7}" jw_fetch "https://codeload.github.com/danirod/rectball/tar.gz/$COMMIT" "$SHA256" "rectball-${COMMIT:0:7}.tar.gz" rm -rf "$out"; mkdir -p "$out/project" tar -xzf "$cache/rectball-${COMMIT:0:7}.tar.gz" -C "$out/project" --strip-components 1 cd "$out/project" patch -s -E -p1 < "$here/rectball/rectball-fredygames.patch" jw_gradle :teavm:buildJavaScript > "$out/gradle.log" 2>&1 || { tail -40 "$out/gradle.log" >&2; exit 1; } jw_post teavm/build/dist/webapp "$out/web" rectball Rectball '#101418' '#e8eaed' cd "$out" jw_pack web rectball-web.tar.gz cp "$cache/rectball-${COMMIT:0:7}.tar.gz" "rectball-${COMMIT:0:7}.tar.gz" ( shasum -a 256 rectball-web.tar.gz "rectball-${COMMIT:0:7}.tar.gz"; cd web && find . -type f -print0 | sort -z | xargs -0 shasum -a 256 ) > SHA256SUMS head -2 SHA256SUMS; du -sh web