#!/bin/sh # "Compile rust source and put it as a tested contract" mkdir -p out file=$1 if [ ${file: -3} == ".rs" ] then # Rust is compiled with rustc rustc $file -o out/contract.js -O --target wasm32-unknown-emscripten -C linker=./linker_emcc.sh # Gas injector cargo run --manifest-path=./../gas/Cargo.toml --release -- ./out/contract.wasm ./out/contract.wasm # Allocator replacer cargo run --manifest-path=./../ext/Cargo.toml --release -- ./out/contract.wasm ./out/contract.wasm # Symbols optimizer cargo run --manifest-path=./../opt/Cargo.toml --release -- ./out/contract.wasm ./out/contract.wasm else # c/c++ can be compiled directly by emcc emcc $file -O3 -s WASM=1 -s SIDE_MODULE=1 -o out/contract.wasm # Gas injector cargo run --manifest-path=./../gas/Cargo.toml --release -- ./out/contract.wasm ./out/contract.wasm # Symbols optimizer cargo run --manifest-path=./../opt/Cargo.toml --release -- ./out/contract.wasm ./out/contract.wasm fi