flake.nix (1517B)
1 { 2 description = "A Haskell implementation of BOLT #9."; 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-bolt9"; 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 shellHook = '' 49 PS1="[${lib}] \w$ " 50 echo "entering ${system} shell, using" 51 echo "cc: $(${cc}/bin/cc --version)" 52 echo "ghc: $(${ghc}/bin/ghc --version)" 53 echo "cabal: $(${cabal}/bin/cabal --version)" 54 ''; 55 }; 56 } 57 ); 58 }