diff --git a/SetupHooks.hs b/SetupHooks.hs deleted file mode 100644 index 742f21c..0000000 --- a/SetupHooks.hs +++ /dev/null @@ -1,33 +0,0 @@ -{-# LANGUAGE DisambiguateRecordFields #-} -{-# LANGUAGE DuplicateRecordFields #-} -{-# LANGUAGE NoFieldSelectors #-} - -module SetupHooks (setupHooks) where - -import Distribution.Simple.SetupHooks -import Distribution.Utils.Path -import System.Directory - -setupHooks :: SetupHooks -setupHooks = - noSetupHooks - { configureHooks = - noConfigureHooks - { preConfComponentHook = Just addRustLibDir - } - } - -addRustLibDir :: PreConfComponentInputs -> IO PreConfComponentOutputs -addRustLibDir inputs = do - cwd <- getCurrentDirectory - pure - (noPreConfComponentOutputs inputs :: PreConfComponentOutputs) - { componentDiff = - buildInfoComponentDiff - (componentName (component inputs)) - emptyBuildInfo - { extraLibDirs = - [ makeSymbolicPath $ cwd "rust" "target" "debug" - ] - } - } diff --git a/garnet.cabal b/garnet.cabal index 83380ac..52f65d4 100644 --- a/garnet.cabal +++ b/garnet.cabal @@ -6,14 +6,6 @@ author: Patrick Aldis maintainer: george.thomas@obsidian.systems patrick.aldis@obsidian.systems -build-type: Hooks - -custom-setup - setup-depends: - base, - Cabal-hooks, - Cabal-syntax, - directory, common common default-language: GHC2024 diff --git a/generate-bindings b/generate-bindings index d2ce772..490e62f 100755 --- a/generate-bindings +++ b/generate-bindings @@ -9,6 +9,7 @@ set -euo pipefail # 1. cargo build - build the Rust static library # 2. cbindgen - generate a C header from the Rust source # 3. awk - patch the header for hs-bindgen compatibility +# 4. cp - copy static lib # # System include paths (needed by libclang on NixOS) are detected # automatically at TH compile time by GarnetRs.Raw — no env vars needed. @@ -57,5 +58,10 @@ awk ' echo " Patched header at $HEADER" +# --- Step 4: Copy static lib for Cabal --- +# +# Place library in the location from which Cabal can bundle it. +cp rust/target/debug/libgarnet_rs.a $(cabal list-bin . | sed -e 's=x/garnet/build/garnet/garnet=build=g') + echo "=== Done ===" echo "Run 'cabal run' to test."