haskell: add buildStackProject.

For building environments for Stack projects.
This commit is contained in:
Mathieu Boespflug 2015-12-13 18:20:12 +01:00
parent 247e248a46
commit be63be9d04
2 changed files with 42 additions and 0 deletions

View File

@ -0,0 +1,40 @@
{ stdenv, ghc, pkgconfig, glibcLocales }:
with stdenv.lib;
{ buildInputs ? []
, extraArgs ? []
, LD_LIBRARY_PATH ? ""
, ...
}@args:
stdenv.mkDerivation (args // {
buildInputs =
buildInputs ++
optional stdenv.isLinux glibcLocales ++
[ ghc pkgconfig ];
STACK_IN_NIX_SHELL=1;
STACK_IN_NIX_EXTRA_ARGS =
concatMap (pkg: ["--extra-lib-dirs=${pkg}/lib"
"--extra-include-dirs=${pkg}/include"]) buildInputs ++
extraArgs;
# XXX: workaround for https://ghc.haskell.org/trac/ghc/ticket/11042.
LD_LIBRARY_PATH = "${makeLibraryPath buildInputs}:${LD_LIBRARY_PATH}";
preferLocalBuild = true;
configurePhase = args.configurePhase or "stack setup";
buildPhase = args.buildPhase or "stack build";
checkPhase = args.checkPhase or "stack test";
doCheck = args.doCheck or true;
installPhase = args.installPhase or ''
stack --local-bin-path=$out/bin build --copy-bins
'';
})

View File

@ -4,6 +4,8 @@ rec {
lib = import ../development/haskell-modules/lib.nix { inherit pkgs; };
buildStackProject = callPackage ../build-support/haskell/stack.nix { };
compiler = {
ghc6102Binary = callPackage ../development/compilers/ghc/6.10.2-binary.nix { gmp = pkgs.gmp4; };