#!/usr/bin/env bash set -euo pipefail function _print_usage() { echo "Usage: $0 [--no-container]" echo "" echo "Options:" echo " --no-container To not source the dev container environment." echo " -h,--help Print this help and exit." } while [[ "$#" -gt 0 ]]; do case $1 in -h | --help) _print_usage exit 0 ;; --no-container) _no_container=1 ;; *) echo "Unknown parameter passed: $1"; _print_usage; exit 1 ;; esac shift done # Clean and load dev container cd "$(dirname "$0")/.." [[ -d ./build/uniffi ]] && rm -r ./build/uniffi/ if [[ -z ${_no_container+x} ]] ; then source ./.devcontainer/env.sh fi # Build library cargo build -F uniffi -p libthreema --release # Generate Kotlin bindings cargo run -p uniffi-bindgen generate --library ./target/release/liblibthreema.so --language kotlin --out-dir ./build/uniffi/kotlin # Generate Swift bindings cargo run -p uniffi-bindgen generate --library ./target/release/liblibthreema.so --language swift --out-dir ./build/uniffi/swift # Unload dev container if it was started if [[ -z ${_no_container+x} ]] ; then deactivate --only-if-started fi