summaryrefslogtreecommitdiff
path: root/pkgs/top-level/java-packages.nix
blob: 7c222e5f8300745d84c5613ef21e8cab143ff5fc (about) (plain)
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
{ pkgs }:
let
  inherit (pkgs)
    stdenv
    callPackage
    config
    lib
    ;
in
{
  inherit (pkgs) openjfx17 openjfx21 openjfx25;
  compiler = lib.recurseIntoAttrs (
    let
      # merge meta.platforms of both packages so that dependent packages and hydra build them
      mergeMetaPlatforms =
        jdk: other:
        jdk
        // {
          meta = jdk.meta // {
            platforms = lib.unique (jdk.meta.platforms ++ other.meta.platforms);
          };
        };

      mkLinuxDarwin =
        linux: darwin:
        if stdenv.hostPlatform.isLinux then
          mergeMetaPlatforms linux darwin
        else
          mergeMetaPlatforms darwin linux;

      mkOpenjdk =
        featureVersion:
        let
          openjdkLinux =
            (callPackage ../development/compilers/openjdk/generic.nix { inherit featureVersion; })
            // {
              headless = mergeMetaPlatforms openjdkLinuxHeadless openjdkDarwin;
            };
          openjdkLinuxHeadless = openjdkLinux.override { headless = true; };
          openjdkDarwin = (callPackage (../development/compilers/zulu + "/${featureVersion}.nix") { }) // {
            headless = mergeMetaPlatforms openjdkDarwin openjdkLinuxHeadless;
          };
        in
        mkLinuxDarwin openjdkLinux openjdkDarwin;
    in
    rec {
      corretto11 = callPackage ../development/compilers/corretto/11.nix { };
      corretto17 = callPackage ../development/compilers/corretto/17.nix { };
      corretto21 = callPackage ../development/compilers/corretto/21.nix { };
      corretto25 = callPackage ../development/compilers/corretto/25.nix { };

      openjdk8 = mkOpenjdk "8";
      openjdk11 = mkOpenjdk "11";
      openjdk17 = mkOpenjdk "17";
      openjdk21 = mkOpenjdk "21";
      openjdk25 = mkOpenjdk "25";

      # Legacy aliases
      openjdk8-bootstrap = temurin-bin.jdk-8;
      openjdk11-bootstrap = temurin-bin.jdk-11;
      openjdk17-bootstrap = temurin-bin.jdk-17;

      temurin-bin = lib.recurseIntoAttrs (
        let
          temurinLinux = import ../development/compilers/temurin-bin/jdk-linux.nix {
            inherit (pkgs) lib callPackage stdenv;
          };
          temurinDarwin = import ../development/compilers/temurin-bin/jdk-darwin.nix {
            inherit (pkgs) lib callPackage;
          };
        in
        lib.mapAttrs (name: drv: mkLinuxDarwin drv temurinDarwin.${name}) temurinLinux
      );

      semeru-bin = lib.recurseIntoAttrs (
        let
          semeruLinux = import ../development/compilers/semeru-bin/jdk-linux.nix {
            inherit (pkgs) lib callPackage;
          };
          semeruDarwin = import ../development/compilers/semeru-bin/jdk-darwin.nix {
            inherit (pkgs) lib callPackage;
          };
        in
        lib.mapAttrs (name: drv: mkLinuxDarwin drv semeruDarwin.${name}) semeruLinux
      );
    }
  );
}
// lib.optionalAttrs config.allowAliases {
  jogl_2_4_0 = throw "'jogl_2_4_0' is renamed to/replaced by 'jogl'";
  mavenfod = throw "'mavenfod' is renamed to/replaced by 'maven.buildMavenPackage'";
}