From 008bfcbe29053a147ef87174fab12735881907e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20Bj=C3=A4reholt?= Date: Mon, 7 Nov 2022 11:32:10 +0000 Subject: [PATCH] build: updated Android NDK from r21 to r25b --- aw-server/src/android/mod.rs | 4 ++-- compile-android.sh | 5 +++++ install-ndk.sh | 10 +++++----- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/aw-server/src/android/mod.rs b/aw-server/src/android/mod.rs index 7282d0f1..770bf961 100644 --- a/aw-server/src/android/mod.rs +++ b/aw-server/src/android/mod.rs @@ -74,7 +74,7 @@ pub mod android { .new_string(world_ptr.to_str().unwrap()) .expect("Couldn't create java string!"); - output.into_inner() + output.into_raw() } unsafe fn jstring_to_string(env: &JNIEnv, string: JString) -> String { @@ -85,7 +85,7 @@ pub mod android { unsafe fn string_to_jstring(env: &JNIEnv, string: String) -> jstring { env.new_string(string) .expect("Couldn't create java string") - .into_inner() + .into_raw() } unsafe fn create_error_object(env: &JNIEnv, msg: String) -> jstring { diff --git a/compile-android.sh b/compile-android.sh index 2f55b3fe..cfb7e2e4 100755 --- a/compile-android.sh +++ b/compile-android.sh @@ -30,11 +30,16 @@ for archtargetstr in \ ; do arch=$(echo $archtargetstr | cut -d " " -f 1) target=$(echo $archtargetstr | cut -d " " -f 2) + target_underscore=$(echo $target | sed 's/-/_/g') + NDK_ARCH_DIR="$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin" echo "Building for $arch..." if [ -d "$NDK_ARCH_DIR" ]; then export PATH="$NDK_ARCH_DIR:$ORIG_PATH" + # Need to set AR for target since NDK 21+: + # https://github.com/rust-lang/cc-rs/issues/636#issuecomment-1075352495 + declare -x "AR_${target_underscore}"="$NDK_ARCH_DIR/llvm-ar" cargo build -p aw-server --target $target --lib $($RELEASE && echo '--release') else echo "Couldn't find directory $NDK_ARCH_DIR" diff --git a/install-ndk.sh b/install-ndk.sh index ad194a11..26bc83aa 100755 --- a/install-ndk.sh +++ b/install-ndk.sh @@ -12,7 +12,7 @@ if [ -z "$ANDROID_NDK_HOME" ]; then echo "Found NDK folder in root, using." else echo 'ANDROID_NDK_HOME not set, downloading NDK...'; - wget --no-verbose -O android-ndk.zip https://dl.google.com/android/repository/android-ndk-r21-linux-x86_64.zip; + wget --no-verbose -O android-ndk.zip https://dl.google.com/android/repository/android-ndk-r25b-linux.zip; unzip -q -d NDK android-ndk.zip; ls NDK; mv NDK/*/* NDK/; @@ -44,18 +44,18 @@ echo "Creating cargo config..." mkdir -p $project_path/.cargo echo " [target.aarch64-linux-android] -ar = '$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-ar' +ar = '$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar' linker = '$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android26-clang' [target.armv7-linux-androideabi] -ar = '$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi-ar' +ar = '$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar' linker = '$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi-clang' [target.i686-linux-android] -ar = '$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-ar' +ar = '$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar' linker = '$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android26-clang' [target.x86_64-linux-android] -ar = '$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android-ar' +ar = '$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar' linker = '$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android26-clang' " > $project_path/.cargo/config