haskell.nix/overlays/default.nix
Michael Peyton Jones 8c0b7c27b4
Use runCommandLocal for dotCabal (#901)
This produces a pretty big store path (>1GB), and is very quick to
build. Prefer building it locally.
2020-11-07 00:18:53 +13:00

61 lines
1.8 KiB
Nix

args:
let
overlays = {
wine = import ./wine.nix;
#ghcjs = import ./ghcjs-asterius-triple.nix;
#python = import ./python.nix;
haskell = import ./haskell.nix args;
hackage-quirks = import ./hackage-quirks.nix;
bootstrap = import ./bootstrap.nix;
ghc = import ./ghc.nix;
ghc-packages = import ./ghc-packages.nix;
windows = import ./windows.nix;
armv6l-linux = import ./armv6l-linux.nix;
musl = import ./musl.nix;
tools = import ./tools.nix;
emscripten = import ./emscripten.nix;
nix-prefetch-git-minimal = import ./nix-prefetch-git-minimal.nix;
gobject-introspection = import ./gobject-introspection.nix;
shims = import ./shims.nix;
eval-on-current = import ./eval-on-current.nix;
eval-on-build = import ./eval-on-build.nix;
};
composeExtensions = f: g: final: prev:
let
fApplied = f final prev;
prev' = prev // fApplied;
in fApplied // g final prev';
ordered = with overlays; [
# Hide nixpkgs haskell and haskellPackages from the haskell-nix overlays.
# This should prevent us inadvertently depending on them.
(_: prev: {
haskell = { };
haskellPackages = { };
haskell-nix-prev = prev;
})
wine
haskell
hackage-quirks
bootstrap
ghc
ghc-packages
windows
armv6l-linux
musl
tools
emscripten
nix-prefetch-git-minimal
gobject-introspection
shims
# Restore nixpkgs haskell and haskellPackages
(_: prev: { inherit (prev.haskell-nix-prev) haskell haskellPackages; })
];
combined = builtins.foldl' composeExtensions (_: _: { })
(ordered ++ [overlays.eval-on-current]);
combined-eval-on-build = builtins.foldl' composeExtensions (_: _: { })
(ordered ++ [overlays.eval-on-build]);
in overlays // { inherit combined combined-eval-on-build; }