Provide set of supported platforms

This commit is contained in:
Mikael 2024-08-24 15:00:02 +02:00
parent 39b1c13c5b
commit ad369da0f9
Signed by: mikael
SSH key fingerprint: SHA256:21QyD2Meiot7jOUVitIR5YkGB/XuXdCvLW1hE6dsri0
2 changed files with 26 additions and 13 deletions

View file

@ -74,28 +74,25 @@
in import "${base}/${path}" inputs; in import "${base}/${path}" inputs;
}); });
eachFlakeSystem = lib.genAttrs lib.systems.flakeExposed; eachSystem = fun: lib.mapAttrs fun self.lib.platforms;
eachNixosSystem = lib.systems.flakeExposed
|> lib.systems.parse
|> builtins.filter (sys: sys.isLinux)
|> builtins.attrNames
|> lib.genAttrs;
in { in {
lib = load ./lib "lib" // { lib = load ./lib "lib" // {
inherit load; inherit load;
}; };
overlays = load ./overlay "overlay"; overlays = load ./overlay "overlay";
legacyPackages = eachFlakeSystem (system: legacyPackages = eachSystem (system: platform:
import nixpkgs { import nixpkgs {
inherit system; localSystem = builtins.currentSystem or platform;
crossSystem = platform;
overlays = [ self.overlays.default ]; overlays = [ self.overlays.default ];
}); });
packages = eachFlakeSystem (system: let pkgs = self.legacyPackages.${system}; packages = eachSystem (system: platform:
let pkgs = self.legacyPackages.${system};
in load ./package "package" in load ./package "package"
|> lib.mapAttrs (name: pkg: self.legacyPackages.${system}.callPackage pkg { }) |> lib.mapAttrs (name: pkg: self.legacyPackages.${system}.callPackage pkg { })
|> lib.filterAttrs (name: pkg: lib.meta.availableOn { inherit system; } pkg)); |> lib.filterAttrs (name: pkg: lib.meta.availableOn platform pkg));
nixosModules = load ./nixos/module "module"; nixosModules = load ./nixos/module "module";
@ -120,9 +117,9 @@
homeModules = load ./home/module "module"; homeModules = load ./home/module "module";
homeConfigurations = load ./home/config "home"; homeConfigurations = load ./home/config "home";
devShells = eachFlakeSystem (system: load ./shell "shell" devShells = eachSystem (system: platform: load ./shell "shell"
|> lib.mapAttrs (name: shell: self.legacyPackages.${system}.callPackage shell { }) |> lib.mapAttrs (name: shell: self.legacyPackages.${system}.callPackage shell { })
|> lib.filterAttrs (name: shell: lib.meta.availableOn { inherit system; } shell)); |> lib.filterAttrs (name: shell: lib.meta.availableOn platform shell));
hydraJobs = { hydraJobs = {
package = self.packages; package = self.packages;

16
lib/platforms.nix Normal file
View file

@ -0,0 +1,16 @@
{ nixpkgs, ... }:
let inherit (nixpkgs) lib;
in lib.mapAttrs (system: platform: lib.systems.elaborate platform) {
"x86_64-linux" = {
system = "x86_64-linux";
};
"aarch64-linux" = {
system = "aarch64-linux";
};
"riscv64-linux" = {
system = "riscv64-linux";
};
}