dotnet: improve language coverage of passthru.tests for dotnet sdks (#370789)
[NixPkgs.git] / pkgs / by-name / db / dbqn / package.nix
blob8352bb2b57ad2a08e7252fdc3c3f3ef2d9fdaefa
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   jdk,
6   makeWrapper,
7   buildNativeImage ? false,
8 }:
10 stdenv.mkDerivation rec {
11   pname = "dbqn" + lib.optionalString buildNativeImage "-native";
12   version = "0.2.2";
14   src = fetchFromGitHub {
15     owner = "dzaima";
16     repo = "BQN";
17     rev = "v${version}";
18     hash = "sha256-AUfT7l7zr/pyG63wX8FMej8RUg7tXC1aroCrunjyw/8=";
19   };
21   nativeBuildInputs = [
22     jdk
23     makeWrapper
24   ];
26   dontConfigure = true;
28   postPatch = ''
29     patchShebangs --build ./build8
30   '';
32   buildPhase =
33     ''
34       runHook preBuild
36       ./build8
37     ''
38     + lib.optionalString buildNativeImage ''
39       native-image --report-unsupported-elements-at-runtime \
40         -H:CLibraryPath=${lib.getLib jdk}/lib -J-Dfile.encoding=UTF-8 \
41         -jar BQN.jar dbqn
42     ''
43     + ''
44       runHook postBuild
45     '';
47   installPhase =
48     ''
49       runHook preInstall
51       mkdir -p $out/bin
53     ''
54     + (
55       if buildNativeImage then
56         ''
57           mv dbqn $out/bin
58         ''
59       else
60         ''
61           mkdir -p $out/share/dbqn
62           mv BQN.jar $out/share/dbqn/
64           makeWrapper "${lib.getBin jdk}/bin/java" "$out/bin/dbqn" \
65             --add-flags "-jar $out/share/dbqn/BQN.jar"
66         ''
67     )
68     + ''
69       ln -s $out/bin/dbqn $out/bin/bqn
71       runHook postInstall
72     '';
74   meta = with lib; {
75     homepage = "https://github.com/dzaima/BQN";
76     description =
77       "BQN implementation in Java" + lib.optionalString buildNativeImage ", compiled as a native image";
78     license = licenses.mit;
79     maintainers = with maintainers; [
80       AndersonTorres
81       sternenseemann
82     ];
83     inherit (jdk.meta) platforms;
84     broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/dbqn-native.x86_64-darwin
85   };
87 # TODO: Processing app
88 # TODO: minimalistic JDK