--extra-*-dirs were not being passed to all components
[cabal.git] / default.nix
blob8d12cf57cd8f3e51fd4cea5b1dd64445016b2673
1 with (import <nixpkgs> {});
2 let
3   inherit (haskell) lib;
4   filterSource = drv:  # only copy required source files to build directory
5     let
6       omitDirs = [ ".cabal-sandbox" ".git" "dist" ];
7       omitExts = [ ".o" ".hi" ];
8       hasExt = path: ext: stdenv.lib.hasSuffix ext path;
9       predicate = path: type:
10         if type == "directory"
11           then !(stdenv.lib.elem (baseNameOf path) omitDirs)
12           else !(stdenv.lib.any (hasExt path) omitExts);
13     in
14       lib.overrideCabal drv
15       (args: args // { src = builtins.filterSource predicate args.src; });
17 haskellPackages.override {
18   overrides = self: super: {
19     Cabal =
20       filterSource (self.callPackage ./Cabal {});
21     cabal-install =
22       filterSource (lib.dontCheck (self.callPackage ./cabal-install {}));
23     hackage-security =
24       lib.dontCheck super.hackage-security;
25   };