From 3bfaffc735b743813c999ad025e9914c9adb65c2 Mon Sep 17 00:00:00 2001 From: Jeremie Fraeys Date: Mon, 23 Mar 2026 15:19:09 -0400 Subject: [PATCH] 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 --- scripts/build/build-rust.sh | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100755 scripts/build/build-rust.sh diff --git a/scripts/build/build-rust.sh b/scripts/build/build-rust.sh new file mode 100755 index 0000000..db21466 --- /dev/null +++ b/scripts/build/build-rust.sh @@ -0,0 +1,36 @@ +#!/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"