Provide set of supported platforms
This commit is contained in:
parent
39b1c13c5b
commit
ad369da0f9
2 changed files with 26 additions and 13 deletions
21
flake.nix
21
flake.nix
|
@ -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
16
lib/platforms.nix
Normal 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";
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue