@@ -2,6 +2,7 @@
22, stdenv
33, supportedGhcVersions ? [ "884" "8107" "902" ]
44 ++ lib.optionals (!stdenv.hostPlatform.isAarch64) [ "921" ]
5+, dynamic ? true
56, haskellPackages
67, haskell
78}:
@@ -13,19 +14,25 @@
1314# for example. Read more about this in the haskell-language-server section of the nixpkgs manual.
1415#
1516let
16− inherit (lib) concatStringsSep concatMapStringsSep take splitString;
17+ inherit (lib) concatStringsSep concatMapStringsSep take splitString pipe optionals;
18+ inherit (haskell.lib.compose) justStaticExecutables overrideCabal enableCabalFlag disableCabalFlag;
1719 getPackages = version: haskell.packages."ghc${version}";
1820 tunedHls = hsPkgs:
19− haskell.lib.compose.justStaticExecutables
20− (haskell.lib.compose.overrideCabal (old: {
21− postInstall = ''
22− remove-references-to -t ${hsPkgs.ghc} $out/bin/haskell-language-server
23− remove-references-to -t ${hsPkgs.shake.data} $out/bin/haskell-language-server
24− remove-references-to -t ${hsPkgs.js-jquery.data} $out/bin/haskell-language-server
25− remove-references-to -t ${hsPkgs.js-dgtable.data} $out/bin/haskell-language-server
26− remove-references-to -t ${hsPkgs.js-flot.data} $out/bin/haskell-language-server
27− '';
28− }) hsPkgs.haskell-language-server);
21+ lib.pipe hsPkgs.haskell-language-server ([
22+ (haskell.lib.compose.overrideCabal (old: {
23+ enableSharedExecutables = dynamic;
24+ postInstall = ''
25+ remove-references-to -t ${hsPkgs.ghc} $out/bin/haskell-language-server
26+ remove-references-to -t ${hsPkgs.shake.data} $out/bin/haskell-language-server
27+ remove-references-to -t ${hsPkgs.js-jquery.data} $out/bin/haskell-language-server
28+ remove-references-to -t ${hsPkgs.js-dgtable.data} $out/bin/haskell-language-server
29+ remove-references-to -t ${hsPkgs.js-flot.data} $out/bin/haskell-language-server
30+ '';
31+ }))
32+ ((if dynamic then enableCabalFlag else disableCabalFlag) "dynamic")
33+ ] ++ optionals (!dynamic) [
34+ justStaticExecutables
35+ ]);
2936 targets = version:
3037 let packages = getPackages version;
3138 in [