forked from mirrors/nixpkgs
2c3ad4ef9c
Nowadays we build it from the jar released from upstream, but this PRs changes it to build it from source code.
67 lines
1.5 KiB
Nix
67 lines
1.5 KiB
Nix
{ lib, stdenv, callPackage, fetchFromGitHub, leiningen, openjdk11
|
|
, graalvm11-ce, babashka }:
|
|
|
|
let
|
|
pname = "clojure-lsp";
|
|
version = "2021.02.14-19.46.47";
|
|
leiningen11 = leiningen.override ({ jdk = openjdk11; });
|
|
|
|
src = fetchFromGitHub {
|
|
owner = pname;
|
|
repo = pname;
|
|
rev = version;
|
|
sha256 = "sha256-Zj7/8RcuxCy2xdd+5jeOb1GTsQsX0EVW32k32fA6uf4=";
|
|
};
|
|
|
|
repository = callPackage ./repository.nix {
|
|
inherit src pname version;
|
|
leiningen = leiningen11;
|
|
};
|
|
in stdenv.mkDerivation rec {
|
|
inherit src pname version;
|
|
|
|
postPatch = ''
|
|
# Hack to set maven cache in another directory since MAVEN_OPTS doesn't work
|
|
substituteInPlace project.clj \
|
|
--replace ":main" ":local-repo \"${repository}\" :main"
|
|
'';
|
|
|
|
GRAALVM_HOME = graalvm11-ce;
|
|
|
|
buildInputs = [ graalvm11-ce leiningen11 repository ];
|
|
|
|
buildPhase = with lib; ''
|
|
runHook preBuild
|
|
|
|
export LEIN_HOME="$(mktemp -d)"
|
|
bash ./graalvm/native-unix-compile.sh
|
|
|
|
runHook postBuild
|
|
'';
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
install -Dm755 ./clojure-lsp $out/bin/clojure-lsp
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
doCheck = true;
|
|
checkPhase = ''
|
|
runHook preCheck
|
|
|
|
${babashka}/bin/bb ./integration-test/run-all.clj ./clojure-lsp
|
|
|
|
runHook postCheck
|
|
'';
|
|
|
|
meta = with lib; {
|
|
description = "Language Server Protocol (LSP) for Clojure";
|
|
homepage = "https://github.com/snoe/clojure-lsp";
|
|
license = licenses.mit;
|
|
maintainers = [ maintainers.ericdallo ];
|
|
platforms = graalvm11-ce.meta.platforms;
|
|
};
|
|
}
|