fetch_ml/scripts/build/build-rust.sh
Jeremie Fraeys 3bfaffc735
feat(scripts): add build-rust.sh for cross-platform Rust native library builds
Add new build script for Rust native libraries:

- Builds dataset_hash and queue_index crates via cargo

- Cross-platform support: Linux (.so), macOS (.dylib), Windows (.dll)

- Outputs to bin/native/ for consistency with C++ native libs

- Error handling for missing cargo installation
2026-03-23 15:19:09 -04:00

36 lines
1 KiB
Bash
Executable file

#!/bin/bash
# Builds Rust native libraries for cross-platform
# Run on Ubuntu self-hosted runner or macOS
set -euo pipefail
echo "=== Building Rust Native Libraries ==="
# Check for Rust
if ! command -v cargo &> /dev/null; then
echo "Error: cargo not found. Please install Rust: https://rustup.rs/"
exit 1
fi
# Build native libraries
cd native_rust
echo "Building with cargo..."
cargo build --release
cd ..
# Package libs for current platform
mkdir -p bin/native
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
cp native_rust/target/release/lib*.so bin/native/ 2>/dev/null || true
echo "✓ Rust libraries built for Linux"
elif [[ "$OSTYPE" == "darwin"* ]]; then
cp native_rust/target/release/lib*.dylib bin/native/ 2>/dev/null || true
echo "✓ Rust libraries built for macOS"
else
cp native_rust/target/release/lib*.dll bin/native/ 2>/dev/null || true
echo "✓ Rust libraries built"
fi
echo ""
echo "Libraries available in bin/native/"
ls -la bin/native/ 2>/dev/null || echo "No libraries found"