diff options
author | AndersonTorres <torres.anderson.85@protonmail.com> | 2021-10-01 03:33:58 -0300 |
---|---|---|
committer | AndersonTorres <torres.anderson.85@protonmail.com> | 2021-10-03 21:03:36 -0300 |
commit | fc88ec5d9d0ad91a091645655e78f46ac642fb0e (patch) | |
tree | f3f75bdb214401601c30e4c0b7c1ee2067bb510e /pkgs/development/interpreters/bqn | |
parent | 24f04ee6bb3689a7860dfc7130082c1ad7d733a7 (diff) |
dbqn: init at 0.0.0+unstable=2021-10-02
Many thanks @sternenseemann for the expression. I made a rewrite to keep it clean.
Diffstat (limited to 'pkgs/development/interpreters/bqn')
-rw-r--r-- | pkgs/development/interpreters/bqn/dzaima-bqn/default.nix | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/pkgs/development/interpreters/bqn/dzaima-bqn/default.nix b/pkgs/development/interpreters/bqn/dzaima-bqn/default.nix new file mode 100644 index 0000000000000..6c4022ed02511 --- /dev/null +++ b/pkgs/development/interpreters/bqn/dzaima-bqn/default.nix @@ -0,0 +1,71 @@ +{ lib +, stdenv +, fetchFromGitHub +, jdk +, makeWrapper +, buildNativeImage ? true +}: + +stdenv.mkDerivation rec { + pname = "dbqn" + lib.optionalString buildNativeImage "-native"; + version = "0.0.0+unstable=2021-10-02"; + + src = fetchFromGitHub { + owner = "dzaima"; + repo = "BQN"; + rev = "d6bd66d26a89b8e9f956ec4f6b6bc5dcb5861a09"; + hash = "sha256-BLRep7OGHfDFowIAsBS19PTzgIhrdKMnO2JSjKuwGYo="; + }; + + buildInputs = lib.optional (!buildNativeImage) jdk; + + nativeBuildInputs = [ + makeWrapper + ] ++ lib.optional buildNativeImage jdk; + + dontConfigure = true; + + buildPhase = '' + runHook preBuild + + mkdir -p output + javac --release 8 -encoding UTF-8 -d ./output $(find src -name '*.java') + (cd output; jar cvfe ../BQN.jar BQN.Main *) + rm -fr output + '' + lib.optionalString buildNativeImage '' + native-image --report-unsupported-elements-at-runtime \ + -J-Dfile.encoding=UTF-8 -jar BQN.jar dbqn + '' + '' + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + + '' + (if buildNativeImage then '' + mv dbqn $out/bin + '' else '' + mkdir -p $out/share/${pname} + mv BQN.jar $out/share/${pname}/ + + makeWrapper "${lib.getBin jdk}/bin/java" "$out/bin/dbqn" \ + --add-flags "-jar $out/share/${pname}/BQN.jar" + '') + '' + ln -s $out/bin/dbqn $out/bin/bqn + + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://github.com/dzaima/BQN"; + description = "A BQN implementation in Java" + lib.optionalString buildNativeImage ", compiled as a native image"; + license = licenses.mit; + maintainers = with maintainers; [ AndersonTorres sternenseemann ]; + inherit (jdk.meta) platforms; + priority = if buildNativeImage then 10 else 0; + }; +} +# TODO: Processing app +# TODO: minimalistic JDK |