on iko/ghcjs-patch-master help sign in
Use hpack to generate cabal files when required (#82)

* Use hpack to generate cabal files when required

commit3c78fdaede42abe88936a55ecffbadf533cb3d28 authorKirill Zaborsky <qrilka@gmail.com> dateWed 6 Mar 2019, 03:46 (8 years ago) parent0b2d033
3 files changed+12−8
builder/comp-builder.nix+7−4 builder/default.nix+4−3 modules/component-driver.nix+1−1
builder/comp-builder.nix+7−4
@@ -1,4 +1,4 @@
1−{ stdenv, buildPackages, ghc, lib, pkgconfig, writeText, runCommand, haskellLib, nonReinstallablePkgs, withPackage }:
1+{ stdenv, buildPackages, ghc, lib, pkgconfig, writeText, runCommand, haskellLib, nonReinstallablePkgs, withPackage, hsPkgs }:
22
33{ componentId
44, component
@@ -9,6 +9,7 @@
99, flags
1010, revision
1111, cabalFile
12+, cabal-generator
1213, patches ? []
1314
1415, preUnpack ? null, postUnpack ? null
@@ -242,9 +243,11 @@ stdenv.mkDerivation ({
242243 # Phases
243244 preInstallPhases = lib.optional doHaddock' "haddockPhase";
244245
245− prePatch = lib.optionalString (cabalFile != null) ''
246− cat ${cabalFile} > ${package.identifier.name}.cabal
247− '';
246+ prePatch = if (cabalFile != null)
247+ then ''cat ${cabalFile} > ${package.identifier.name}.cabal''
248+ else lib.optionalString (cabal-generator == "hpack") ''
249+ ${hsPkgs.hpack.components.exes.hpack}/bin/hpack
250+ '';
248251
249252 configurePhase = ''
250253 runHook preConfigure
builder/default.nix+4−3
@@ -1,8 +1,9 @@
1−{ pkgs, buildPackages, stdenv, lib, haskellLib, ghc, buildGHC, fetchurl, writeText, runCommand, pkgconfig, nonReinstallablePkgs, withPackage }:
1+{ pkgs, buildPackages, stdenv, lib, haskellLib, ghc, buildGHC, fetchurl, writeText, runCommand, pkgconfig, nonReinstallablePkgs, withPackage, hsPkgs }:
22
33{ flags
44, package
55, components
6+, cabal-generator
67
78, name
89, sha256
@@ -71,10 +72,10 @@ let
7172 '';
7273 };
7374
74− comp-builder = haskellLib.weakCallPackage pkgs ./comp-builder.nix { inherit ghc haskellLib nonReinstallablePkgs withPackage; };
75+ comp-builder = haskellLib.weakCallPackage pkgs ./comp-builder.nix { inherit ghc haskellLib nonReinstallablePkgs withPackage hsPkgs; };
7576
7677 buildComp = componentId: component: comp-builder {
77− inherit componentId component package name src flags setup cabalFile patches revision
78+ inherit componentId component package name src flags setup cabalFile cabal-generator patches revision
7879 preUnpack postUnpack preConfigure postConfigure
7980 preBuild postBuild preCheck postCheck
8081 preInstall postInstall preHaddock postHaddock
modules/component-driver.nix+1−1
@@ -5,7 +5,7 @@ let
55 inherit haskellLib;
66 ghc = config.ghc.package;
77 buildGHC = buildModules.config.ghc.package;
8− inherit (config) nonReinstallablePkgs;
8+ inherit (config) nonReinstallablePkgs hsPkgs;
99 inherit withPackage;
1010 };
1111