Merge pull request #23880 from ElvishJerricco/callCabal2nix-dont-rebuild-cabalfile

callCabal2nix: Don't rebuild unchanged cabal file
This commit is contained in:
Peter Simons 2017-03-14 08:57:45 +01:00 committed by GitHub
commit 1d5878166e

View File

@ -84,7 +84,14 @@ let
callHackage = name: version: self.callPackage (hackage2nix name version);
# Creates a Haskell package from a source package by calling cabal2nix on the source.
callCabal2nix = name: src: self.callPackage (haskellSrc2nix { inherit src name; });
callCabal2nix = name: src: args:
let
# Filter out files other than the cabal file. This ensures
# that we don't create new derivations even when the cabal
# file hasn't changed.
justCabal = builtins.filterSource (path: type: pkgs.lib.hasSuffix ".cabal" path) src;
drv = self.callPackage (haskellSrc2nix { inherit name; src = justCabal; }) args;
in overrideCabal drv (drv': { inherit src; }); # Restore the desired src.
ghcWithPackages = selectFrom: withPackages (selectFrom self);