mirror of
https://github.com/bolucat/Archive.git
synced 2025-09-26 20:21:35 +08:00
74 lines
1.8 KiB
Bash
Executable File
74 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
set -x
|
|
|
|
if [ -z "$(which rustup)" ]; then
|
|
echo "rustup not found"
|
|
exit -1
|
|
fi
|
|
|
|
if [ -z "$ANDROID_NDK_ROOT" ]; then
|
|
echo "ANDROID_NDK_ROOT not defined"
|
|
exit -1
|
|
fi
|
|
|
|
echo "Adding rustup toolchain..."
|
|
|
|
rustup toolchain install 1.78.0
|
|
rustup default 1.78.0
|
|
|
|
echo "Adding rustup toolchain...done"
|
|
|
|
echo "Adding rustup android target..."
|
|
|
|
rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
|
|
|
|
echo "Adding rustup android target...done"
|
|
|
|
mkdir -p ~/.cargo
|
|
HAS_CARGO_ANDROID="$(grep target.aarch64-linux-android ~/.cargo/config || :)"
|
|
if [ ! -z "$HAS_CARGO_ANDROID" ]; then
|
|
echo "Skip patching cargo config..."
|
|
exit 0
|
|
fi
|
|
|
|
echo "Patching cargo config..."
|
|
|
|
ARCH=$(uname -s)
|
|
case "$ARCH" in
|
|
Linux)
|
|
HOST_OS="linux"
|
|
;;
|
|
Darwin)
|
|
HOST_OS="darwin"
|
|
;;
|
|
MINGW*|MSYS*)
|
|
HOST_OS="windows"
|
|
;;
|
|
*)
|
|
echo "Unsupported OS ${ARCH}"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
cat >> ~/.cargo/config << EOF
|
|
|
|
[target.aarch64-linux-android]
|
|
ar = "$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/${HOST_OS}-x86_64/bin/llvm-ar"
|
|
linker = "$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/${HOST_OS}-x86_64/bin/aarch64-linux-android24-clang"
|
|
|
|
[target.armv7-linux-androideabi]
|
|
ar = "$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/${HOST_OS}-x86_64/bin/llvm-ar"
|
|
linker = "$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/${HOST_OS}-x86_64/bin/armv7a-linux-androideabi24-clang"
|
|
|
|
[target.i686-linux-android]
|
|
ar = "$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/${HOST_OS}-x86_64/bin/llvm-ar"
|
|
linker = "$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/${HOST_OS}-x86_64/bin/i686-linux-android24-clang"
|
|
|
|
[target.x86_64-linux-android]
|
|
ar = "$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/${HOST_OS}-x86_64/bin/llvm-ar"
|
|
linker = "$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/${HOST_OS}-x86_64/bin/x86_64-linux-android24-clang"
|
|
EOF
|
|
|
|
echo "Patching cargo config...done"
|