|
1 |
| -{ stdenv, buildPackages, ghc, lib, pkgconfig, writeText, runCommand |
2 |
| -, haskellLib, nonReinstallablePkgs, hsPkgs, setup-depends |
3 |
| -, package, name, src, flags }: |
| 1 | +{ stdenv, buildPackages, haskellLib, ghc, nonReinstallablePkgs, hsPkgs, makeConfigFiles }: |
| 2 | + |
| 3 | +{ setup-depends, package, name, src, flags }: |
4 | 4 |
|
5 | 5 | let
|
6 | 6 | fullName = "${name}-setup";
|
7 | 7 |
|
8 | 8 | includeGhcPackage = lib.any (p: p.identifier.name == "ghc") setup-depends;
|
9 | 9 |
|
10 |
| - makeConfigFiles = haskellLib.weakCallPackage buildPackages ./make-config-files.nix { |
11 |
| - inherit ghc haskellLib nonReinstallablePkgs; |
12 |
| - }; |
13 |
| - |
14 | 10 | configFiles = makeConfigFiles {
|
15 | 11 | inherit (package) identifier;
|
16 | 12 | inherit fullName flags;
|
|
22 | 18 | };
|
23 | 19 | };
|
24 | 20 |
|
25 |
| -in stdenv.lib.fix (drv: |
26 |
| - |
27 |
| -stdenv.mkDerivation { |
28 |
| - name = "${fullName}"; |
29 |
| - inherit src; |
30 |
| - nativeBuildInputs = [ghc]; |
31 |
| - |
32 |
| - CABAL_CONFIG = configFiles + /cabal.config; |
33 |
| - phases = ["unpackPhase" "buildPhase" "installPhase"]; |
34 |
| - buildPhase = '' |
35 |
| - for f in Setup.hs Setup.lhs; do |
36 |
| - if [ -f $f ]; then |
37 |
| - echo Compiling package $f |
38 |
| - ghc $f '' + (if includeGhcPackage then "-package ghc " else "") |
39 |
| - + ''-package-db ${configFiles}/package.conf.d --make -o ./Setup |
40 |
| - setup=$(pwd)/Setup |
41 |
| - fi |
42 |
| - done |
43 |
| - [ -f ./Setup ] || (echo Failed to build Setup && exit 1) |
44 |
| - ''; |
45 |
| - |
46 |
| - installPhase = '' |
47 |
| - mkdir -p $out/bin |
48 |
| - install ./Setup $out/bin/Setup |
49 |
| - ''; |
50 |
| -}) |
51 |
| - |
52 |
| - |
| 21 | +in |
| 22 | + stdenv.lib.fix (drv: |
| 23 | + stdenv.mkDerivation { |
| 24 | + name = "${fullName}"; |
| 25 | + inherit src; |
| 26 | + nativeBuildInputs = [ghc]; |
| 27 | + |
| 28 | + CABAL_CONFIG = configFiles + /cabal.config; |
| 29 | + phases = ["unpackPhase" "buildPhase" "installPhase"]; |
| 30 | + buildPhase = '' |
| 31 | + for f in Setup.hs Setup.lhs; do |
| 32 | + if [ -f $f ]; then |
| 33 | + echo Compiling package $f |
| 34 | + ghc $f '' + (if includeGhcPackage then "-package ghc " else "") |
| 35 | + + ''-package-db ${configFiles}/package.conf.d --make -o ./Setup |
| 36 | + setup=$(pwd)/Setup |
| 37 | + fi |
| 38 | + done |
| 39 | + [ -f ./Setup ] || (echo Failed to build Setup && exit 1) |
| 40 | + ''; |
| 41 | + |
| 42 | + installPhase = '' |
| 43 | + mkdir -p $out/bin |
| 44 | + install ./Setup $out/bin/Setup |
| 45 | + ''; |
| 46 | + }) |
0 commit comments