build-plugins

 1#!/bin/bash
 2
 3set -e
 4
 5echo "Clearing cached plugins..."
 6cargo clean --manifest-path plugins/Cargo.toml
 7
 8echo "Building Wasm plugins..."
 9cargo build --release --target wasm32-unknown-unknown --manifest-path plugins/Cargo.toml
10
11echo
12echo "Extracting binaries..."
13rm -rf plugins/bin
14mkdir plugins/bin
15
16for f in plugins/target/wasm32-unknown-unknown/release/*.wasm
17do
18    name=$(basename $f)
19    cp $f plugins/bin/$name
20    echo "- Extracted plugin $name"
21done
22
23echo
24echo "Creating .wat versions (for human inspection)..."
25
26for f in plugins/bin/*.wasm
27do
28    name=$(basename $f)
29    base=$(echo $name | sed "s/\..*//")
30    wasm2wat $f --output plugins/bin/$base.wat
31    echo "- Converted $base.wasm -> $base.wat"
32done
33
34echo
35echo "Optimizing plugins using wasm-opt..."
36
37for f in plugins/bin/*.wasm
38do
39    name=$(basename $f)
40    wasm-opt -Oz $f --output $f
41    echo "- Optimized $name"
42done
43
44echo
45echo "Done!"