garnet/build
yuri.meister dd7bea6efd Build Rust crate with Nix via crane sub-flake
Move Rust build into its own flake at rust/flake.nix using crane, and
reference it as an input from the top-level flake. The Haskell build
gets the Rust artifacts (header + static lib) via a haskell.nix
override that symlinks them into place before configure.

Use Cabal's Cgarnet_rs naming convention for extra-bundled-libraries
to satisfy the shared library install phase naming requirements.

Also extract inputs.nix, default.nix, and shell.nix for flake-compat
(nix-build / nix-shell) support.
2026-03-25 16:30:55 +09:00

11 lines
291 B
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
cargo build --manifest-path ./rust/Cargo.toml
BUNDLED_LIB_DIR=$(cabal list-bin . | sed -e 's=x/garnet/build/garnet/garnet=build=g')
mkdir -p $BUNDLED_LIB_DIR
ln -sf $(pwd)/rust/target/debug/libgarnet_rs.a $BUNDLED_LIB_DIR/libCgarnet_rs.a
cabal build