From 55003ca34b49fbe035a5eaebd91ff8bae29c8e06 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Sat, 10 Jan 2015 20:26:08 +0100 Subject: [PATCH] pkgs/development/haskell-modules/lib.nix: add funky helper function for overriding --- .../haskell-modules/configuration-common.nix | 2 +- .../configuration-ghc-7.6.x.nix | 2 +- .../configuration-ghc-7.8.x.nix | 2 +- .../configuration-ghc-7.9.x.nix | 2 +- .../haskell-modules/configuration-ghcjs.nix | 2 +- pkgs/development/haskell-modules/lib.nix | 21 ++++++++++++++++++- pkgs/top-level/haskell-ng.nix | 2 ++ 7 files changed, 27 insertions(+), 6 deletions(-) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 05a5b50e87f..00eba3c34fc 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -1,6 +1,6 @@ { pkgs }: -with import ./lib.nix; +with import ./lib.nix { inherit pkgs; }; self: super: { diff --git a/pkgs/development/haskell-modules/configuration-ghc-7.6.x.nix b/pkgs/development/haskell-modules/configuration-ghc-7.6.x.nix index d10f8ac0359..c2ffa9416c2 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-7.6.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-7.6.x.nix @@ -1,6 +1,6 @@ { pkgs }: -with import ./lib.nix; +with import ./lib.nix { inherit pkgs; }; self: super: { diff --git a/pkgs/development/haskell-modules/configuration-ghc-7.8.x.nix b/pkgs/development/haskell-modules/configuration-ghc-7.8.x.nix index dac44bcf523..4b24653a4ed 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-7.8.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-7.8.x.nix @@ -1,6 +1,6 @@ { pkgs }: -with import ./lib.nix; +with import ./lib.nix { inherit pkgs; }; self: super: { diff --git a/pkgs/development/haskell-modules/configuration-ghc-7.9.x.nix b/pkgs/development/haskell-modules/configuration-ghc-7.9.x.nix index 77190c3f862..d238639a516 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-7.9.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-7.9.x.nix @@ -1,6 +1,6 @@ { pkgs }: -with import ./lib.nix; +with import ./lib.nix { inherit pkgs; }; self: super: { diff --git a/pkgs/development/haskell-modules/configuration-ghcjs.nix b/pkgs/development/haskell-modules/configuration-ghcjs.nix index 3af0fbf0eea..000a0647bef 100644 --- a/pkgs/development/haskell-modules/configuration-ghcjs.nix +++ b/pkgs/development/haskell-modules/configuration-ghcjs.nix @@ -1,6 +1,6 @@ { pkgs }: -with import ./lib.nix; +with import ./lib.nix { inherit pkgs; }; self: super: { diff --git a/pkgs/development/haskell-modules/lib.nix b/pkgs/development/haskell-modules/lib.nix index 1e257e1ad78..157bc9c5117 100644 --- a/pkgs/development/haskell-modules/lib.nix +++ b/pkgs/development/haskell-modules/lib.nix @@ -1,7 +1,26 @@ -{ +{ pkgs }: + +rec { overrideCabal = drv: f: drv.override (args: args // { mkDerivation = drv: args.mkDerivation (drv // f drv); }); + doHaddock = drv: overrideCabal drv (drv: { noHaddock = false; }); + dontHaddock = drv: overrideCabal drv (drv: { noHaddock = true; }); + + doJailbreak = drv: overrideCabal drv (drv: { jailbreak = true; }); + dontJailbreak = drv: overrideCabal drv (drv: { jailbreak = false; }); + + doCheck = drv: overrideCabal drv (drv: { doCheck = false; }); + dontCheck = drv: overrideCabal drv (drv: { doCheck = false; }); + + dontDistribute = drv: overrideCabal drv (drv: { hydraPlatforms = []; }); + + appendConfigureFlag = drv: x: overrideCabal drv (drv: { configureFlags = drv.configureFlags or [] ++ [x]; }); + removeConfigureFlag = drv: x: overrideCabal drv (drv: { configureFlags = pkgs.stdenv.lib.remove x (drv.configureFlags or []); }); + + enableCabalFlag = drv: x: appendConfigureFlag (removeConfigureFlag drv "-f-${x}") "-f${x}"; + disableCabalFlag = drv: x: appendConfigureFlag (removeConfigureFlag drv "-f${x}") "-f-${x}"; + } diff --git a/pkgs/top-level/haskell-ng.nix b/pkgs/top-level/haskell-ng.nix index bc40b48ad52..098273bb958 100644 --- a/pkgs/top-level/haskell-ng.nix +++ b/pkgs/top-level/haskell-ng.nix @@ -2,6 +2,8 @@ rec { + lib = import ../development/haskell-modules/lib.nix { inherit pkgs; }; + compiler = { ghc6102Binary = callPackage ../development/compilers/ghc/6.10.2-binary.nix { gmp = pkgs.gmp4; };