diff options
Diffstat (limited to 'default.nix')
-rw-r--r-- | default.nix | 60 |
1 files changed, 55 insertions, 5 deletions
diff --git a/default.nix b/default.nix index b894aa2..55f96e7 100644 --- a/default.nix +++ b/default.nix @@ -1,9 +1,59 @@ let - nixpkgs-tar = builtins.fetchTarball (import ./pack/nixpkgs.nix); + nixpkgs-tar = builtins.fetchTarball (import ./nixpkgs.nix); nixpkgs = import "${nixpkgs-tar}" {}; nixos = import "${nixpkgs-tar}/nixos"; -in -{ - depo = import ./depo { inherit nixos; }; - pack = import ./pack { inherit nixpkgs; }; + + # a common build function + # + bild = file: + with nixpkgs; + let + pack = import file; + + depsToPackageSet = packageSet: deps: + map (s: builtins.getAttr s packageSet) deps; + + ghc844_ = pkgs.haskell.packages.ghc844.override (oldAttrs: { + overrides = with pkgs.haskell.lib; self: super: { + clay = dontCheck super.clay; + }; + }); + + ghc = ghc844_.ghcWithPackages (hp: depsToPackageSet hp + # we need hinotify for chip/make + ([ "hinotify" ] ++ pack.deps.both ++ pack.deps.apex)); + + ghcjs_ = pkgs.haskell.packages.ghcjs.override (oldAttrs: { + overrides = with pkgs.haskell.lib; self: super: { + clay = dontCheck super.clay; + http-types = dontCheck super.http-types; + tasty-quickcheck = dontCheck super.tasty-quickcheck; + scientific = dontCheck super.scientific; # takes forever + servant = dontCheck super.servant; + comonad = dontCheck super.comonad; + QuickCheck = dontCheck super.QuickCheck; + }; + }); + + ghcjs = ghcjs_.ghcWithPackages (hp: + depsToPackageSet hp (pack.deps.both ++ pack.deps.aero)); + + make = ./chip/make; + in stdenv.mkDerivation { + name = pack.name; + version = "0"; + src = ../.; + nativeBuildInputs = [ + ghc ghcjs + ]; + strictDeps = true; + buildPhase = "${ghc}/bin/runhaskell ${make} ${pack.name}"; + installPhase = '' + mkdir -p $out/bin + cp bild/${pack.name} $out/bin/${pack.name} + ''; + }; +in { + com.simatime = import ./com/simatime.nix { inherit nixos; }; + com.influencedbybooks = import ./com/influencedbybooks/default.nix {}; } |