mirror of
https://github.com/zed-industries/zed.git
synced 2026-05-24 05:25:18 +00:00
59 lines
1.4 KiB
Bash
Executable file
59 lines
1.4 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
#
|
|
# Build eval-cli for x86_64 Linux from any host (macOS, Linux, etc.)
|
|
# using Docker + cargo-zigbuild. Targets musl libc, producing a fully
|
|
# static binary that runs on any Linux distro (glibc or musl / Alpine).
|
|
# The resulting binary is placed at the path printed on completion
|
|
# (default: target/eval-cli).
|
|
#
|
|
# Usage:
|
|
# crates/eval_cli/script/build-linux [--output PATH]
|
|
#
|
|
# Examples:
|
|
# crates/eval_cli/script/build-linux
|
|
# crates/eval_cli/script/build-linux --output ~/bin/eval-cli
|
|
#
|
|
# Prerequisites: Docker must be installed and running.
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
REPO_ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd)"
|
|
OUTPUT="${REPO_ROOT}/target/eval-cli"
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
case $1 in
|
|
--output)
|
|
OUTPUT="$2"
|
|
shift 2
|
|
;;
|
|
*)
|
|
echo "Unknown option: $1" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
cd "$REPO_ROOT"
|
|
|
|
IMAGE_TAG="eval-cli-builder"
|
|
|
|
echo "Building eval-cli for x86_64-unknown-linux-musl (static binary)..."
|
|
echo " Repo root: $REPO_ROOT"
|
|
echo " Output: $OUTPUT"
|
|
echo ""
|
|
|
|
docker build \
|
|
--platform linux/amd64 \
|
|
-f crates/eval_cli/Dockerfile \
|
|
-t "$IMAGE_TAG" \
|
|
.
|
|
|
|
CONTAINER_ID=$(docker create "$IMAGE_TAG" /eval-cli)
|
|
mkdir -p "$(dirname "$OUTPUT")"
|
|
docker cp "$CONTAINER_ID":/eval-cli "$OUTPUT"
|
|
docker rm "$CONTAINER_ID" > /dev/null
|
|
|
|
echo ""
|
|
echo "Built successfully: $OUTPUT"
|
|
echo " $(file "$OUTPUT")"
|