diff options
Diffstat (limited to 'nixpkgs/pkgs/servers/klipper/klipper-firmware.nix')
-rw-r--r-- | nixpkgs/pkgs/servers/klipper/klipper-firmware.nix | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/klipper/klipper-firmware.nix b/nixpkgs/pkgs/servers/klipper/klipper-firmware.nix new file mode 100644 index 000000000000..f80cec0b687e --- /dev/null +++ b/nixpkgs/pkgs/servers/klipper/klipper-firmware.nix @@ -0,0 +1,61 @@ +{ stdenv +, lib +, pkg-config +, pkgsCross +, bintools-unwrapped +, libffi +, libusb1 +, wxGTK +, python2 +, python3 +, gcc-arm-embedded +, klipper +, avrdude +, stm32flash +, mcu ? "mcu" +, firmwareConfig ? ./simulator.cfg +}: stdenv.mkDerivation rec { + name = "klipper-firmware-${mcu}-${version}"; + version = klipper.version; + src = klipper.src; + + nativeBuildInputs = [ + python2 + python3 + pkgsCross.avr.stdenv.cc + gcc-arm-embedded + bintools-unwrapped + libffi + libusb1 + avrdude + stm32flash + pkg-config + wxGTK # Required for bossac + ]; + + preBuild = "cp ${firmwareConfig} ./.config"; + + postPatch = '' + patchShebangs . + ''; + + makeFlags = [ + "V=1" + "KCONFIG_CONFIG=${firmwareConfig}" + ]; + + installPhase = '' + mkdir -p $out + cp ./.config $out/config + cp -r out/* $out + ''; + + dontFixup = true; + + meta = with lib; { + inherit (klipper.meta) homepage license; + description = "Firmware part of Klipper"; + maintainers = with maintainers; [ vtuan10 ]; + platforms = platforms.linux; + }; +} |