From c932857e02c78a0395aca618354f8f4d8c59e6d0 Mon Sep 17 00:00:00 2001 From: Nathan Perry Date: Tue, 13 Aug 2024 04:23:03 -0400 Subject: nix: init --- nix/model.nix | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 nix/model.nix (limited to 'nix/model.nix') diff --git a/nix/model.nix b/nix/model.nix new file mode 100644 index 0000000..daa86ca --- /dev/null +++ b/nix/model.nix @@ -0,0 +1,53 @@ +{ + kicad, + runCommand, + + nix-filter, + + panel, + + withTracks ? false, + withZones ? false, +}: let + zonesArg = if withZones then "--include-zones" else ""; + tracksArg = if withTracks then "--include-tracks" else ""; + +in runCommand "ocularium.model" { + nativeBuildInputs = [ + kicad + ]; + + src = nix-filter { + root = ./..; + + exclude = [ + "nix" + ".gitignore" + "flake.nix" + "flake.lock" + ".envrc" + "kikit" + ]; + }; + + allowedRequisites = []; + + KICAD8_3DMODEL_DIR = "${kicad.libraries.packages3d}/share/kicad/3dmodels"; +} '' + set -e + + mkdir -p $out/share/npry/ocularium/model + mkdir -p $out/share/npry/ocularium/panel/model + + export HOME=$(mktemp -d) + + cd $out/share/npry/ocularium/model + + kicad-cli pcb export step --subst-models --no-dnp ${tracksArg} ${zonesArg} $src/okm.kicad_pcb -o ocularium.step + kicad-cli pcb export glb --subst-models --no-dnp ${tracksArg} ${zonesArg} $src/okm.kicad_pcb -o ocularium.glb + + cd ../panel/model + + kicad-cli pcb export step --subst-models --no-dnp ${tracksArg} ${zonesArg} ${panel}/share/npry/ocularium/panel.kicad_pcb -o panel.step + kicad-cli pcb export glb --subst-models --no-dnp ${tracksArg} ${zonesArg} ${panel}/share/npry/ocularium/panel.kicad_pcb -o panel.glb +'' -- cgit v1.3.1