@@ -37,31 +37,50 @@ dimension "Nixpkgs version" nixpkgsVersions (nixpkgsName: nixpkgs-pin:
37 let pkgs = import pinnedNixpkgsSrc (nixpkgsArgs // { inherit system; });
37 let pkgs = import pinnedNixpkgsSrc (nixpkgsArgs // { inherit system; });
38 build = import ./build.nix { inherit pkgs ifdLevel; };
38 build = import ./build.nix { inherit pkgs ifdLevel; };
39 platformFilter = platformFilterGeneric pkgs system;
39 platformFilter = platformFilterGeneric pkgs system;
41+ inherit (pkgs.haskell-nix.compiler) ghc865 ghc883;
40 in filterAttrsOnlyRecursive (_: v: platformFilter v) {
43 in filterAttrsOnlyRecursive (_: v: platformFilter v) {
41 # Native builds
44 # Native builds
42 # TODO: can we merge this into the general case by picking an appropriate "cross system" to mean native?
45 # TODO: can we merge this into the general case by picking an appropriate "cross system" to mean native?
43− native = pkgs.recurseIntoAttrs {
46+ native = pkgs.recurseIntoAttrs ({
44 inherit (build) tests tools maintainer-scripts maintainer-script-cache;
47 inherit (build) tests tools maintainer-scripts maintainer-script-cache;
48+ ghc = pkgs.recurseIntoAttrs compilers;
49+ } // pkgs.lib.optionalAttrs (ifdLevel >= 1) {
50+ iserv-proxy = pkgs.recurseIntoAttrs (
51+ pkgs.lib.mapAttrs (ghcName: _:
52+ pkgs.ghc-extra-packages."${ghcName}".iserv-proxy.components.exes.iserv-proxy
54+ } // pkgs.lib.optionalAttrs (ifdLevel >= 2) {
45 hello = (pkgs.haskell-nix.hackage-package { name = "hello"; version = "1.0.0.2"; }).components.exes.hello;
55 hello = (pkgs.haskell-nix.hackage-package { name = "hello"; version = "1.0.0.2"; }).components.exes.hello;
46− iserv-proxy = pkgs.ghc-extra-packages.ghc865.iserv-proxy.components.exes.iserv-proxy;
47− ghc = pkgs.recurseIntoAttrs pkgs.haskell-nix.compiler;
51 dimension "Cross system" (crossSystems nixpkgsName genericPkgs system) (crossSystemName: crossSystem:
59 dimension "Cross system" (crossSystems nixpkgsName genericPkgs system) (crossSystemName: crossSystem:
52 # Cross builds
60 # Cross builds
53 let pkgs = import pinnedNixpkgsSrc (nixpkgsArgs // { inherit system crossSystem; });
61 let pkgs = import pinnedNixpkgsSrc (nixpkgsArgs // { inherit system crossSystem; });
54 build = import ./build.nix { inherit pkgs ifdLevel; };
62 build = import ./build.nix { inherit pkgs ifdLevel; };
55− in pkgs.recurseIntoAttrs {
63+ in pkgs.recurseIntoAttrs (pkgs.lib.optionalAttrs (ifdLevel >= 1) {
64+ ghc = pkgs.recurseIntoAttrs compilers;
56 # TODO: look into making tools work when cross compiling
65 # TODO: look into making tools work when cross compiling
57 # inherit (build) tools;
66 # inherit (build) tools;
67+ } // pkgs.lib.optionalAttrs (ifdLevel >= 2) {
68+ remote-iserv = pkgs.recurseIntoAttrs (
69+ pkgs.lib.mapAttrs (ghcName: _:
70+ pkgs.ghc-extra-packages."${ghcName}".remote-iserv.components.exes.remote-iserv
72+ iserv-proxy = pkgs.recurseIntoAttrs (
73+ pkgs.lib.mapAttrs (ghcName: _:
74+ pkgs.ghc-extra-packages."${ghcName}".iserv-proxy.components.exes.iserv-proxy
76+ } // pkgs.lib.optionalAttrs (ifdLevel >= 3) {
58 hello = (pkgs.haskell-nix.hackage-package { name = "hello"; version = "1.0.0.2"; }).components.exes.hello;
77 hello = (pkgs.haskell-nix.hackage-package { name = "hello"; version = "1.0.0.2"; }).components.exes.hello;
59− iserv-proxy = pkgs.ghc-extra-packages.ghc865.iserv-proxy.components.exes.iserv-proxy;
60− remote-iserv = pkgs.ghc-extra-packages.ghc865.remote-iserv.components.exes.remote-iserv;
63 # Tests are broken on aarch64 cross https://github.com/input-output-hk/haskell.nix/issues/513
80 # Tests are broken on aarch64 cross https://github.com/input-output-hk/haskell.nix/issues/513
64− pkgs.lib.optionalAttrs (crossSystemName != "aarch64-multiplatform") { inherit (build) tests; }
81+ pkgs.lib.optionalAttrs (crossSystemName != "aarch64-multiplatform") {
82+ inherit (build) tests;