diff --git a/flake.nix b/flake.nix index ececd26c153..1e20fcd40eb 100644 --- a/flake.nix +++ b/flake.nix @@ -11,15 +11,7 @@ lib = import ./lib; - systems = [ - "x86_64-linux" - "i686-linux" - "x86_64-darwin" - "aarch64-linux" - "armv6l-linux" - "armv7l-linux" - "aarch64-darwin" - ]; + systems = lib.systems.supported.hydra; forAllSystems = f: lib.genAttrs systems (system: f system); diff --git a/lib/systems/default.nix b/lib/systems/default.nix index ef609859abb..529eeb6514b 100644 --- a/lib/systems/default.nix +++ b/lib/systems/default.nix @@ -8,6 +8,7 @@ rec { platforms = import ./platforms.nix { inherit lib; }; examples = import ./examples.nix { inherit lib; }; architectures = import ./architectures.nix { inherit lib; }; + supported = import ./supported.nix { inherit lib; }; # Elaborate a `localSystem` or `crossSystem` so that it contains everything # necessary. diff --git a/lib/systems/supported.nix b/lib/systems/supported.nix new file mode 100644 index 00000000000..60bf3074134 --- /dev/null +++ b/lib/systems/supported.nix @@ -0,0 +1,24 @@ +# Supported systems according to RFC0046's definition. +# +# https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md +{ lib }: +rec { + # List of systems that are built by Hydra. + hydra = tier1 ++ tier2 ++ tier3; + + tier1 = [ + "x86_64-linux" + ]; + + tier2 = [ + "aarch64-linux" + "x86_64-darwin" + ]; + + tier3 = [ + "armv6l-linux" + "armv7l-linux" + "i686-linux" + "mipsel-linux" + ]; +}