blob: 0061b0b928c214d00646b45912d252d4a0de1929 [file] [edit]
#!/usr/bin/env bash
set -euo pipefail
if (( $# != 2 )); then
printf 'Usage: %s <module> <non-simd|simd>\n' "$0" >&2
exit 2
fi
module="$1"
variant="$2"
case "$module" in
vello_cpu)
package=wasm_cpu
binary=wasm_cpu
;;
vello_hybrid_webgl)
package=native_webgl
binary=native_webgl
;;
vello_hybrid_wgpu)
package=wgpu_webgl
binary=wgpu_webgl
;;
*)
printf 'Unknown module: %s\n' "$module" >&2
exit 2
;;
esac
case "$variant" in
non-simd) target_feature=-simd128 ;;
simd) target_feature=+simd128 ;;
*)
printf 'Unknown variant: %s (expected non-simd or simd)\n' "$variant" >&2
exit 2
;;
esac
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
target_dir="${CARGO_TARGET_DIR:-$repo_root/target}"
if [[ "$target_dir" != /* ]]; then
target_dir="$repo_root/$target_dir"
fi
out_dir="$target_dir/sparse-strips-wasm/$module/$variant"
wasm_bindgen="${WASM_BINDGEN:-wasm-bindgen}"
rustflags="${RUSTFLAGS:-}"
rustflags="${rustflags:+$rustflags }-Ctarget-feature=$target_feature"
cd "$repo_root"
RUSTFLAGS="$rustflags" cargo build \
--target-dir "$target_dir" \
--locked \
--package "$package" \
--bin "$binary" \
--profile wasm-size \
--target wasm32-unknown-unknown
mkdir -p "$out_dir"
"$wasm_bindgen" \
--target web \
--no-typescript \
--out-dir "$out_dir" \
--out-name "$module" \
"$target_dir/wasm32-unknown-unknown/wasm-size/$binary.wasm"