nixpkgs/pkgs/development/compilers/elm/default.nix

47 lines
1.8 KiB
Nix
Raw Normal View History

{ lib, stdenv, buildEnv
, haskell, nodejs
, fetchurl, fetchpatch, makeWrapper, git }:
let
fetchElmDeps = import ./fetchElmDeps.nix { inherit stdenv lib fetchurl; };
2018-08-22 00:51:59 +03:00
hsPkgs = haskell.packages.ghc822.override {
2018-08-25 13:52:48 +03:00
overrides = self: super: with haskell.lib;
let elmPkgs = {
2018-08-25 14:01:52 +03:00
elm = overrideCabal (self.callPackage ./packages/elm.nix { }) (drv: {
2018-08-25 13:52:48 +03:00
# sadly with parallelism most of the time breaks compilation
enableParallelBuilding = false;
preConfigure = self.fetchElmDeps {
elmPackages = (import ./packages/elm-srcs.nix);
versionsDat = ./versions.dat;
};
2018-08-25 14:01:52 +03:00
buildTools = drv.buildTools or [] ++ [ makeWrapper ];
patches = [
(fetchpatch {
url = "https://github.com/elm/compiler/pull/1784/commits/78d2d8eab310552b1b877a3e90e1e57e7a09ddec.patch";
sha256 = "0vdhk16xqm2hxw12s1b91a0bmi8w4wsxc086qlzglgnjxrl5b3w4";
})
];
2018-08-25 14:01:52 +03:00
postInstall = ''
wrapProgram $out/bin/elm \
--prefix PATH ':' ${lib.makeBinPath [ nodejs ]}
'';
2018-08-25 13:52:48 +03:00
});
/*
2018-10-03 21:41:58 +03:00
The elm-format expression is updated via a script in the https://github.com/avh4/elm-format repo:
`pacakge/nix/build.sh`
*/
2018-10-03 21:41:58 +03:00
elm-format = self.callPackage ./packages/elm-format.nix {};
inherit fetchElmDeps;
};
in elmPkgs // {
inherit elmPkgs;
2018-08-22 00:51:59 +03:00
elmVersion = elmPkgs.elm.version;
2018-08-25 13:52:48 +03:00
# Needed for elm-format
indents = self.callPackage ./packages/indents.nix {};
2018-10-03 21:41:58 +03:00
tasty-quickcheck = self.callPackage ./packages/tasty-quickcheck.nix {};
};
};
2018-08-22 00:51:59 +03:00
in hsPkgs.elmPkgs