#!/bin/bash # Build vLLM Rust artifacts and install them into the vllm package. # Usage: ./build_rust.sh [--debug] # # By default builds in release mode. Pass --debug for faster compile times # during development. set -euo pipefail REPO_ROOT="$(cd "$(dirname "$0")" && pwd)" # Read the required toolchain from rust-toolchain.toml. TOOLCHAIN=$(grep '^channel' "$REPO_ROOT/rust-toolchain.toml" | sed 's/.*= *"\(.*\)"/\1/') # Ensure rustup and the required toolchain are available. if ! command -v rustup &>/dev/null; then echo "rustup not found, installing..." curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain none source "$HOME/.cargo/env" fi if ! rustup run "$TOOLCHAIN" rustc --version &>/dev/null; then echo "Installing Rust toolchain: $TOOLCHAIN" rustup toolchain install "$TOOLCHAIN" fi if [[ "${1:-}" == "--debug" ]]; then PROFILE_ARG="--debug" else PROFILE_ARG="--release" fi python3 "$REPO_ROOT/tools/build_rust.py" "$PROFILE_ARG"