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
36 lines
1 KiB
Bash
Executable file
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"
|