- 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
101 lines
3.4 KiB
Nix
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";
|
|
};
|
|
};
|
|
}
|