summary refs log tree commit diff
path: root/pkgs/development/haskell-modules/generic-stack-builder.nix
diff options
context:
space:
mode:
authorMatthew Justin Bauer <mjbauer95@gmail.com>2018-05-09 18:12:13 -0500
committerGitHub <noreply@github.com>2018-05-09 18:12:13 -0500
commit1682353805e37b29b2dc0f06efdbe8a33a07363c (patch)
tree9fb8665280cc06b384f03511546f4dcf76ffd8f8 /pkgs/development/haskell-modules/generic-stack-builder.nix
parent12ee278a0d5f2d98668cc958feb5a88a80dc6945 (diff)
downloadnixpkgs-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.nix23
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";