Files
kirdy/flake.nix
linuswck 0aa374e65f flake update
- update for kicad v9.0.5
- After kicad v9.0.3, env var $JOBSET_OUTPUT_WORK_PATH is added. This is useful for special command execution
2025-10-21 17:15:52 +08:00

101 lines
3.4 KiB
Nix

{
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
outputs = {
nixpkgs,
...
}:
let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
kicad-project-name = "kirdy";
kicad-main-version = 9;
aux_psu_production_files = pkgs.stdenv.mkDerivation {
name = "aux_psu-output";
src = ./AUX_PSU;
nativeBuildInputs = [ pkgs.kicad ];
installPhase = ''
# fix "/homeless-shelter cannot be created" error
# see https://github.com/NixOS/nix/issues/670#issuecomment-1211700127
export HOME=$(pwd)
export KICAD${builtins.toString kicad-main-version}_3DMODEL_DIR=${pkgs.kicad.libraries.packages3d}/share/kicad/3dmodels
mkdir -p $out
kicad-cli jobset run ./AUX_PSU.kicad_pro -f ./AUX_PSU.kicad_jobset
cp -r ./result/* $out
'';
};
pcb_production_files = pkgs.stdenv.mkDerivation {
name = "pcb-output";
src = ./src;
nativeBuildInputs = [ pkgs.kicad ];
installPhase = ''
# fix "/homeless-shelter cannot be created" error
# see https://github.com/NixOS/nix/issues/670#issuecomment-1211700127
export HOME=$(pwd)
export KICAD${builtins.toString kicad-main-version}_3DMODEL_DIR=${pkgs.kicad.libraries.packages3d}/share/kicad/3dmodels
mkdir -p $out
kicad-cli jobset run ./kirdy.kicad_pro -f ./kirdy.kicad_jobset
cp -r ./result/* $out
'';
};
front_panel_production_files = pkgs.stdenv.mkDerivation {
name = "panel-output";
src = ./Panel/kirdy_front_panel;
nativeBuildInputs = [ pkgs.kicad ];
installPhase = ''
# fix "/homeless-shelter cannot be created" error
# see https://github.com/NixOS/nix/issues/670#issuecomment-1211700127
export HOME=$(pwd)
export KICAD${builtins.toString kicad-main-version}_3DMODEL_DIR=${pkgs.kicad.libraries.packages3d}/share/kicad/3dmodels
mkdir -p $out
kicad-cli jobset run ./kirdy_front_panel.kicad_pro -f ./kirdy_front_panel.kicad_jobset
cp -r ./result/* $out
'';
};
front_panel_plate_production_files = variant: pkgs.stdenv.mkDerivation {
name = "panel-plate-output";
src = ./Panel/kirdy_fp_fiber_optic_adapter_mounting_plates;
nativeBuildInputs = [ pkgs.kicad ];
installPhase = ''
# fix "/homeless-shelter cannot be created" error
# see https://github.com/NixOS/nix/issues/670#issuecomment-1211700127
export HOME=$(pwd)
export KICAD${builtins.toString kicad-main-version}_3DMODEL_DIR=${pkgs.kicad.libraries.packages3d}/share/kicad/3dmodels
mkdir -p $out
kicad-cli jobset run ./kirdy_fp_fiber_optic_adapter_mounting_plate_${variant}.kicad_pro -f ./kirdy_fp_fiber_optic_adapter_mounting_plate_${variant}.kicad_jobset
cp -r ./result/* $out
'';
};
in
{
formatter.x86_64-linux = pkgs.nixfmt-rfc-style;
devShells.${system}.default = pkgs.mkShell {
name = "kicad-dev-shell";
packages = [
pkgs.kicad
pkgs.freecad
];
};
packages.x86_64-linux = {
"pcb" = pcb_production_files;
"aux_psu" = aux_psu_production_files;
"front_panel" = front_panel_production_files;
"fiber_optic_front_panel_plate_type_1" = front_panel_plate_production_files "type_1";
"fiber_optic_front_panel_plate_type_2" = front_panel_plate_production_files "type_2";
};
};
}