at master 1.7 kB view raw
1{ 2 pkgs, 3 stdenv, 4 lib, 5 haskellLib, 6 ghc, 7 all-cabal-hashes, 8 buildHaskellPackages, 9 compilerConfig ? (self: super: { }), 10 packageSetConfig ? (self: super: { }), 11 overrides ? (self: super: { }), 12 initialPackages ? import ./initial-packages.nix, 13 nonHackagePackages ? import ./non-hackage-packages.nix, 14 configurationCommon ? import ./configuration-common.nix, 15 configurationNix ? import ./configuration-nix.nix, 16 configurationArm ? import ./configuration-arm.nix, 17 configurationDarwin ? import ./configuration-darwin.nix, 18 configurationJS ? import ./configuration-ghcjs-9.x.nix, 19}: 20 21let 22 23 inherit (lib) extends makeExtensible; 24 inherit (haskellLib) makePackageSet; 25 26 haskellPackages = pkgs.callPackage makePackageSet { 27 package-set = initialPackages; 28 inherit 29 stdenv 30 haskellLib 31 ghc 32 extensible-self 33 all-cabal-hashes 34 buildHaskellPackages 35 ; 36 }; 37 38 platformConfigurations = 39 lib.optionals stdenv.hostPlatform.isAarch [ 40 (configurationArm { inherit pkgs haskellLib; }) 41 ] 42 ++ lib.optionals stdenv.hostPlatform.isDarwin [ 43 (configurationDarwin { inherit pkgs haskellLib; }) 44 ] 45 ++ lib.optionals stdenv.hostPlatform.isGhcjs [ 46 (configurationJS { inherit pkgs haskellLib; }) 47 ]; 48 49 extensions = lib.composeManyExtensions ( 50 [ 51 (nonHackagePackages { inherit pkgs haskellLib; }) 52 (configurationNix { inherit pkgs haskellLib; }) 53 (configurationCommon { inherit pkgs haskellLib; }) 54 ] 55 ++ platformConfigurations 56 ++ [ 57 compilerConfig 58 packageSetConfig 59 overrides 60 ] 61 ); 62 63 extensible-self = makeExtensible (extends extensions haskellPackages); 64 65in 66 67extensible-self