Skip to content

Commit 9f6ec1b

Browse files
authored
build: downgrade NDK to r21e and added macOS Android build support (#325)
1 parent 8bf4cb3 commit 9f6ec1b

File tree

2 files changed

+17
-11
lines changed

2 files changed

+17
-11
lines changed

compile-android.sh

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#!/bin/bash
22

33
set -e
4+
platform="$(uname -s | tr '[:upper:]' '[:lower:]')"
45

56
if [ -z "$ANDROID_NDK_HOME" ]; then
67
if [ -d `pwd`/"NDK" ]; then
@@ -32,7 +33,7 @@ for archtargetstr in \
3233
target=$(echo $archtargetstr | cut -d " " -f 2)
3334
target_underscore=$(echo $target | sed 's/-/_/g')
3435

35-
NDK_ARCH_DIR="$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin"
36+
NDK_ARCH_DIR="$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/$platform-x86_64/bin"
3637
echo "Building for $arch..."
3738

3839
if [ -d "$NDK_ARCH_DIR" ]; then

install-ndk.sh

+15-10
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,20 @@
44

55
set -e;
66

7+
NDK_VERSION=r21e
8+
79
script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
810
project_path="$(readlink -f "$script_dir/.")"
911

12+
platform="$(uname -s | tr '[:upper:]' '[:lower:]')"
13+
1014
if [ -z "$ANDROID_NDK_HOME" ]; then
1115
if [ -d `pwd`/"NDK" ]; then
1216
echo "Found NDK folder in root, using."
1317
else
1418
echo 'ANDROID_NDK_HOME not set, downloading NDK...';
15-
wget --no-verbose -O android-ndk.zip https://dl.google.com/android/repository/android-ndk-r25b-linux.zip;
19+
# Download Linux NDK or macOS NDK, depending on OS
20+
wget --no-verbose -O android-ndk.zip https://dl.google.com/android/repository/android-ndk-$NDK_VERSION-$platform-x86_64.zip;
1621
unzip -q -d NDK android-ndk.zip;
1722
ls NDK;
1823
mv NDK/*/* NDK/;
@@ -22,7 +27,7 @@ fi
2227

2328
# Needed since dependency 'ring' doesn't respect .cargo/config
2429
echo "Setting up toolchain binary symlinks..."
25-
NDK_TOOLCHAIN_BIN=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin
30+
NDK_TOOLCHAIN_BIN=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/$platform-x86_64/bin
2631
for arch in \
2732
'aarch64' \
2833
'x86_64' \
@@ -44,18 +49,18 @@ echo "Creating cargo config..."
4449
mkdir -p $project_path/.cargo
4550
echo "
4651
[target.aarch64-linux-android]
47-
ar = '$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar'
48-
linker = '$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android26-clang'
52+
ar = '$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/$platform-x86_64/bin/llvm-ar'
53+
linker = '$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/$platform-x86_64/bin/aarch64-linux-android26-clang'
4954
5055
[target.armv7-linux-androideabi]
51-
ar = '$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar'
52-
linker = '$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi-clang'
56+
ar = '$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/$platform-x86_64/bin/llvm-ar'
57+
linker = '$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/$platform-x86_64/bin/armv7a-linux-androideabi-clang'
5358
5459
[target.i686-linux-android]
55-
ar = '$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar'
56-
linker = '$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android26-clang'
60+
ar = '$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/$platform-x86_64/bin/llvm-ar'
61+
linker = '$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/$platform-x86_64/bin/i686-linux-android26-clang'
5762
5863
[target.x86_64-linux-android]
59-
ar = '$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar'
60-
linker = '$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android26-clang'
64+
ar = '$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/$platform-x86_64/bin/llvm-ar'
65+
linker = '$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/$platform-x86_64/bin/x86_64-linux-android26-clang'
6166
" > $project_path/.cargo/config

0 commit comments

Comments
 (0)