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