#!/usr/bin/env bash # Compila o Procedural Spider (Jakub Arnold, Ludum Dare 49; MIT; macroquad 0.3.10) em WebAssembly, a partir do commit # 5443913 de github.com/darthdeus/procedural-spider: "cargo build --release --target wasm32-unknown-unknown" (o # Makefile do autor) com o Cargo.lock dele ("--locked": o Cargo.toml pede as dependencias com "*", e o Cargo.lock do # commit fixa as versoes), Rust 1.58.1 de artifacts/tools (o wasm-bindgen 0.2.78 do Cargo.lock nao compila em Rust novo). Sem wasm-bindgen: o macroquad roda com o mq_js_bundle.js # do proprio crate. Unica mudanca (procedural-spider/web.patch): no navegador, Esc nao sai do laco do jogo (o que # congelaria a pagina). A pagina (macroquad-web/index.html.in) e nossa. # # src/FredGames.Bundler/Builds/build-procedural-spider.sh # # Saida: artifacts/build/procedural-spider-5443913/{procedural-spider-5443913-dist.tar.gz,licenses.txt}; o .tar.gz sai # igual em dois builds. SLUG=procedural-spider REPO=darthdeus/procedural-spider COMMIT=5443913744870bc552b37e2a546599d6481d19df SHA256=c6fc07ae0cae95a5e385b5a593b05270b630f657bfd6343c3e30c75187e62b1a TOOLCHAIN=1.58.1 source "$(dirname "${BASH_SOURCE[0]}")/macroquad-web/common.sh" mq_init mq_patch "$here/procedural-spider/web.patch" mq_cargo procedural-spider mq_js 0.3.10 e75a20f406ba88aa0cf7287343da01022c5ca8c8160ebe58034632c966d6f7ec # O .wasm tem 14 MB (a musica vai embutida em WAV): vai comprimido e a pagina descomprime. gzip -n -9 -c "$tree/target/wasm32-unknown-unknown/release/procedural-spider.wasm" > "$out/dist/procedural-spider.wasm.gz" sed -e "s/@TITLE@/Procedural Spider/g; s/@SLUG@/$SLUG/g; s/@WASM@/procedural-spider.wasm.gz/g; s/@BG@/#000/g" \ "$here/macroquad-web/index.html.in" > "$out/dist/index.html" { echo "== Procedural Spider (LICENSE.md do repositorio, MIT)" cat "$tree/LICENSE.md" echo echo "========================================================================" cat "$out/crates.txt" } > "$out/licenses.txt" mq_pack