2019-03-22 00:32:27 +03:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
set -ex
|
|
|
|
|
|
|
|
# Two critical steps are required here to get this working:
|
|
|
|
#
|
|
|
|
# * First, the Rust standard library needs to be compiled. The default version
|
|
|
|
# is not compatible with atomics so we need to compile a version, with xargo,
|
|
|
|
# that is compatible.
|
|
|
|
#
|
|
|
|
# * Next we need to compile everything with the `atomics` feature enabled,
|
|
|
|
# ensuring that LLVM will generate atomic instructions and such.
|
|
|
|
RUSTFLAGS='-C target-feature=+atomics' \
|
2019-04-26 05:25:32 +03:00
|
|
|
xargo build --target wasm32-unknown-unknown --release
|
2019-03-22 00:32:27 +03:00
|
|
|
|
|
|
|
# Threading support is disabled by default in wasm-bindgen, so use an env var
|
|
|
|
# here to turn it on for our bindings generation. Also note that webpack isn't
|
|
|
|
# currently compatible with atomics, so we go with the --no-modules output.
|
|
|
|
WASM_BINDGEN_THREADS=1 \
|
|
|
|
cargo run --manifest-path ../../crates/cli/Cargo.toml \
|
|
|
|
--bin wasm-bindgen -- \
|
|
|
|
../../target/wasm32-unknown-unknown/release/raytrace_parallel.wasm --out-dir . \
|
|
|
|
--no-modules
|
|
|
|
|
|
|
|
python3 -m http.server
|