diff options
author | Thiago Kenji Okada <thiagokokada@gmail.com> | 2021-02-04 00:06:28 -0300 |
---|---|---|
committer | Thiago Kenji Okada <thiagokokada@gmail.com> | 2021-02-19 10:25:55 -0300 |
commit | 3fa00685ce21fb1a4218d444d0862ebcb2b99706 (patch) | |
tree | 3d556a85daed040c9c6f59edc8dc5cebb99c408d /pkgs/development/tools/misc/clojure-lsp | |
parent | b8f6a927f74fe541053db20bdc3cd64e2a65273b (diff) |
clojure-lsp: migrate to GraalVM
clojure-lsp now supports GraalVM builds that makes the binary faster to start and also seems to reduce memory usage.
Diffstat (limited to 'pkgs/development/tools/misc/clojure-lsp')
-rw-r--r-- | pkgs/development/tools/misc/clojure-lsp/default.nix | 48 |
1 files changed, 40 insertions, 8 deletions
diff --git a/pkgs/development/tools/misc/clojure-lsp/default.nix b/pkgs/development/tools/misc/clojure-lsp/default.nix index d62166ca2b4ab..b282deb6cd077 100644 --- a/pkgs/development/tools/misc/clojure-lsp/default.nix +++ b/pkgs/development/tools/misc/clojure-lsp/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchurl, jre, makeWrapper }: +{ lib, stdenv, fetchurl, graalvm11-ce }: stdenv.mkDerivation rec { pname = "clojure-lsp"; @@ -11,14 +11,46 @@ stdenv.mkDerivation rec { dontUnpack = true; - buildInputs = [ makeWrapper ]; + buildInputs = [ graalvm11-ce ]; + + buildPhase = with lib; '' + args=("-jar" "${src}" + "-H:Name=clojure-lsp" + ${optionalString stdenv.isDarwin ''"-H:-CheckToolchain"''} + "-J-Dclojure.compiler.direct-linking=true" + "-J-Dclojure.spec.skip-macros=true" + "-H:+ReportExceptionStackTraces" + "--enable-url-protocols=jar" + # "-H:+InlineBeforeAnalysis" + "-H:Log=registerResource:" + "--verbose" + "-H:IncludeResources=\"CLOJURE_LSP_VERSION|db/.*|static/.*|templates/.*|.*.yml|.*.xml|.*/org/sqlite/.*|org/sqlite/.*|.*.properties\"" + "-H:ConfigurationFileDirectories=graalvm" + "--initialize-at-build-time" + "--report-unsupported-elements-at-runtime" + "--no-server" + "--no-fallback" + "--native-image-info" + "--allow-incomplete-classpath" + "-H:ServiceLoaderFeatureExcludeServices=javax.sound.sampled.spi.AudioFileReader" + "-H:ServiceLoaderFeatureExcludeServices=javax.sound.midi.spi.MidiFileReader" + "-H:ServiceLoaderFeatureExcludeServices=javax.sound.sampled.spi.MixerProvider" + "-H:ServiceLoaderFeatureExcludeServices=javax.sound.sampled.spi.FormatConversionProvider" + "-H:ServiceLoaderFeatureExcludeServices=javax.sound.sampled.spi.AudioFileWriter" + "-H:ServiceLoaderFeatureExcludeServices=javax.sound.midi.spi.MidiDeviceProvider" + "-H:ServiceLoaderFeatureExcludeServices=javax.sound.midi.spi.SoundbankReader" + "-H:ServiceLoaderFeatureExcludeServices=javax.sound.midi.spi.MidiFileWriter" + "-J-Xmx4g") + + native-image "''${args[@]}" + ''; installPhase = '' - install -Dm644 $src $out/share/java/${pname}.jar - makeWrapper ${jre}/bin/java $out/bin/${pname} \ - --add-flags "-Xmx2g" \ - --add-flags "-server" \ - --add-flags "-jar $out/share/java/${pname}.jar" + install -Dm755 clojure-lsp $out/bin/clojure-lsp + ''; + + installCheckPhase = '' + $out/bin/clojure-lsp --version ''; meta = with lib; { @@ -26,6 +58,6 @@ stdenv.mkDerivation rec { homepage = "https://github.com/snoe/clojure-lsp"; license = licenses.mit; maintainers = [ maintainers.ericdallo ]; - platforms = jre.meta.platforms; + platforms = graalvm11-ce.meta.platforms; }; } |