Skip to content

Commit

Permalink
fix: nix expressions
Browse files Browse the repository at this point in the history
  • Loading branch information
deemp committed Dec 8, 2023
1 parent 89a2c2a commit 8a70b7f
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 21 deletions.
1 change: 1 addition & 0 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
packages = {
default = default.packages.default;
rzk = default.packages.${rzk};
rzk-ghcjs = ghcjs.packages.${rzk};
rzk-js = ghcjs.packages.${rzk-js};
} // scripts;

Expand Down
48 changes: 27 additions & 21 deletions nix/ghcjs.nix
Original file line number Diff line number Diff line change
@@ -1,34 +1,40 @@
{ inputs, pkgs, scripts, rzk, rzk-js, rzk-src, rzk-js-src, ghcVersion, tools }:
let
inherit (pkgs.haskell.lib) overrideCabal;
misoNix = (import "${inputs.miso.outPath}/default.nix" { inherit (pkgs) system; });
misoNix = (import "${inputs.miso}/default.nix" { inherit (pkgs) system; });
pkgsMiso = misoNix.pkgs;

hpkgs =
# This isn't equivalent to `pkgsMiso.haskell.packages.ghcjs.override` ([link](https://nixos.wiki/wiki/Haskell#Overrides))
# but avoids multiple rebuilds
pkgsMiso.haskell.packages.ghcjs //
{
rzk = overrideCabal
(hpkgs.callCabal2nix rzk rzk-src { })
(x: {
isLibrary = true;
isExecutable = false;
pkgsMiso.haskell.packages.ghcjs.override {
overrides = final: prev: {
mkDerivation = args: prev.mkDerivation (args // {
doCheck = false;
doHaddock = false;
libraryToolDepends = [ pkgs.hpack pkgs.alex pkgs.happy ] ++ (x.libraryToolDepends or [ ]);
testToolDepends = [ pkgs.hpack pkgs.alex pkgs.happy ] ++ (x.testToolDepends or [ ]);
prePatch = "hpack --force";
});
rzk-js = overrideCabal
(hpkgs.callCabal2nix rzk-js rzk-js-src { inherit (hpkgs) rzk; })
(x: {
postInstall = (x.postInstall or "") + ''
cp $out/bin/${rzk-js} .
rm -r $out
cp ${rzk-js} $out
'';
hpack = pkgs.hpack;
rzk = (
(pkgsMiso.haskell.lib.overrideCabal
(prev.callCabal2nix rzk rzk-src { })
(x: {
isLibrary = true;
isExecutable = false;
buildTarget = "lib:rzk";
libraryToolDepends = [ pkgs.hpack pkgs.alex pkgs.happy ] ++ (x.libraryToolDepends or [ ]);
testToolDepends = [ pkgs.alex pkgs.happy ] ++ (x.testToolDepends or [ ]);
}))
).overrideAttrs (x: {
installPhase = builtins.replaceStrings [ "Setup copy" ] [ "Setup copy lib:rzk" ] x.installPhase;
});
rzk-js = overrideCabal
(final.callCabal2nix rzk-js rzk-js-src { })
(x: {
postInstall = (x.postInstall or "") + ''
cp $out/bin/${rzk-js} .
rm -r $out
cp ${rzk-js} $out
'';
});
};
};

hpkgsGHCJS_8_10_7 = pkgs.haskell.packages.ghcjs810.override ({
Expand Down

0 comments on commit 8a70b7f

Please sign in to comment.