-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathflake.nix
More file actions
53 lines (50 loc) · 1.87 KB
/
flake.nix
File metadata and controls
53 lines (50 loc) · 1.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
{
description = "foundry - a structure for Morte";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs =
{ self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem (system:
let
ghc = "ghc96";
pkgs = nixpkgs.legacyPackages.${system};
morte-git =
pkgs.fetchFromGitHub {
owner = "Gabriella439";
repo = "Haskell-Morte-Library";
rev = "b7ebbcbea21e3894b889ebd882856ffcdb154160";
hash = "sha256-jO4EpCA+Xm7+oo0Xa8TIN+TX/bAjvQIcVYfQfbtAC5k=";
};
haskellPackages =
pkgs.haskell.packages.${ghc}.extend(hself: hsuper: {
foundry = hself.callCabal2nix "foundry" "${self}/src/" {};
gi-gdk = pkgs.haskell.lib.dontCheck (hself.callHackage "gi-gdk" "4.0.9" {});
gi-gsk = pkgs.haskell.lib.dontCheck (hself.callHackage "gi-gsk" "4.0.8" {});
gi-gtk = pkgs.haskell.lib.dontCheck (hself.callHackage "gi-gtk" "4.0.11" {});
morte = pkgs.haskell.lib.doJailbreak (hself.callCabal2nix "morte" "${morte-git}" {});
lrucaching = pkgs.haskell.lib.doJailbreak (hself.callHackage "lrucaching" "0.3.4" {});
});
in
{
packages = {
foundry = haskellPackages.foundry;
default = self.packages.${system}.foundry;
};
devShells.default = pkgs.mkShell {
buildInputs = [
(haskellPackages.ghcWithPackages(p:
p.foundry.getCabalDeps.libraryHaskellDepends ++
p.foundry.getCabalDeps.executableHaskellDepends
))
haskellPackages.foundry.getCabalDeps.executableToolDepends
haskellPackages.hie-bios
haskellPackages.haskell-language-server
haskellPackages.cabal-install
haskellPackages.fast-tags
haskellPackages.ormolu
];
};
});
}