-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathflake.nix
61 lines (55 loc) · 1.86 KB
/
flake.nix
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
54
55
56
57
58
59
60
61
{
description = "fficxx projects";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-21.11";
fficxx = {
url = "github:wavewave/fficxx/master";
inputs.nixpkgs.follows = "nixpkgs";
};
HROOT = {
url = "github:wavewave/HROOT/master";
inputs.nixpkgs.follows = "nixpkgs";
inputs.fficxx.follows = "fficxx";
};
hgdal = {
url = "github:wavewave/hgdal/master";
inputs.nixpkgs.follows = "nixpkgs";
inputs.fficxx.follows = "fficxx";
};
hs-ogdf = {
url = "github:wavewave/hs-ogdf/master";
inputs.nixpkgs.follows = "nixpkgs";
inputs.fficxx.follows = "fficxx";
};
};
outputs = { self, nixpkgs, fficxx, HROOT, hgdal, hs-ogdf }:
let
pkgs = import nixpkgs {
overlays =
[ fficxx.overlay HROOT.overlay hgdal.overlay hs-ogdf.overlay ];
system = "x86_64-linux";
};
mkDevShell = hsPkgs: otherPkgs:
let
hsenv = pkgs.haskellPackages.ghcWithPackages (allHsPkgs:
builtins.map (pkg: builtins.getAttr pkg allHsPkgs) hsPkgs);
in pkgs.mkShell { buildInputs = [ hsenv ] ++ otherPkgs; };
in {
packages.x86_64-linux = {
inherit (pkgs) ogdf;
inherit (pkgs.haskellPackages)
fficxx-runtime fficxx stdcxx HROOT HROOT-core HROOT-graf HROOT-hist
HROOT-io HROOT-math HROOT-net HROOT-tree HROOT-RooFit
HROOT-RooFit-RooStats hgdal OGDF;
#inherit HROOT-env hgdal-env OGDF-env;
};
devShells.x86_64-linux = rec {
default = vanilla;
vanilla = mkDevShell [ "cabal-install" "fficxx" "stdcxx" ] [ ];
HROOT = mkDevShell [ "cabal-install" "HROOT" "monad-loops" ] [ ];
hgdal = mkDevShell [ "cabal-install" "hgdal" "monad-loops" ] [ ];
OGDF =
mkDevShell [ "cabal-install" "OGDF" "formatting" "monad-loops" ] [ ];
};
};
}