|
2 | 2 |
|
3 | 3 | set -euvx
|
4 | 4 |
|
5 |
| -if [ "$#" -ne 1 ] |
| 5 | +if [ "$#" -gt 2 ] || [ "$#" -eq 0 ] |
6 | 6 | then
|
7 | 7 | echo "Usage (note: only call inside xcode!):"
|
8 |
| - echo "build-rust-library.sh <FFI_TARGET>" |
| 8 | + echo "build-rust-library.sh <FFI_TARGET> [FFI_FEATURES]" |
9 | 9 | exit 1
|
10 | 10 | fi
|
11 | 11 |
|
12 | 12 | # what to pass to cargo build -p, e.g. your_lib_ffi
|
13 | 13 | FFI_TARGET=$1
|
14 | 14 |
|
| 15 | +# Enable cargo features by passing feature names to this script, i.e. build-rust-library.sh mullvad-api api-override |
| 16 | +# If more than one feature flag needs to be enabled, pass in a single argument all the features flags separated by spaces |
| 17 | +# build-rust-library.sh mullvad-api "featureA featureB featureC" |
| 18 | +FEATURE_FLAGS= |
| 19 | +if [[ "$#" -eq 2 ]] ; then |
| 20 | +FEATURE_FLAGS=$2 |
| 21 | +echo ${FEATURE_FLAGS:+--features "$FEATURE_FLAGS"} |
| 22 | +fi |
| 23 | + |
| 24 | + |
15 | 25 | RELFLAG=
|
16 | 26 | if [[ "$CONFIGURATION" == "Release" ]]; then
|
17 | 27 | RELFLAG=--release
|
@@ -43,18 +53,18 @@ for arch in $ARCHS; do
|
43 | 53 |
|
44 | 54 | # Intel iOS simulator
|
45 | 55 | export CFLAGS_x86_64_apple_ios="-target x86_64-apple-ios"
|
46 |
| - "$HOME"/.cargo/bin/cargo build -p "$FFI_TARGET" --lib $RELFLAG --target x86_64-apple-ios |
47 |
| - "$HOME"/.cargo/bin/cargo build -p "$FFI_TARGET" --lib --target x86_64-apple-ios |
| 56 | + "$HOME"/.cargo/bin/cargo build -p "$FFI_TARGET" --lib $RELFLAG --target x86_64-apple-ios ${FEATURE_FLAGS:+--features "$FEATURE_FLAGS"} |
| 57 | + "$HOME"/.cargo/bin/cargo build -p "$FFI_TARGET" --lib --target x86_64-apple-ios ${FEATURE_FLAGS:+--features "$FEATURE_FLAGS"} |
48 | 58 | ;;
|
49 | 59 |
|
50 | 60 | arm64)
|
51 | 61 | if [ $IS_SIMULATOR -eq 0 ]; then
|
52 | 62 | # Hardware iOS targets
|
53 |
| - "$HOME"/.cargo/bin/cargo build -p "$FFI_TARGET" --lib $RELFLAG --target aarch64-apple-ios |
54 |
| - "$HOME"/.cargo/bin/cargo build -p "$FFI_TARGET" --lib --target aarch64-apple-ios |
| 63 | + "$HOME"/.cargo/bin/cargo build -p "$FFI_TARGET" --lib $RELFLAG --target aarch64-apple-ios ${FEATURE_FLAGS:+--features "$FEATURE_FLAGS"} |
| 64 | + "$HOME"/.cargo/bin/cargo build -p "$FFI_TARGET" --lib --target aarch64-apple-ios ${FEATURE_FLAGS:+--features "$FEATURE_FLAGS"} |
55 | 65 | else
|
56 |
| - "$HOME"/.cargo/bin/cargo build -p "$FFI_TARGET" --lib $RELFLAG --target aarch64-apple-ios-sim |
57 |
| - "$HOME"/.cargo/bin/cargo build -p "$FFI_TARGET" --lib --target aarch64-apple-ios-sim |
| 66 | + "$HOME"/.cargo/bin/cargo build -p "$FFI_TARGET" --lib $RELFLAG --target aarch64-apple-ios-sim ${FEATURE_FLAGS:+--features "$FEATURE_FLAGS"} |
| 67 | + "$HOME"/.cargo/bin/cargo build -p "$FFI_TARGET" --lib --target aarch64-apple-ios-sim ${FEATURE_FLAGS:+--features "$FEATURE_FLAGS"} |
58 | 68 | fi
|
59 | 69 | esac
|
60 | 70 | done
|
0 commit comments