Skip to content

Commit 5ac0aa1

Browse files
addpkg(main/turbopack): canary
1 parent 5dcbbe0 commit 5ac0aa1

2 files changed

Lines changed: 641 additions & 0 deletions

File tree

packages/turbopack/build.sh

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
TERMUX_PKG_HOMEPAGE=https://turbo.build/
2+
TERMUX_PKG_DESCRIPTION="Rust-based incremental compilation engine and bundler for Next.js"
3+
TERMUX_PKG_MAINTAINER="@xingguangcuican6666"
4+
TERMUX_PKG_LICENSE="MIT"
5+
TERMUX_PKG_VERSION=canary
6+
TERMUX_PKG_SRCURL=https://github.com/vercel/next.js/archive/dfbc3dc6b7b395956bf47e92e04aa957cbfcc9a2.zip
7+
TERMUX_PKG_SHA256=b736c7537d161c31ac679fa3ca6aa603fc9636df3ef39e0a4021e4080ca52a1e
8+
TERMUX_PKG_BUILD_IN_SRC=true
9+
TERMUX_RUST_VERSION="nightly"
10+
TERMUX_PKG_EXCLUDED_ARCHES="arm, i686"
11+
export ANDROID_NDK_ROOT="${NDK}" # Set NDK root globally
12+
13+
termux_step_make() {
14+
local RUST_TARGET
15+
case "$TERMUX_ARCH" in
16+
aarch64) RUST_TARGET="aarch64-linux-android" ;;
17+
x86_64) RUST_TARGET="x86_64-linux-android" ;;
18+
esac
19+
termux_setup_rust
20+
termux_setup_nodejs
21+
export RUSTFLAGS="--cfg tokio_unstable"
22+
local ENV_PREFIX=$(echo "$RUST_TARGET" | tr '[:lower:]-' '[:upper:]_')
23+
if [ "$TERMUX_ARCH" == "aarch64" ]; then
24+
export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/$(uname -m)-linux/bin/aarch64-linux-android24-clang"
25+
export CARGO_TARGET_AARCH64_LINUX_ANDROID_AR="$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/$(uname -m)-linux/bin/llvm-ar"
26+
export RUSTFLAGS="$RUSTFLAGS -Zshare-generics=y -Csymbol-mangling-version=v0 -Clink-arg=--sysroot=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/$(uname -m)-linux/sysroot"
27+
npm i -g "@napi-rs/cli@2.18.4" # Hardcoded NAPI_CLI_VERSION from workflow
28+
else
29+
export "CARGO_TARGET_${ENV_PREFIX}_LINKER"="$CC"
30+
export "CC_${RUST_TARGET//-/_}"="$CC"
31+
fi
32+
npx pnpm install
33+
cd packages/next-swc
34+
# export RUSTFLAGS="-C stack-check=no -C link-args=-zstack-size=2097152"
35+
export RUSTFLAGS="$RUSTFLAGS -C link-args=-zstack-size=2097152"
36+
npx pnpm run build-native-release --target "$RUST_TARGET"
37+
}
38+
39+
termux_step_make_install() {
40+
cd packages/next-swc
41+
ls -l native
42+
local NAPI_ARCH
43+
case "$TERMUX_ARCH" in
44+
aarch64) NAPI_ARCH="arm64" ;;
45+
x86_64) NAPI_ARCH="x64" ;;
46+
esac
47+
local PACKAGE_NAME="@next/swc-android-${NAPI_ARCH}"
48+
local INSTALL_DIR="$TERMUX_PREFIX/lib/node_modules/${PACKAGE_NAME}"
49+
local BINARY_NAME="next-swc.android-${NAPI_ARCH}.node"
50+
mkdir -p "$INSTALL_DIR"
51+
install -Dm755 "native/${BINARY_NAME}" "$INSTALL_DIR/${BINARY_NAME}"
52+
${STRIP} --strip-unneeded "$INSTALL_DIR/${BINARY_NAME}"
53+
cat > "$INSTALL_DIR/package.json" <<EOF
54+
{
55+
"name": "${PACKAGE_NAME}",
56+
"version": "$TERMUX_PKG_VERSION",
57+
"os": ["android"],
58+
"cpu": ["${NAPI_ARCH}"],
59+
"main": "${BINARY_NAME}"
60+
}
61+
EOF
62+
}

0 commit comments

Comments
 (0)