set -ex
export RUST_TEST_THREADS=1
export RUST_BACKTRACE=1
export RUST_TEST_NOCAPTURE=1
export OPT="--target=$TARGET"
export OPT_RELEASE="--release ${OPT}"
export OPT_RELEASE_IGNORED="--release ${OPT} -- --ignored"
export OPT_FFI_RELEASE="--manifest-path=pgp-ffi/Cargo.toml --release"
export CARGO_CMD=cross
if [[ $TARGET = *"windows"* ]] || [[ $TARGET == "x86_64-unknown-linux-gnu" ]] || [[ $TARGET = *"apple"* ]]; then
export CARGO_CMD=cargo
fi
if [[ $CARGO_CMD == "cross" ]]; then
cargo install cross --force
fi
if [[ $TARGET = *"ios"* ]]; then
cargo build --manifest-path ios-simulator/Cargo.toml --release
export CARGO_TARGET_X86_64_APPLE_IOS_RUNNER=$(pwd)/ios-simulator/target/release/ios-simulator
export CARGO_TARGET_I386_APPLE_IOS_RUNNER=$(pwd)/ios-simulator/target/release/ios-simulator
fi
if [[ $CARGO_CMD == "cargo" ]]; then
rustup target add $TARGET || true
fi
if [[ $NORUN == "1" ]]; then
export CARGO_SUBCMD="build"
else
export CARGO_SUBCMD="test"
export OPT="${OPT} "
export OPT_RELEASE="${OPT_RELEASE} "
export OPT_RELEASE_IGNORED="${OPT_RELEASE_IGNORED} "
fi
$CARGO_CMD $CARGO_SUBCMD $OPT
$CARGO_CMD $CARGO_SUBCMD $OPT_RELEASE
$CARGO_CMD $CARGO_SUBCMD $OPT_RELEASE_IGNORED
$CARGO_CMD $CARGO_SUBCMD $OPT_FFI_RELEASE
if [[ $CARGO_CMD == "cargo" ]] && [[ $TARGET != *"ios"* ]]; then
cargo doc
fi