Merge pull request #158669 from sternenseemann/hls-dynamic-wrapper

haskell-language-server: make linking configureable in wrapper
This commit is contained in:
maralorn 2022-02-11 11:41:39 +01:00 committed by GitHub
commit 562ad4ad32
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -2,6 +2,7 @@
, stdenv
, supportedGhcVersions ? [ "884" "8107" "902" ]
++ lib.optionals (!stdenv.hostPlatform.isAarch64) [ "921" ]
, dynamic ? false
, haskellPackages
, haskell
}:
@ -13,19 +14,23 @@
# for example. Read more about this in the haskell-language-server section of the nixpkgs manual.
#
let
inherit (lib) concatStringsSep concatMapStringsSep take splitString;
inherit (lib) concatStringsSep concatMapStringsSep take splitString pipe optionals;
inherit (haskell.lib.compose) justStaticExecutables overrideCabal enableCabalFlag disableCabalFlag;
getPackages = version: haskell.packages."ghc${version}";
tunedHls = hsPkgs:
haskell.lib.compose.justStaticExecutables
(haskell.lib.compose.overrideCabal (old: {
postInstall = ''
remove-references-to -t ${hsPkgs.ghc} $out/bin/haskell-language-server
remove-references-to -t ${hsPkgs.shake.data} $out/bin/haskell-language-server
remove-references-to -t ${hsPkgs.js-jquery.data} $out/bin/haskell-language-server
remove-references-to -t ${hsPkgs.js-dgtable.data} $out/bin/haskell-language-server
remove-references-to -t ${hsPkgs.js-flot.data} $out/bin/haskell-language-server
'';
}) hsPkgs.haskell-language-server);
lib.pipe hsPkgs.haskell-language-server ([
(haskell.lib.compose.overrideCabal (old: {
enableSharedExecutables = dynamic;
${if !dynamic then "postInstall" else null} = ''
${old.postInstall or ""}
remove-references-to -t ${hsPkgs.ghc} $out/bin/haskell-language-server
'';
}))
((if dynamic then enableCabalFlag else disableCabalFlag) "dynamic")
] ++ optionals (!dynamic) [
justStaticExecutables
]);
targets = version:
let packages = getPackages version;
in [