flake now works with pyproject and flake-parts

This commit is contained in:
Saji 2024-09-25 10:13:34 -05:00
parent 20054ad034
commit 79927f0cbd
3 changed files with 91 additions and 77 deletions

View file

@ -1,29 +1,32 @@
{ {
"nodes": { "nodes": {
"flake-utils": { "flake-parts": {
"inputs": { "inputs": {
"systems": "systems" "nixpkgs-lib": [
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1726560853, "lastModified": 1726153070,
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", "narHash": "sha256-HO4zgY0ekfwO5bX0QH/3kJ/h4KvUDFZg8YpkNwIbg1U=",
"owner": "numtide", "owner": "hercules-ci",
"repo": "flake-utils", "repo": "flake-parts",
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", "rev": "bcef6817a8b2aa20a5a6dbb19b43e63c5bf8619a",
"type": "github" "type": "github"
}, },
"original": { "original": {
"id": "flake-utils", "owner": "hercules-ci",
"type": "indirect" "repo": "flake-parts",
"type": "github"
} }
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1723637854, "lastModified": 1726937504,
"narHash": "sha256-med8+5DSWa2UnOqtdICndjDAEjxr5D7zaIiK4pn0Q7c=", "narHash": "sha256-bvGoiQBvponpZh8ClUcmJ6QnsNKw0EMrCQJARK3bI1c=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "c3aa7b8938b17aebd2deecf7be0636000d62a2b9", "rev": "9357f4f23713673f310988025d9dc261c20e70c6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -35,24 +38,9 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"flake-utils": "flake-utils", "flake-parts": "flake-parts",
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
} }
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

120
flake.nix
View file

@ -3,60 +3,82 @@
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-parts = {
url = "github:hercules-ci/flake-parts";
inputs.nixpkgs-lib.follows = "nixpkgs";
};
}; };
outputs = inputs@{ self, nixpkgs, flake-utils, ... }: outputs = inputs@{flake-parts, ... }:
let flake-parts.lib.mkFlake { inherit inputs; } {
python-overlay = import ./python.nix; # flake = let
systems = [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin" ]; # in {
forAllSystems = function: # };
nixpkgs.lib.genAttrs systems (system: function ( # devShells."x86_64-linux".default = pkgs.mkShell {
import nixpkgs { # packages = with pkgs; [
inherit system; # (python3.withPackages (pypkgs: with pypkgs; [
config.allowUnfree = true; # amaranth
overlays = [ # amaranth-boards
python-overlay # ]))
]; # yosys
} # nextpnr
)); # # simulators
in { # iverilog
packages = forAllSystems (pkgs: { # verilator
niar = pkgs.python3.buildPythonPackage { # # support package
name = "niar"; # trellis
version = pyproject-toml.project.version; # # loader
src = ./.; # openfpgaloader
pyproject = true; # ecpdap # easier to poke probes.
# ];
# };
# };
build-system = [pkgs.python3.pdm-backend]; systems = [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin" ];
propagatedBuildInpusts = [ perSystem = {config, self', inputs', pkgs, system, ...}: {
pkgs.python3.amaranth packages.default = pkgs.python3.pkgs.buildPythonPackage {
pkgs.python3.amaranth-boards name = "groovylight";
]; version = "0.0.1";
src = ./.;
format = "pyproject";
doCheck = true; build-system = [pkgs.python3.pkgs.pdm-backend];
nativeCheckInputs = [python3.pkgs.pytestCheckHook];
propagatedBuildInputs = [
pkgs.python3.pkgs.amaranth
pkgs.python3.pkgs.amaranth-boards
];
doCheck = true;
nativeCheckInputs = with pkgs; [
python3.pkgs.pytestCheckHook
yosys
nextpnr
trellis
openfpgaloader
];
};
devShells.default = pkgs.mkShell {
packages = with pkgs; [
(python3.withPackages (pypkgs: with pypkgs; [
amaranth
amaranth-boards
]))
self'.packages.default
yosys
nextpnr
# simulators
iverilog
verilator
# support package
trellis
# loader
openfpgaloader
ecpdap # easier to poke probes.
];
};
}; };
});
devShells = forAllSystems (pkgs: {
default = pkgs.mkShell {
packages = with pkgs; [
(python3.withPackages (pypkgs: with pypkgs; [
amaranth
amaranth-boards
]))
yosys
nextpnr
# simulators
iverilog
verilator
# support package
trellis
# loader
openfpgaloader
ecpdap # easier to poke probes.
];
};
});
}; };
} }

View file

@ -13,6 +13,10 @@ requires-python = "==3.12.*"
readme = "README.md" readme = "README.md"
license = {text = "MIT"} license = {text = "MIT"}
[build-system]
requires = ["pdm-backend"]
build-backend = "pdm.backend"
[tool.pdm.dev-dependencies] [tool.pdm.dev-dependencies]
dev = [ dev = [
"basedpyright", "basedpyright",