-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpkgs.nix
66 lines (59 loc) · 1.45 KB
/
pkgs.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
66
nixpkgs: system: let
makeOverlays = java: let
armOverlay = _: prev:
let
pkgsForx86 = import nixpkgs {
localSystem = "x86_64-darwin";
};
in
prev.lib.optionalAttrs (prev.stdenv.isDarwin && prev.stdenv.isAarch64) {
inherit (pkgsForx86) bloop;
};
ammoniteOverlay = final: prev: {
# hardcoded because ammonite requires no more than 17 for now
ammonite = prev.ammonite.override {
jre = final.temurin-bin-17;
};
};
bloopOverlay = final: prev: {
bloop = prev.bloop.override {
jre = final.jre;
};
};
millOverlay = final: prev: {
mill = prev.mill.override {
jre = final.jre;
};
};
javaOverlay = final: _: {
jdk = final.${java};
jre = final.${java};
};
scalaCliOverlay = final: prev: {
scala-cli = prev.scala-cli.override {
# hardcoded because scala-cli requires 17 or above
jre = final.graalvm-ce;
};
};
in [
javaOverlay
armOverlay
bloopOverlay
scalaCliOverlay
ammoniteOverlay
millOverlay
];
makePackages = java: let
overlays = makeOverlays java;
in
import nixpkgs {
inherit system overlays;
};
default = pkgs17;
pkgs21 = makePackages "graalvm-ce";
pkgs17 = makePackages "temurin-bin-17";
pkgs11 = makePackages "temurin-bin-11";
pkgs8 = makePackages "openjdk8";
in {
inherit default pkgs21 pkgs17 pkgs11 pkgs8;
}