summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
authorMoritz Angermann <moritz.angermann@gmail.com>2018-03-17 16:55:39 +0800
committerJohn Ericson <John.Ericson@Obsidian.Systems>2018-05-23 10:27:42 -0400
commit87afa66a63eff046b5da7605909bae956b26e585 (patch)
tree6ff668385a02ae34a4af4cc58649cc83623dbd54 /pkgs/development
parentaffeb0cb805f82bcc51e192a4c3bfe00f5f63fc9 (diff)
downloadnixlib-87afa66a63eff046b5da7605909bae956b26e585.tar
nixlib-87afa66a63eff046b5da7605909bae956b26e585.tar.gz
nixlib-87afa66a63eff046b5da7605909bae956b26e585.tar.bz2
nixlib-87afa66a63eff046b5da7605909bae956b26e585.tar.lz
nixlib-87afa66a63eff046b5da7605909bae956b26e585.tar.xz
nixlib-87afa66a63eff046b5da7605909bae956b26e585.tar.zst
nixlib-87afa66a63eff046b5da7605909bae956b26e585.zip
haskell infra: Adds buildFlags logic
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/haskell-modules/generic-builder.nix5
-rw-r--r--pkgs/development/haskell-modules/lib.nix2
2 files changed, 6 insertions, 1 deletions
diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix
index ef4cccdd820e..8d9b596276c3 100644
--- a/pkgs/development/haskell-modules/generic-builder.nix
+++ b/pkgs/development/haskell-modules/generic-builder.nix
@@ -19,6 +19,7 @@ in
 , buildTarget ? ""
 , buildTools ? [], libraryToolDepends ? [], executableToolDepends ? [], testToolDepends ? [], benchmarkToolDepends ? []
 , configureFlags ? []
+, buildFlags ? []
 , description ? ""
 , doCheck ? !isCross && stdenv.lib.versionOlder "7.4" ghc.version
 , doBenchmark ? false
@@ -130,6 +131,8 @@ let
   crossCabalFlagsString =
     stdenv.lib.optionalString isCross (" " + stdenv.lib.concatStringsSep " " crossCabalFlags);
 
+  buildFlagsString = optionalString (buildFlags != []) (" " + concatStringsSep " " buildFlags);
+
   defaultConfigureFlags = [
     "--verbose" "--prefix=$out" "--libdir=\\$prefix/lib/\\$compiler" "--libsubdir=\\$pkgid"
     (optionalString enableSeparateDataOutput "--datadir=$data/share/${ghc.name}")
@@ -345,7 +348,7 @@ stdenv.mkDerivation ({
 
   buildPhase = ''
     runHook preBuild
-    ${setupCommand} build ${buildTarget}${crossCabalFlagsString}
+    ${setupCommand} build ${buildTarget}${crossCabalFlagsString}${buildFlagsString}
     runHook postBuild
   '';
 
diff --git a/pkgs/development/haskell-modules/lib.nix b/pkgs/development/haskell-modules/lib.nix
index 55e45bd6559d..fb1302f60ea5 100644
--- a/pkgs/development/haskell-modules/lib.nix
+++ b/pkgs/development/haskell-modules/lib.nix
@@ -131,6 +131,8 @@ rec {
    */
   appendConfigureFlag = drv: x: overrideCabal drv (drv: { configureFlags = (drv.configureFlags or []) ++ [x]; });
 
+  appendBuildFlag = drv: x: overrideCabal drv (drv: { buildFlags = (drv.buildFlags or []) ++ [x]; });
+  appendBuildFlags = drv: xs: overrideCabal drv (drv: { buildFlags = (drv.buildFlags or []) ++ xs; });
   /* removeConfigureFlag drv x is a Haskell package like drv, but with
      all cabal configure arguments that are equal to x removed.