lmdb

Minimal LMDB bindings for Haskell.
git clone git://git.ppad.tech/lmdb.git
Log | Files | Refs | README | LICENSE

flake.nix (1716B)


      1 {
      2   description = "Minimal LMDB bindings";
      3 
      4   inputs = {
      5     ppad-nixpkgs = {
      6       type = "git";
      7       url  = "git://git.ppad.tech/nixpkgs.git";
      8       ref  = "master";
      9     };
     10     flake-utils.follows = "ppad-nixpkgs/flake-utils";
     11     nixpkgs.follows = "ppad-nixpkgs/nixpkgs";
     12   };
     13 
     14   outputs = { self, nixpkgs, flake-utils, ppad-nixpkgs }:
     15     flake-utils.lib.eachDefaultSystem (system:
     16       let
     17         lib = "ppad-lmdb";
     18 
     19         pkgs  = import nixpkgs { inherit system; };
     20         hlib  = pkgs.haskell.lib;
     21         llvm  = pkgs.llvmPackages_19.llvm;
     22         clang = pkgs.llvmPackages_19.clang;
     23 
     24         hpkgs = pkgs.haskell.packages.ghc910.extend (new: old: {
     25           ${lib} = new.callCabal2nix lib ./. { };
     26         });
     27 
     28         cc    = pkgs.stdenv.cc;
     29         ghc   = hpkgs.ghc;
     30         cabal = hpkgs.cabal-install;
     31       in
     32         {
     33           packages.default = hpkgs.${lib};
     34 
     35           packages.haddock = hpkgs.${lib}.doc;
     36 
     37           devShells.default = hpkgs.shellFor {
     38             packages = p: [
     39               (hlib.doBenchmark p.${lib})
     40             ];
     41 
     42             buildInputs = [
     43               cabal
     44               cc
     45               llvm
     46             ];
     47 
     48             doBenchmark = true;
     49 
     50             shellHook = ''
     51               PS1="[${lib}] \w$ "
     52               echo "entering ${system} shell, using"
     53               echo "cc:    $(${cc}/bin/cc --version | head -1)"
     54               echo "ghc:   $(${ghc}/bin/ghc --version)"
     55               echo "cabal: $(${cabal}/bin/cabal --version | head -1)"
     56               echo "llc:   $(${llvm}/bin/llc --version | awk '/LLVM version/ {$1=$1; print; exit}')"
     57               echo "lmdb:  vendored at LMDB_0.9.33 (cbits/)"
     58             '';
     59           };
     60         }
     61       );
     62 }