|
1 | 1 | #!/bin/bash
|
| 2 | + |
2 | 3 | BINDINGS_DIR="bindings/kotlin"
|
3 | 4 | TARGET_DIR="target"
|
4 | 5 | PROJECT_DIR="ldk-node-android"
|
5 |
| -PACKAGE_DIR="org/lightningdevkit/ldknode" |
6 | 6 | UNIFFI_BINDGEN_BIN="cargo run --manifest-path bindings/uniffi-bindgen/Cargo.toml"
|
7 |
| -ANDROID_NDK_ROOT="/opt/homebrew/share/android-ndk" |
8 |
| -LLVM_ARCH_PATH="darwin-x86_64" |
| 7 | + |
| 8 | +export_variable_if_not_present() { |
| 9 | + local name="$1" |
| 10 | + local value="$2" |
| 11 | + |
| 12 | + # Check if the variable is already set |
| 13 | + if [ -z "${!name}" ]; then |
| 14 | + export "$name=$value" |
| 15 | + echo "Exported $name=$value" |
| 16 | + else |
| 17 | + echo "$name is already set to ${!name}, not exporting." |
| 18 | + fi |
| 19 | +} |
| 20 | + |
| 21 | +case "$OSTYPE" in |
| 22 | + linux-gnu) |
| 23 | + export_variable_if_not_present "ANDROID_NDK_ROOT" "/opt/android-ndk" |
| 24 | + export_variable_if_not_present "LLVM_ARCH_PATH" "linux-x86_64" |
| 25 | + ;; |
| 26 | + darwin*) |
| 27 | + export_variable_if_not_present "ANDROID_NDK_ROOT" "/opt/homebrew/share/android-ndk" |
| 28 | + export_variable_if_not_present "LLVM_ARCH_PATH" "darwin-x86_64" |
| 29 | + ;; |
| 30 | + *) |
| 31 | + echo "Unknown operating system: $OSTYPE" |
| 32 | + ;; |
| 33 | + esac |
| 34 | + |
9 | 35 | PATH="$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/$LLVM_ARCH_PATH/bin:$PATH"
|
10 | 36 |
|
11 | 37 | rustup target add x86_64-linux-android aarch64-linux-android armv7-linux-androideabi
|
12 |
| -CFLAGS="-D__ANDROID_MIN_SDK_VERSION__=21" AR=llvm-ar CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER="x86_64-linux-android25-clang" CC="x86_64-linux-android25-clang" cargo build --profile release-smaller --features uniffi --target x86_64-linux-android || exit 1 |
13 |
| -CFLAGS="-D__ANDROID_MIN_SDK_VERSION__=21" AR=llvm-ar CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="armv7a-linux-androideabi25-clang" CC="armv7a-linux-androideabi25-clang" cargo build --profile release-smaller --features uniffi --target armv7-linux-androideabi || exit 1 |
14 |
| -CFLAGS="-D__ANDROID_MIN_SDK_VERSION__=21" AR=llvm-ar CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="aarch64-linux-android25-clang" CC="aarch64-linux-android25-clang" cargo build --profile release-smaller --features uniffi --target aarch64-linux-android || exit 1 |
| 38 | +CFLAGS="-D__ANDROID_MIN_SDK_VERSION__=21" AR=llvm-ar CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER="x86_64-linux-android21-clang" CC="x86_64-linux-android21-clang" cargo build --profile release-smaller --features uniffi --target x86_64-linux-android || exit 1 |
| 39 | +CFLAGS="-D__ANDROID_MIN_SDK_VERSION__=21" AR=llvm-ar CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="armv7a-linux-androideabi21-clang" CC="armv7a-linux-androideabi21-clang" cargo build --profile release-smaller --features uniffi --target armv7-linux-androideabi || exit 1 |
| 40 | +CFLAGS="-D__ANDROID_MIN_SDK_VERSION__=21" AR=llvm-ar CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="aarch64-linux-android21-clang" CC="aarch64-linux-android21-clang" cargo build --profile release-smaller --features uniffi --target aarch64-linux-android || exit 1 |
15 | 41 | $UNIFFI_BINDGEN_BIN generate bindings/ldk_node.udl --language kotlin -o "$BINDINGS_DIR"/"$PROJECT_DIR"/lib/src/main/kotlin || exit 1
|
16 | 42 |
|
17 | 43 | JNI_LIB_DIR="$BINDINGS_DIR"/"$PROJECT_DIR"/lib/src/main/jniLibs/
|
|
0 commit comments