{ outputs = { self, flake-utils, nixpkgs, }: flake-utils.lib.eachDefaultSystem ( system: let pkgs = nixpkgs.legacyPackages.${system}; in rec { devShells.default = pkgs.mkShell { inputsFrom = [ packages.fpga packages.usbkbd ]; nativeBuildInputs = [ pkgs.gtkwave pkgs.picocom pkgs.usbutils packages.wchisp ]; env = { BSC = pkgs.bluespec; BSC_SRC = pkgs.bluespec.src; }; }; packages = { fpga = pkgs.callPackage ./fpga { }; usbkbd = pkgs.callPackage ./usbkbd { }; wchisp = pkgs.callPackage ./nix/wchisp.nix { }; }; } ) // { nixosModules.default = import ./nix/module.nix; }; }