| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #!/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
- # Ensure consistent target dir, even if `build.target-dir` config option is set for Cargo
- export CARGO_TARGET_DIR=target
- # Build library
- cargo build --locked -F uniffi -p libthreema --release
- # Generate Kotlin bindings
- cargo run \
- --locked \
- -p uniffi-bindgen generate \
- --library ./target/release/liblibthreema.so \
- --language kotlin \
- --out-dir ./build/uniffi/kotlin
- # Generate Swift bindings
- cargo run \
- --locked \
- -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
|