diff options
Diffstat (limited to 'pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix')
-rw-r--r-- | pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix | 36 |
1 files changed, 23 insertions, 13 deletions
diff --git a/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix b/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix index 2b5f6c4da80..8c8f016510f 100644 --- a/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix +++ b/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix @@ -1,5 +1,11 @@ -{ lib, supportedGhcVersions ? [ "884" "8107" "902" ], stdenv, haskellPackages -, haskell }: +{ lib +, stdenv +, supportedGhcVersions ? [ "884" "8107" "902" ] + ++ lib.optionals (!stdenv.hostPlatform.isAarch64) [ "921" ] +, dynamic ? false +, haskellPackages +, haskell +}: # # The recommended way to override this package is # @@ -8,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 [ |