#!/usr/bin/env bash # Compila The Burdened Raid (Sigve Rokenes / evgiz, MIT; github.com/evgiz/theburdenedraid, o jogo do Ludum Dare 40, Java + # libGDX) para a web com o modulo html do proprio projeto (GWT), JDK 17 do artifacts/tools e um Gradle moderno: # # src/FredGames.Bundler/Builds/build-burdened-raid.sh # # O projeto e de 2018 (Gradle 2.14.1, libGDX 1.9.7, GWT 2.8.0, gwt-gradle-plugin 0.6), que nao rodam no JDK 17. Mudancas # (burdened-raid/burdened-raid-fredygames.patch + burdened-raid/fix-assets.py): # - Gradle wrapper 8.14.3 (sha256 pinado), org.wisepersist gwt-gradle-plugin 1.1.16, `compile` -> api/implementation, # libGDX 1.14.2 e GWT 2.10.0 (mesmo molde do Halma); so os modulos core e html entram na build (sem desktop nem ios); # localWorkers = 1 e jw_det_hash: sem isso o JavaScript do GWT muda de uma build para outra; # - uma unica mudanca de codigo: FrameBuffer.createFrameBuffer(...) (fabrica estatica do libGDX 1.9 para GWT) vira # new FrameBuffer(...); o canvas ocupa a janela (GwtApplicationConfiguration(true)) em vez de 480x320; # - recursos: a fonte bitmap (Alagard, sem licenca registrada) vira a Jacquard 12 (SIL OFL 1.1); saem o badlogic.jpg # (imagem padrao do libGDX) e o SoundManager2 (o libGDX 1.14 nao o usa). # index.html e nosso (java-web/index-gwt.html.in: CSP so desta origem, com 'unsafe-eval' que o carregador do GWT exige). # # Saida: artifacts/build/burdened-raid-/{burdened-raid-web.tar.gz, burdened-raid-.tar.gz (o fonte do autor)}. set -euo pipefail here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "$here/java-web/env.sh" burdened-raid 17 jw_det_hash COMMIT=e2a914160660d5a86263ceb7799b9447732eef87 SHA256=3e62ffbb682866fac9f66a06af3dd8923cc9d39e61984c4afc766fbfc965c7d2 out="$root/artifacts/build/burdened-raid-${COMMIT:0:7}" py="$root/artifacts/tools/venv/bin/python" jw_fetch "https://codeload.github.com/evgiz/theburdenedraid/tar.gz/$COMMIT" "$SHA256" "burdened-raid-${COMMIT:0:7}.tar.gz" echo "b1560583565a37f3d3a25cf2572df3efd2d773ecdcbb459dcd7ea0398cb840d1 $here/burdened-raid/Jacquard12.ttf" | shasum -a 256 -c - >/dev/null rm -rf "$out"; mkdir -p "$out/project" tar -xzf "$cache/burdened-raid-${COMMIT:0:7}.tar.gz" -C "$out/project" --strip-components 1 cd "$out/project" patch -s -E -p1 < "$here/burdened-raid/burdened-raid-fredygames.patch" "$py" -I "$here/burdened-raid/fix-assets.py" . "$here/burdened-raid/Jacquard12.ttf" jw_gradle :html:dist > "$out/gradle.log" 2>&1 || { tail -40 "$out/gradle.log" >&2; exit 1; } jw_post html/build/dist "$out/web" burdened-raid 'The Burdened Raid' '#000000' '#e0e0e0' html/html.nocache.js gwt rm -rf "$out/web/html/gwt" "$out/web/html/html.devmode.js" "$out/web/html/compilation-mappings.txt" printf 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR4nGNgYGD4DwABBAEAHnOcQAAAAABJRU5ErkJggg==' | base64 -d > "$out/web/html/logo.png" find "$out/web" -exec touch -t 202001010000 {} + cd "$out" jw_pack web burdened-raid-web.tar.gz cp "$cache/burdened-raid-${COMMIT:0:7}.tar.gz" "burdened-raid-${COMMIT:0:7}.tar.gz" ( shasum -a 256 burdened-raid-web.tar.gz "burdened-raid-${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