forked from k0001/hs-libsodium
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathflake.nix
65 lines (62 loc) · 2.14 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
62
63
64
65
{
description = "Haskell libsodium library";
outputs = { self, nixpkgs }:
let
pkgsOverlay = pself: psuper: {
haskell = psuper.haskell // {
packageOverrides = hself: hsuper: {
libsodium = hself.callPackage ./. { libsodium = pself.libsodium; };
};
};
};
pkgsFor = system:
import nixpkgs {
inherit system;
overlays = [ pkgsOverlay ];
};
in {
packages =
nixpkgs.lib.genAttrs [ "x86_64-linux" "i686-linux" "aarch64-linux" ]
(system:
let pkgs = pkgsFor system;
in {
default = pkgs.releaseTools.aggregate {
name = "every output from this flake";
constituents = let
p = self.packages.${system};
s = self.devShells.${system};
in [
p.libsodium__ghcDefault
p.libsodium__ghc925
p.libsodium__ghc943
p.libsodium__ghcDefault.doc
p.libsodium__ghc925.doc
p.libsodium__ghc943.doc
s.libsodium__ghcDefault
s.libsodium__ghc925
s.libsodium__ghc943
];
};
libsodium__ghcDefault = pkgs.haskellPackages.libsodium;
libsodium__ghc925 = pkgs.haskell.packages.ghc925.libsodium;
libsodium__ghc943 = pkgs.haskell.packages.ghc943.libsodium;
});
devShells =
nixpkgs.lib.genAttrs [ "x86_64-linux" "i686-linux" "aarch64-linux" ]
(system:
let
pkgs = pkgsFor system;
mkShellFor = hpkgs:
hpkgs.shellFor {
packages = p: [ p.libsodium ];
withHoogle = true;
nativeBuildInputs = [ pkgs.cabal-install pkgs.cabal2nix ];
};
in {
default = self.devShells.${system}.libsodium__ghc943;
libsodium__ghcDefault = mkShellFor pkgs.haskellPackages;
libsodium__ghc925 = mkShellFor pkgs.haskell.packages.ghc925;
libsodium__ghc943 = mkShellFor pkgs.haskell.packages.ghc943;
});
};
}