python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / development / tools / metals / default.nix
blob5b275f82346b8f61dfb41a06f4651daf33e2b5ea
1 { stdenv, lib, coursier, jre, makeWrapper, setJavaClassPath }:
3 stdenv.mkDerivation rec {
4   pname = "metals";
5   version = "0.11.9";
7   deps = stdenv.mkDerivation {
8     name = "${pname}-deps-${version}";
9     buildCommand = ''
10       export COURSIER_CACHE=$(pwd)
11       ${coursier}/bin/cs fetch org.scalameta:metals_2.13:${version} \
12         -r bintray:scalacenter/releases \
13         -r sonatype:snapshots > deps
14       mkdir -p $out/share/java
15       cp -n $(< deps) $out/share/java/
16     '';
17     outputHashMode = "recursive";
18     outputHashAlgo = "sha256";
19     outputHash = "sha256-CJ34OZOAM0Le9U0KSe0nKINnxA3iUgqUMtS06YnjvVo=";
20   };
22   nativeBuildInputs = [ makeWrapper setJavaClassPath ];
23   buildInputs = [ deps ];
25   dontUnpack = true;
27   extraJavaOpts = "-XX:+UseG1GC -XX:+UseStringDeduplication -Xss4m -Xms100m";
29   installPhase = ''
30     mkdir -p $out/bin
32     makeWrapper ${jre}/bin/java $out/bin/metals \
33       --add-flags "${extraJavaOpts} -cp $CLASSPATH scala.meta.metals.Main"
34   '';
36   meta = with lib; {
37     homepage = "https://scalameta.org/metals/";
38     license = licenses.asl20;
39     description = "Work-in-progress language server for Scala";
40     maintainers = with maintainers; [ fabianhjr tomahna ];
41   };