#!/bin/sh # Copyright (C) 2026 Doan Luu Duc Tai # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . set -eu ROOT="$(CDPATH= cd -- "$(dirname -- "$0")/../.." && pwd)" SOURCE="$ROOT/.tools/wasi-source" SDK="$SOURCE/wasi-sdk-34.0-x86_64-linux" PREFIX="$ROOT/.tools/openssl-wasi" cd "$ROOT" test -x "$SDK/bin/clang" test -f "$PREFIX/lib/libcrypto.a" printf '%s %s\n' b761e3a0721dbae9c09a0059e5fdb2bf917d1b4a8a7b430fb3b5aafb0984b2c4 "$SOURCE/sdk.tar.gz" | sha256sum --check printf '%s %s\n' a2157c2830efdec3788939b00c9b0638306d3f0bbb76dc4832ee503bb397df98 "$SOURCE/openssl.tar.gz" | sha256sum --check rustup target add wasm32-wasip1 RUST_LIB="$(rustc --print target-libdir --target wasm32-wasip1)/self-contained" env LIBCLANG_PATH="$SDK/lib" OPENSSL_DIR="$PREFIX" OPENSSL_STATIC=1 \ CC_wasm32_wasip1="$SDK/bin/clang" AR_wasm32_wasip1="$SDK/bin/llvm-ar" \ BINDGEN_EXTRA_CLANG_ARGS_wasm32_wasip1="--sysroot=$SDK/share/wasi-sysroot --target=wasm32-wasip1 -fvisibility=default" \ RUSTFLAGS="-Lnative=$RUST_LIB -Lnative=$SDK/share/wasi-sysroot/lib/wasm32-wasip1 -Clink-arg=-lwasi-emulated-getpid -Clink-arg=--max-memory=268435456" \ cargo build --locked --release -p stack-chat-crypto --bin stack-chat-crypto --target wasm32-wasip1 sha256sum target/wasm32-wasip1/release/stack-chat-crypto.wasm