forked from WebKit/WebKit
-
Notifications
You must be signed in to change notification settings - Fork 40
Expand file tree
/
Copy pathandroid-release.sh
More file actions
executable file
·40 lines (33 loc) · 1.33 KB
/
android-release.sh
File metadata and controls
executable file
·40 lines (33 loc) · 1.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/bin/bash
set -euxo pipefail
export DOCKER_BUILDKIT=1
# Android is always cross-compiled (NDK only ships linux-x86_64 prebuilts),
# so the target arch comes from ANDROID_ARCH, not the host. Run this on an
# x64 host regardless of target.
export ANDROID_ARCH="${ANDROID_ARCH:-aarch64}"
export ANDROID_API="${ANDROID_API:-28}"
export WEBKIT_RELEASE_TYPE="${WEBKIT_RELEASE_TYPE:-Release}"
export LTO_FLAG="${LTO_FLAG:-}"
case "$ANDROID_ARCH" in
aarch64) : "${MARCH_FLAG:="-march=armv8-a+crc -mtune=cortex-a78"}" ;;
x86_64) : "${MARCH_FLAG:="-march=x86-64-v2"}" ;;
*) echo "error: ANDROID_ARCH must be aarch64 or x86_64, got '$ANDROID_ARCH'" >&2; exit 1 ;;
esac
export MARCH_FLAG
export CONTAINER_NAME="bun-webkit-linux-android-${ANDROID_ARCH}"
if [ "$WEBKIT_RELEASE_TYPE" == "Debug" ]; then
CONTAINER_NAME="${CONTAINER_NAME}-debug"
fi
temp="${temp:-${TMPDIR:-/tmp}}"
mkdir -p "$temp"
rm -rf "$temp/bun-webkit"
docker buildx build -f Dockerfile.android -t "$CONTAINER_NAME" \
--build-arg ANDROID_ARCH="$ANDROID_ARCH" \
--build-arg ANDROID_API="$ANDROID_API" \
--build-arg LTO_FLAG="$LTO_FLAG" \
--build-arg MARCH_FLAG="$MARCH_FLAG" \
--build-arg WEBKIT_RELEASE_TYPE="$WEBKIT_RELEASE_TYPE" \
--progress=plain \
--platform=linux/amd64 \
--target=artifact \
--output type=local,dest="$temp/bun-webkit" .