Disable per-components mode for cabal-spec version < 1.8
[cabal.git] / default.nix
blobf033b0b4cff80273119d4122ffdcb848f56d74ae
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 = filterSource (self.callPackage ./Cabal.nix {});
20     cabal-install = filterSource (lib.dontCheck (self.callPackage ./cabal-install.nix {}));
21   };