cynthion-flake/flake.nix
2024-09-21 14:29:57 +02:00

53 lines
1.4 KiB
Nix

{
inputs = {
utils.url = "github:numtide/flake-utils";
nixpkgs.url = "nixpkgs/release-24.05";
};
outputs = {
self,
nixpkgs,
utils,
}: let
platformVersions = ["0D1" "0D2" "0D3" "0D4" "0D5" "0D6" "0D7" "1D0" "1D1" "1D2" "1D3" "1D4"];
bitstreams = ["analyzer" "selftest" "facedancer"];
gateware-matrix = nixpkgs.lib.mapCartesianProduct nixpkgs.lib.trivial.id {
platform = platformVersions;
bitstream = bitstreams;
};
in utils.lib.eachDefaultSystem (system: let
overlays = [
(import ./overlay.nix)
];
pkgs = (import nixpkgs) {
inherit system overlays;
};
inherit (pkgs) lib;
cynthion-gateware-individual = lib.listToAttrs (map ({
platform,
bitstream,
}: {
name = "${bitstream}-${platform}";
value = pkgs.cynthion-gateware-single.override {
inherit bitstream;
platform = "CynthionPlatformRev${platform}";
};
})
gateware-matrix);
in rec {
devShells.default =
pkgs.mkShell {
};
packages = {
inherit (pkgs) packetry cynthion cynthion-udev apollo-cynthion cynthion-gateware apollo-fpga;
inherit cynthion-gateware-individual;
};
})
// {
overlays.default = import ./overlay.nix;
gateware-matrix = {
include = gateware-matrix;
};
};
}