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
This commit is contained in:
parent
1d7be5c829
commit
3bfaffc735
1 changed files with 36 additions and 0 deletions
36
scripts/build/build-rust.sh
Executable file
36
scripts/build/build-rust.sh
Executable file
|
|
@ -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"
|
||||
Loading…
Reference in a new issue