1{ pkgs }:
2
3with pkgs;
4
5{
6 inherit (pkgs) openjfx17 openjfx21 openjfx23;
7
8 compiler =
9 let
10 # merge meta.platforms of both packages so that dependent packages and hydra build them
11 mergeMetaPlatforms =
12 jdk: other:
13 jdk
14 // {
15 meta = jdk.meta // {
16 platforms = lib.unique (jdk.meta.platforms ++ other.meta.platforms);
17 };
18 };
19
20 mkLinuxDarwin =
21 linux: darwin:
22 if stdenv.hostPlatform.isLinux then
23 mergeMetaPlatforms linux darwin
24 else
25 mergeMetaPlatforms darwin linux;
26
27 mkOpenjdk =
28 featureVersion:
29 let
30 openjdkLinux =
31 (callPackage ../development/compilers/openjdk/generic.nix { inherit featureVersion; })
32 // {
33 headless = mergeMetaPlatforms openjdkLinuxHeadless openjdkDarwin;
34 };
35 openjdkLinuxHeadless = openjdkLinux.override { headless = true; };
36 openjdkDarwin = (callPackage (../development/compilers/zulu + "/${featureVersion}.nix") { }) // {
37 headless = mergeMetaPlatforms openjdkDarwin openjdkLinuxHeadless;
38 };
39 in
40 mkLinuxDarwin openjdkLinux openjdkDarwin;
41 in
42 rec {
43 corretto11 = callPackage ../development/compilers/corretto/11.nix { };
44 corretto17 = callPackage ../development/compilers/corretto/17.nix { };
45 corretto21 = callPackage ../development/compilers/corretto/21.nix { };
46
47 openjdk8 = mkOpenjdk "8";
48 openjdk11 = mkOpenjdk "11";
49 openjdk17 = mkOpenjdk "17";
50 openjdk21 = mkOpenjdk "21";
51 openjdk23 = mkOpenjdk "23";
52 openjdk24 = mkOpenjdk "24";
53 openjdk25 = mkOpenjdk "25";
54
55 # Legacy aliases
56 openjdk8-bootstrap = temurin-bin.jdk-8;
57 openjdk11-bootstrap = temurin-bin.jdk-11;
58 openjdk17-bootstrap = temurin-bin.jdk-17;
59
60 temurin-bin = recurseIntoAttrs (
61 let
62 temurinLinux = import ../development/compilers/temurin-bin/jdk-linux.nix {
63 inherit (pkgs) lib callPackage stdenv;
64 };
65 temurinDarwin = import ../development/compilers/temurin-bin/jdk-darwin.nix {
66 inherit (pkgs) lib callPackage;
67 };
68 in
69 lib.mapAttrs (name: drv: mkLinuxDarwin drv temurinDarwin.${name}) temurinLinux
70 );
71
72 semeru-bin = recurseIntoAttrs (
73 let
74 semeruLinux = import ../development/compilers/semeru-bin/jdk-linux.nix {
75 inherit (pkgs) lib callPackage;
76 };
77 semeruDarwin = import ../development/compilers/semeru-bin/jdk-darwin.nix {
78 inherit (pkgs) lib callPackage;
79 };
80 in
81 lib.mapAttrs (name: drv: mkLinuxDarwin drv semeruDarwin.${name}) semeruLinux
82 );
83 };
84}
85// lib.optionalAttrs config.allowAliases {
86 jogl_2_4_0 = throw "'jogl_2_4_0' is renamed to/replaced by 'jogl'";
87 mavenfod = throw "'mavenfod' is renamed to/replaced by 'maven.buildMavenPackage'";
88}