Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions packages/turbopack/add-android-triples.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
From 8e67ab456d44c99f390d51df7a07352fc466fc53 Mon Sep 17 00:00:00 2001
From: xingguangcuican6666 <xingguangcuican666@foxmail.com>
Date: Wed, 4 Mar 2026 23:30:01 +0800
Subject: [PATCH] Fixed_arch

---
packages/next-swc/package.json | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/packages/next-swc/package.json b/packages/next-swc/package.json
index da9a29f0..b0687f66 100644
--- a/packages/next-swc/package.json
+++ b/packages/next-swc/package.json
@@ -27,6 +27,10 @@
"defaults": true,
"additional": [
"i686-pc-windows-msvc",
+ "aarch64-linux-android",
+ "armv7-linux-androideabi",
+ "i686-linux-android",
+ "x86_64-linux-android",
"aarch64-unknown-linux-gnu",
"aarch64-apple-darwin",
"x86_64-unknown-linux-musl",
--
2.53.0

75 changes: 75 additions & 0 deletions packages/turbopack/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
TERMUX_PKG_HOMEPAGE=https://turbo.build/
TERMUX_PKG_DESCRIPTION="Rust-based incremental compilation engine and bundler for Next.js"
TERMUX_PKG_MAINTAINER="@xingguangcuican6666"
TERMUX_PKG_LICENSE="MIT"
TERMUX_PKG_VERSION=16.1.6
TERMUX_PKG_SRCURL=https://github.com/vercel/next.js/archive/refs/tags/v${TERMUX_PKG_VERSION}.tar.gz
TERMUX_PKG_SHA256=63e8f9f386022fa0b9bea1113e7649fe250ae4bb85782b1c4286a3fbf0efedea
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_RUST_VERSION="nightly"

termux_step_make() {
local RUST_TARGET
case "$TERMUX_ARCH" in
aarch64) RUST_TARGET="aarch64-linux-android" ;;
arm) RUST_TARGET="armv7-linux-androideabi" ;;
i686) RUST_TARGET="i686-linux-android" ;;
x86_64) RUST_TARGET="x86_64-linux-android" ;;
esac

# 1. 环境准备
termux_setup_rust
termux_setup_nodejs
export ANDROID_NDK_LATEST_HOME="${NDK}"

# 2. 核心:开启 Tokio 不稳定特性,解决 disable_lifo_slot 报错
export RUSTFLAGS="--cfg tokio_unstable"

# 3. 核心:动态绑定 Linker,解决 x86_64 误用 aarch64 编译器的问题
# $CC 是 Termux 提供的指向当前架构正确编译器的变量
local ENV_PREFIX=$(echo "$RUST_TARGET" | tr '[:lower:]-' '[:upper:]_')
export "CARGO_TARGET_${ENV_PREFIX}_LINKER"="$CC"
export "CC_${RUST_TARGET//-/_}"="$CC"

# 4. 安装依赖
npx pnpm install

# 5. 进入子包目录并运行你指定的脚本
# 因为你已经 patch 了该目录下的 package.json,所以这里会识别新的 triples
cd packages/next-swc
npx pnpm run build-native-release --target "$RUST_TARGET"
}

termux_step_make_install() {
local NAPI_ARCH
case "$TERMUX_ARCH" in
aarch64) NAPI_ARCH="arm64" ;;
arm) NAPI_ARCH="arm-eabi" ;;
i686) NAPI_ARCH="ia32" ;;
x86_64) NAPI_ARCH="x64" ;;
esac

local PACKAGE_NAME="@next/swc-android-${NAPI_ARCH}"
local INSTALL_DIR="$TERMUX_PREFIX/lib/node_modules/${PACKAGE_NAME}"
local BINARY_NAME="next-swc.android-${NAPI_ARCH}.node"

mkdir -p "$INSTALL_DIR"

# 拷贝产物 (napi build 默认会把产物放在目录根部或 native/ 下)
# 如果你在 package.json 里指定了输出到 native,路径如下:
install -Dm755 "native/${BINARY_NAME}" "$INSTALL_DIR/${BINARY_NAME}"

# 瘦身:剥离调试符号
${STRIP} --strip-unneeded "$INSTALL_DIR/${BINARY_NAME}"

# 生成符合 Termux Linter 要求的 package.json
cat > "$INSTALL_DIR/package.json" <<EOF
{
"name": "${PACKAGE_NAME}",
"version": "$TERMUX_PKG_VERSION",
"os": ["android"],
"cpu": ["${NAPI_ARCH}"],
"main": "${BINARY_NAME}"
}
EOF
}
Loading