{ description = "ECP5 toolchain template project"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-parts = { url = "github:hercules-ci/flake-parts"; inputs.nixpkgs-lib.follows = "nixpkgs"; }; }; outputs = inputs@{flake-parts, ... }: flake-parts.lib.mkFlake { inherit inputs; } { # flake = let # in { # }; # devShells."x86_64-linux".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. # ]; # }; # }; systems = [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin" ]; perSystem = {config, self', inputs', pkgs, system, ...}: { packages.default = pkgs.python3.pkgs.buildPythonPackage { name = "groovylight"; version = "0.0.1"; src = ./.; format = "pyproject"; build-system = [pkgs.python3.pkgs.pdm-backend]; 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. ]; }; }; }; }