diff options
author | Matthew Justin Bauer <mjbauer95@gmail.com> | 2018-05-09 18:12:13 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-09 18:12:13 -0500 |
commit | 1682353805e37b29b2dc0f06efdbe8a33a07363c (patch) | |
tree | 9fb8665280cc06b384f03511546f4dcf76ffd8f8 /pkgs/development/haskell-modules/generic-stack-builder.nix | |
parent | 12ee278a0d5f2d98668cc958feb5a88a80dc6945 (diff) | |
download | nixpkgs-1682353805e37b29b2dc0f06efdbe8a33a07363c.tar nixpkgs-1682353805e37b29b2dc0f06efdbe8a33a07363c.tar.gz nixpkgs-1682353805e37b29b2dc0f06efdbe8a33a07363c.tar.bz2 nixpkgs-1682353805e37b29b2dc0f06efdbe8a33a07363c.tar.lz nixpkgs-1682353805e37b29b2dc0f06efdbe8a33a07363c.tar.xz nixpkgs-1682353805e37b29b2dc0f06efdbe8a33a07363c.tar.zst nixpkgs-1682353805e37b29b2dc0f06efdbe8a33a07363c.zip |
generic-stack-builder: also support nix-build
We need to add the STACK_IN_NIX_EXTRA_ARGS hook in configurePhase also to ensure we get the right args when calling ```nix-build``` (as opposed to nix-shell).
Diffstat (limited to 'pkgs/development/haskell-modules/generic-stack-builder.nix')
-rw-r--r-- | pkgs/development/haskell-modules/generic-stack-builder.nix | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/pkgs/development/haskell-modules/generic-stack-builder.nix b/pkgs/development/haskell-modules/generic-stack-builder.nix index 5c2fced3f2e..9ea9dae02db 100644 --- a/pkgs/development/haskell-modules/generic-stack-builder.nix +++ b/pkgs/development/haskell-modules/generic-stack-builder.nix @@ -11,6 +11,18 @@ with stdenv.lib; }@args: let stackCmd = "stack --internal-re-exec-version=${stack.version}"; + + # Add all dependencies in buildInputs including propagated ones to + # STACK_IN_NIX_EXTRA_ARGS. + addStackArgsHook = '' +for pkg in ''${pkgsHostHost[@]} ''${pkgsHostBuild[@]} ''${pkgsHostTarget[@]} +do + [ -d "$pkg/lib" ] && \ + export STACK_IN_NIX_EXTRA_ARGS+=" --extra-lib-dirs=$pkg/lib" + [ -d "$pkg/include" ] && \ + export STACK_IN_NIX_EXTRA_ARGS+=" --extra-include-dirs=$pkg/include" +done + ''; in stdenv.mkDerivation (args // { buildInputs = @@ -21,15 +33,7 @@ in stdenv.mkDerivation (args // { STACK_PLATFORM_VARIANT="nix"; STACK_IN_NIX_SHELL=1; STACK_IN_NIX_EXTRA_ARGS = extraArgs; - shellHook = '' - for pkg in ''${pkgsHostHost[@]} ''${pkgsHostBuild[@]} ''${pkgsHostTarget[@]} - do - [ -d "$pkg/lib" ] && \ - export STACK_IN_NIX_EXTRA_ARGS+=" --extra-lib-dirs=$pkg/lib" - [ -d "$pkg/include" ] && \ - export STACK_IN_NIX_EXTRA_ARGS+=" --extra-include-dirs=$pkg/include" - done - ''; + shellHook = addStackArgsHook; # XXX: workaround for https://ghc.haskell.org/trac/ghc/ticket/11042. @@ -46,6 +50,7 @@ in stdenv.mkDerivation (args // { configurePhase = args.configurePhase or '' export STACK_ROOT=$NIX_BUILD_TOP/.stack + ${addStackArgsHook} ''; buildPhase = args.buildPhase or "${stackCmd} build"; |