garnet/garnet.cabal
yuri.meister ebc582740b 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 12:43:36 +09:00

63 lines
1.3 KiB
Plaintext

cabal-version: 3.14
name: garnet
version: 0.1.0.0
license: BSD-3-Clause
author: Patrick Aldis
maintainer:
george.thomas@obsidian.systems
patrick.aldis@obsidian.systems
common common
default-language: GHC2024
default-extensions:
BlockArguments
DeriveAnyClass
DuplicateRecordFields
ImpredicativeTypes
LexicalNegation
MultiWayIf
NamedFieldPuns
NegativeLiterals
NoFieldSelectors
NoMonomorphismRestriction
OverloadedRecordDot
OverloadedStrings
RecordWildCards
ViewPatterns
ghc-options:
-Wall
-fdefer-type-errors
build-depends:
bytestring,
extra,
mtl,
process,
text,
library
import: common
exposed-modules:
GarnetRs.Raw
GarnetRs.Wrapped
hs-source-dirs: lib
include-dirs: rust/target/debug
extra-bundled-libraries: Cgarnet_rs
build-depends:
base,
hs-bindgen,
hs-bindgen-runtime,
primitive,
template-haskell,
executable garnet
import: common
main-is: Main.hs
hs-source-dirs: exe
ghc-options:
-threaded
-rtsopts
-with-rtsopts=-N
build-depends:
base,
garnet,