at 17.09-beta 1.3 kB view raw
1{ stdenv, ghc, pkgconfig, glibcLocales, cacert }@depArgs: 2 3with stdenv.lib; 4 5{ buildInputs ? [] 6, extraArgs ? [] 7, LD_LIBRARY_PATH ? [] 8, ghc ? depArgs.ghc 9, ... 10}@args: 11 12stdenv.mkDerivation (args // { 13 14 buildInputs = 15 buildInputs ++ 16 optional stdenv.isLinux glibcLocales ++ 17 [ ghc pkgconfig ]; 18 19 STACK_PLATFORM_VARIANT="nix"; 20 STACK_IN_NIX_SHELL=1; 21 STACK_IN_NIX_EXTRA_ARGS = 22 concatMap (pkg: ["--extra-lib-dirs=${getLib pkg}/lib" 23 "--extra-include-dirs=${getDev pkg}/include"]) buildInputs ++ 24 extraArgs; 25 26 # XXX: workaround for https://ghc.haskell.org/trac/ghc/ticket/11042. 27 LD_LIBRARY_PATH = makeLibraryPath (LD_LIBRARY_PATH ++ buildInputs); 28 # ^^^ Internally uses `getOutput "lib"` (equiv. to getLib) 29 30 # Non-NixOS git needs cert 31 GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt"; 32 33 # Fixes https://github.com/commercialhaskell/stack/issues/2358 34 LANG = "en_US.UTF-8"; 35 36 preferLocalBuild = true; 37 38 configurePhase = args.configurePhase or '' 39 export STACK_ROOT=$NIX_BUILD_TOP/.stack 40 ''; 41 42 buildPhase = args.buildPhase or "stack build"; 43 44 checkPhase = args.checkPhase or "stack test"; 45 46 doCheck = args.doCheck or true; 47 48 installPhase = args.installPhase or '' 49 stack --local-bin-path=$out/bin build --copy-bins 50 ''; 51})