build-rust-host.sh

1.4 KB · raw

1#!/bin/sh2set -eu34SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)5ANDROID_REPOSITORY=$(CDPATH= cd -- "$SCRIPT_DIR/.." && pwd)6CORE_REPOSITORY=${1:-${PEACH_NOISE_CORE_DIR:-"$ANDROID_REPOSITORY/../peach-browser/crypto-core"}}7CARGO_FEATURES=${PEACH_NOISE_CORE_FEATURES:-}89# shellcheck source=scripts/rust-toolchain.sh10. "$SCRIPT_DIR/rust-toolchain.sh"11require_pinned_rust_toolchain1213if [ ! -f "$CORE_REPOSITORY/Cargo.toml" ] || [ ! -f "$CORE_REPOSITORY/Cargo.lock" ]; then14    echo "Canonical Peach Noise core manifest/lock not found: $CORE_REPOSITORY" >&215    exit 116fi1718if [ -n "$CARGO_FEATURES" ]; then19    (cd "$CORE_REPOSITORY" && cargo build --locked --release --features "$CARGO_FEATURES")20else21    (cd "$CORE_REPOSITORY" && cargo build --locked --release)22fi2324PROVENANCE_DIRECTORY="$ANDROID_REPOSITORY/build/provenance"25mkdir -p "$PROVENANCE_DIRECTORY"26HOST_LIBRARY="$CORE_REPOSITORY/target/release/libpeach_noise_core.dylib"27{28    echo "rustc=$PINNED_RUSTC_VERSION"29    echo "cargo=$PINNED_CARGO_VERSION"30    echo "cargo_toml_sha256=$(hash_file "$CORE_REPOSITORY/Cargo.toml")"31    echo "cargo_lock_sha256=$(hash_file "$CORE_REPOSITORY/Cargo.lock")"32    echo "rust_sources_sha256=$(hash_rust_sources "$CORE_REPOSITORY/src")"33    echo "target=aarch64-apple-darwin"34    echo "host_library_sha256=$(hash_file "$HOST_LIBRARY")"35} > "$PROVENANCE_DIRECTORY/noise-core-host.txt"36