summary refs log tree commit diff
path: root/pkgs/development/tools/misc/clojure-lsp
diff options
context:
space:
mode:
authorThiago Kenji Okada <thiagokokada@gmail.com>2021-11-23 11:56:37 -0300
committerThiago Kenji Okada <thiagokokada@gmail.com>2021-11-24 10:37:32 -0300
commit1415e30830e9fae776cbd08a4934a4cdc66e1a02 (patch)
tree6a05e65d382ea812215e0c98b2b9a1ef2f72bd1d /pkgs/development/tools/misc/clojure-lsp
parent4ec0d5209fd24b7f02773bafd35327a56dff7668 (diff)
buildGraalvmNativeImage: init
For now it only takes care of the single Jar <-> single Executable case.
This will take care of the majority (all?) use cases we have in nixpkgs
currently.
Diffstat (limited to 'pkgs/development/tools/misc/clojure-lsp')
-rw-r--r--pkgs/development/tools/misc/clojure-lsp/default.nix41
1 files changed, 9 insertions, 32 deletions
diff --git a/pkgs/development/tools/misc/clojure-lsp/default.nix b/pkgs/development/tools/misc/clojure-lsp/default.nix
index 9128b3f190e10..66166e469a805 100644
--- a/pkgs/development/tools/misc/clojure-lsp/default.nix
+++ b/pkgs/development/tools/misc/clojure-lsp/default.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv, graalvm11-ce, babashka, fetchurl, fetchFromGitHub, clojure, writeScript }:
+{ lib, stdenv, buildGraalvmNativeImage, graalvm11-ce, babashka, fetchurl, fetchFromGitHub, clojure, writeScript }:
 
-stdenv.mkDerivation rec {
+buildGraalvmNativeImage rec {
   pname = "clojure-lsp";
   version = "2021.11.02-15.24.47";
 
@@ -16,39 +16,17 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-k0mzibcLAspklCPE6f2qsUm9bwSvcJRgWecMBq7mpF0=";
   };
 
-  GRAALVM_HOME = graalvm11-ce;
-  CLOJURE_LSP_JAR = jar;
-  CLOJURE_LSP_XMX = "-J-Xmx6g";
-
-  buildInputs = [ graalvm11-ce clojure ];
-
-  buildPhase = with lib; ''
-    runHook preBuild
+  extraNativeImageBuildArgs = [
+    "-H:CLibraryPath=$DTLV_LIB_EXTRACT_DIR"
+    "--verbose"
+    "--no-fallback"
+    "--native-image-info"
+  ];
 
+  preBuild = ''
     # https://github.com/clojure-lsp/clojure-lsp/blob/2021.11.02-15.24.47/graalvm/native-unix-compile.sh#L18-L27
     DTLV_LIB_EXTRACT_DIR=$(mktemp -d)
     export DTLV_LIB_EXTRACT_DIR=$DTLV_LIB_EXTRACT_DIR
-
-    args=("-jar" "$CLOJURE_LSP_JAR"
-          "-H:+ReportExceptionStackTraces"
-          "-H:CLibraryPath=${graalvm11-ce.lib}/lib"
-          "-H:CLibraryPath=$DTLV_LIB_EXTRACT_DIR"
-          "--verbose"
-          "--no-fallback"
-          "--native-image-info"
-          "$CLOJURE_LSP_XMX")
-
-    native-image ''${args[@]}
-
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-
-    install -Dm755 ./clojure-lsp $out/bin/clojure-lsp
-
-    runHook postInstall
   '';
 
   doCheck = true;
@@ -88,7 +66,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/clojure-lsp/clojure-lsp";
     license = licenses.mit;
     maintainers = with maintainers; [ ericdallo babariviere ];
-    platforms = graalvm11-ce.meta.platforms;
     # Depends on datalevin that is x86_64 only
     # https://github.com/juji-io/datalevin/blob/bb7d9328f4739cddea5d272b5cd6d6dcb5345da6/native/src/java/datalevin/ni/Lib.java#L86-L102
     broken = !stdenv.isx86_64;