mirror of
https://github.com/static-web-server/static-web-server.git
synced 2026-01-25 05:06:33 +00:00
37 lines
1.6 KiB
Bash
Executable File
37 lines
1.6 KiB
Bash
Executable File
# Adapted from https://github.com/briansmith/ring/blob/main/mk/install-build-tools.sh
|
|
|
|
set -eux -o pipefail
|
|
|
|
target=$1
|
|
|
|
case $target in
|
|
--target*android*)
|
|
# https://blog.rust-lang.org/2023/01/09/android-ndk-update-r25.html says
|
|
# "Going forward the Android platform will target the most recent LTS NDK,
|
|
# allowing Rust developers to access platform features sooner. These updates
|
|
# should occur yearly and will be announced in release notes." Assume that
|
|
# means that we should always prefer to be using the latest 25.x.y version of
|
|
# the NDK until the Rust project announces that we should use a higher major
|
|
# version number.
|
|
#
|
|
# TODO: This should probably be implemented as a map of Rust toolchain version
|
|
# to NDK version; e.g. our MSRV might (only) support an older NDK than the
|
|
# latest stable Rust toolchain.
|
|
#
|
|
# Keep the following line in sync with the corresponding line in cargo.sh.
|
|
ndk_version=25.2.9519653
|
|
|
|
mkdir -p "${ANDROID_HOME}/licenses"
|
|
android_license_file="${ANDROID_HOME}/licenses/android-sdk-license"
|
|
accept_android_license=24333f8a63b6825ea9c5514f83c2829b004d1fee
|
|
grep --quiet --no-messages "$accept_android_license" "$android_license_file" \
|
|
|| echo $accept_android_license >> "$android_license_file"
|
|
"${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager" "ndk;$ndk_version"
|
|
|
|
# XXX: Older Rust toolchain versions link with `-lgcc` instead of `-lunwind`;
|
|
# see https://github.com/rust-lang/rust/pull/85806.
|
|
find -L ${ANDROID_NDK_ROOT:-${ANDROID_HOME}/ndk/$ndk_version} -name libunwind.a \
|
|
-execdir sh -c 'echo "INPUT(-lunwind)" > libgcc.a' \;
|
|
;;
|
|
esac
|