diff options
| author | Nathan Perry <np@nathanperry.dev> | 2024-08-13 22:30:33 -0400 |
|---|---|---|
| committer | Nathan Perry <np@nathanperry.dev> | 2024-08-14 01:33:04 -0400 |
| commit | 7f5e8f7d7d467f6dd3321cfa7eb276396a21dc69 (patch) | |
| tree | d64184ea5aa538d463cf8f51a67f6daa7f063372 /nix/default.nix | |
| parent | 37a3b0286918bdb02864b6b57aeb059d6061bc2c (diff) | |
nix: rewrite expressions to be generic
Diffstat (limited to 'nix/default.nix')
| -rw-r--r-- | nix/default.nix | 60 |
1 files changed, 45 insertions, 15 deletions
diff --git a/nix/default.nix b/nix/default.nix index 2c5ac7a..eee258c 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -1,22 +1,52 @@ { pkgs, + + src, + main_pcb, + main_sch, + + name, + outPath ? "share/npry/clef", + layers ? 2, }: let - panel = pkgs.callPackage ./panel.nix {}; - svgs = pkgs.callPackage ./svg.nix { inherit panel; }; - model = pkgs.callPackage ./model.nix { inherit panel; }; - fabrication = pkgs.callPackage ./fabrication.nix { inherit panel; }; + pcb_path = main_pcb; + sch_path = main_sch; + + pcb_args = { + inherit pcb_path src; + }; + + panelSrc = pkgs.callPackage ./panel.nix pcb_args; + panel = pkgs.callPackage ./. { + src = "${panelSrc}/share/npry/clef/panel"; + main_pcb = "panel.kicad_pcb"; + + name = "${name}.sub.panel"; + outPath = "${outPath}/panel"; + + inherit main_sch layers; + }; + + svg = pkgs.callPackage ./svg.nix (pcb_args // { nLayer = layers; }); + model = pkgs.callPackage ./model.nix pcb_args; + + fabrication = pkgs.callPackage ./fabrication.nix (pcb_args // { + inherit sch_path; + }); - full = pkgs.symlinkJoin { - name = "ocularium"; - paths = [ - panel - svgs - model - fabrication - ]; + schematic = pkgs.callPackage ./schematic.nix { + inherit sch_path src; }; -in { - inherit panel svgs model fabrication full; - fab = fabrication; +in pkgs.callPackage ./board.nix { + inherit + svg + model + fabrication + schematic + name + outPath + panel + panelSrc + ; } |
