4
4
5
5
set -e;
6
6
7
+ NDK_VERSION=r21e
8
+
7
9
script_dir=" $( cd " $( dirname " ${BASH_SOURCE[0]} " ) " > /dev/null 2>&1 && pwd ) "
8
10
project_path=" $( readlink -f " $script_dir /." ) "
9
11
12
+ platform=" $( uname -s | tr ' [:upper:]' ' [:lower:]' ) "
13
+
10
14
if [ -z " $ANDROID_NDK_HOME " ]; then
11
15
if [ -d ` pwd` /" NDK" ]; then
12
16
echo " Found NDK folder in root, using."
13
17
else
14
18
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;
16
21
unzip -q -d NDK android-ndk.zip;
17
22
ls NDK;
18
23
mv NDK/* /* NDK/;
22
27
23
28
# Needed since dependency 'ring' doesn't respect .cargo/config
24
29
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
26
31
for arch in \
27
32
' aarch64' \
28
33
' x86_64' \
@@ -44,18 +49,18 @@ echo "Creating cargo config..."
44
49
mkdir -p $project_path /.cargo
45
50
echo "
46
51
[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'
49
54
50
55
[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'
53
58
54
59
[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'
57
62
58
63
[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'
61
66
" > $project_path /.cargo/config
0 commit comments