diff options
author | Moritz Angermann <moritz.angermann@gmail.com> | 2018-03-17 16:55:39 +0800 |
---|---|---|
committer | John Ericson <John.Ericson@Obsidian.Systems> | 2018-05-23 10:27:42 -0400 |
commit | 87afa66a63eff046b5da7605909bae956b26e585 (patch) | |
tree | 6ff668385a02ae34a4af4cc58649cc83623dbd54 /pkgs/development/haskell-modules | |
parent | affeb0cb805f82bcc51e192a4c3bfe00f5f63fc9 (diff) | |
download | nixlib-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/haskell-modules')
-rw-r--r-- | pkgs/development/haskell-modules/generic-builder.nix | 5 | ||||
-rw-r--r-- | pkgs/development/haskell-modules/lib.nix | 2 |
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. |