litex-overlay/flake.nix

75 lines
1.9 KiB
Nix
Raw Normal View History

2024-04-14 06:16:22 +00:00
{
2025-02-07 15:35:22 +00:00
description = "LiteX overlay to provide those packages";
2024-04-14 06:16:22 +00:00
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
2025-02-07 15:17:26 +00:00
treefmt-nix.url = "github:numtide/treefmt-nix";
2024-04-14 06:16:22 +00:00
};
2025-02-07 15:17:26 +00:00
outputs =
inputs@{
self,
nixpkgs,
treefmt-nix,
...
}:
2024-04-14 06:16:22 +00:00
let
2025-02-07 15:17:26 +00:00
systems = [
"x86_64-linux"
"aarch64-linux"
2025-02-07 15:24:32 +00:00
"riscv64-linux"
2025-02-07 15:17:26 +00:00
"aarch64-darwin"
"x86_64-darwin"
];
forAllSystems =
function:
nixpkgs.lib.genAttrs systems (
system:
function (
import nixpkgs {
inherit system;
config.allowUnfree = true;
overlays = [
self.overlays.default
];
}
)
);
litex-pkgs = import ./pkgs;
treefmtEval = forAllSystems (pkgs: treefmt-nix.lib.evalModule pkgs ./treefmt.nix);
in
{
overlays.default = final: prev: {
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
(
python-final: python-prev:
builtins.mapAttrs (name: value: python-final.callPackage value { }) litex-pkgs
)
];
};
formatter = forAllSystems (pkgs: treefmtEval.${pkgs.system}.config.build.wrapper);
checks = forAllSystems (pkgs: {
formatting = treefmtEval.${pkgs.system}.config.build.check self;
2025-02-08 00:00:09 +00:00
packages = pkgs.symlinkJoin {
name = "all";
paths = pkgs.lib.attrsets.attrValues self.packages.${pkgs.system};
};
2025-02-07 15:17:26 +00:00
});
# this is mainly so that nix-update works. I have no idea if this works without it.
# use at your own peril.
packages = forAllSystems (
pkgs: builtins.mapAttrs (name: value: pkgs.python3Packages.callPackage value { }) litex-pkgs
);
2025-02-07 15:35:22 +00:00
templates.default = {
path = ./templates/default;
description = "basic template to get started with an ecp5";
};
2025-02-07 15:17:26 +00:00
};
2024-04-14 06:16:22 +00:00
}