# vim: ft=nix : { inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; flake-utils.url = "github:numtide/flake-utils/main"; clef = { url = "path:./clef"; inputs.nixpkgs.follows = "nixpkgs"; inputs.flake-utils.follows = "flake-utils"; }; }; description = "tiny kite-borne sensor node"; outputs = { self, nixpkgs, flake-utils, clef, ... } @ inputs: let mkPkgs = system: import nixpkgs { inherit system; overlays = [ clef.overlays.default ]; }; mkPkg = pkgs: pkgs.clef { name = "ocularium"; src = ./.; main_pcb = "okm.kicad_pcb"; main_sch = "okm.kicad_sch"; layers = 4; outPath = "share/npry/ocularium"; }; in (flake-utils.lib.eachDefaultSystem (system: let pkgs = mkPkgs system; pkg = mkPkg pkgs; in { packages = { default = pkg; ocularium = pkg; }; devShells.default = pkgs.mkShell { name = "devshell"; version = self.rev or "dirty"; packages = with pkgs; [ kicad kikit ]; }; legacyPackages = pkgs // self.packages; }) ) // { overlays = { default = final: prev: self.packages.${prev.system}; }; }; }