mirror of
https://github.com/oven-sh/bun
synced 2026-02-09 18:38:55 +00:00
93 lines
2.3 KiB
Bash
Executable File
93 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euxo pipefail
|
|
source $(dirname -- "${BASH_SOURCE[0]}")/env.sh
|
|
|
|
cwd=$(pwd)
|
|
zig=
|
|
|
|
CI="${CI:-}"
|
|
if [ -n "$CI" ]; then
|
|
bash $(dirname -- "${BASH_SOURCE[0]}")/download-zig.sh
|
|
fi
|
|
|
|
if [ -f "$cwd/.cache/zig/zig" ]; then
|
|
zig="$cwd/.cache/zig/zig"
|
|
else
|
|
zig=$(which zig)
|
|
fi
|
|
|
|
ZIG_OPTIMIZE="${ZIG_OPTIMIZE:-ReleaseFast}"
|
|
CANARY="${CANARY:-0}"
|
|
GIT_SHA="${GIT_SHA:-$(git rev-parse HEAD)}"
|
|
|
|
BUILD_MACHINE_ARCH="${BUILD_MACHINE_ARCH:-$(uname -m)}"
|
|
DOCKER_MACHINE_ARCH=""
|
|
if [[ "$BUILD_MACHINE_ARCH" == "x86_64" || "$BUILD_MACHINE_ARCH" == "amd64" ]]; then
|
|
BUILD_MACHINE_ARCH="x86_64"
|
|
DOCKER_MACHINE_ARCH="amd64"
|
|
elif [[ "$BUILD_MACHINE_ARCH" == "aarch64" || "$BUILD_MACHINE_ARCH" == "arm64" ]]; then
|
|
BUILD_MACHINE_ARCH="aarch64"
|
|
DOCKER_MACHINE_ARCH="arm64"
|
|
fi
|
|
|
|
TARGET_OS="${1:-linux}"
|
|
TARGET_ARCH="${2:-x64}"
|
|
TARGET_CPU="${3:-${CPU_TARGET:-native}}"
|
|
|
|
BUILDARCH=""
|
|
if [[ "$TARGET_ARCH" == "x64" || "$TARGET_ARCH" == "x86_64" || "$TARGET_ARCH" == "amd64" ]]; then
|
|
TARGET_ARCH="x86_64"
|
|
BUILDARCH="amd64"
|
|
elif [[ "$TARGET_ARCH" == "aarch64" || "$TARGET_ARCH" == "arm64" ]]; then
|
|
TARGET_ARCH="aarch64"
|
|
BUILDARCH="arm64"
|
|
fi
|
|
|
|
TRIPLET=""
|
|
if [[ "$TARGET_OS" == "linux" ]]; then
|
|
TRIPLET="$TARGET_ARCH-linux-gnu"
|
|
elif [[ "$TARGET_OS" == "darwin" ]]; then
|
|
TRIPLET="$TARGET_ARCH-macos-none"
|
|
elif [[ "$TARGET_OS" == "windows" ]]; then
|
|
TRIPLET="$TARGET_ARCH-windows-msvc"
|
|
fi
|
|
|
|
echo "--- Building identifier-cache"
|
|
$zig run src/js_lexer/identifier_data.zig
|
|
|
|
echo "--- Building node-fallbacks"
|
|
cd src/node-fallbacks
|
|
bun install --frozen-lockfile
|
|
bun run build
|
|
cd "$cwd"
|
|
|
|
echo "--- Building codegen"
|
|
bun install --frozen-lockfile
|
|
make runtime_js fallback_decoder bun_error
|
|
|
|
echo "--- Building modules"
|
|
mkdir -p build
|
|
bun run src/codegen/bundle-modules.ts --debug=OFF build
|
|
|
|
echo "--- Building zig"
|
|
cmake -B build -S . \
|
|
-GNinja \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DUSE_LTO=ON \
|
|
-DZIG_OPTIMIZE="${ZIG_OPTIMIZE}" \
|
|
-DGIT_SHA="${GIT_SHA}" \
|
|
-DARCH="${TARGET_ARCH}" \
|
|
-DBUILDARCH="${BUILDARCH}" \
|
|
-DCPU_TARGET="${TARGET_CPU}" \
|
|
-DZIG_TARGET="${TRIPLET}" \
|
|
-DASSERTIONS="OFF" \
|
|
-DWEBKIT_DIR="omit" \
|
|
-DNO_CONFIGURE_DEPENDS=1 \
|
|
-DNO_CODEGEN=1 \
|
|
-DBUN_ZIG_OBJ="$cwd/bun-zig.o" \
|
|
-DCANARY="$CANARY" \
|
|
-DZIG_LIB_DIR=src/deps/zig/lib \
|
|
-DZIG_COMPILER="$zig" \
|
|
-DZIG_COMPILER_="$zig"
|
|
ONLY_ZIG=1 ninja -C build "$cwd/bun-zig.o" -v
|