summary refs log blame commit diff
path: root/pkgs/development/compilers/openjdk/jre.nix
blob: 78dec7885d938ee56ed5df9e1512b462a14547d6 (plain) (tree)
1
2
3
4
5
6
7
8

        
     
             



                           



                                     
                          
















                                                                                                                  

                      



                                                                  
      
    
      
{ stdenv
, jdk
, lib
, callPackage
, modules ? [ "java.base" ]
}:

let
  jre = stdenv.mkDerivation {
    name = "${jdk.name}-minimal-jre";
    version = jdk.version;

    buildInputs = [ jdk ];

    dontUnpack = true;

    # Strip more heavily than the default '-S', since if you're
    # using this derivation you probably care about this.
    stripDebugFlags = [ "--strip-unneeded" ];

    buildPhase = ''
      runHook preBuild

      jlink --module-path ${jdk}/lib/openjdk/jmods --add-modules ${lib.concatStringsSep "," modules} --output $out

      runHook postBuild
    '';

    dontInstall = true;

    passthru = {
      home = "${jre}";
      tests = [
        (callPackage ./tests/test_jre_minimal.nix {})
        (callPackage ./tests/test_jre_minimal_with_logging.nix {})
      ];
    };
  };
in jre