nixpkgs/pkgs/by-name/qm/qmk/package.nix
Emily a5bc214253 qmk: use the default GCC version for AVR
Upstream previously recommended GCC 8 when targeting AVR because
of binary size concerns. They have since removed this warning in
<https://github.com/qmk/qmk_firmware/pull/24206>, as more recent GCC
versions have resolved the issues.

Building `keyboardio/model01` before:

     * The firmware size is fine - 26984/28672 (94%, 1688 bytes free)

And after:

     * The firmware size is fine - 27200/28672 (94%, 1472 bytes free)

+216 bytes (1.008× the total size) is not a big deal. Since upstream
is fine with it these days, we can be too, and not keep around an
unsupported compiler just for QMK.
2024-11-22 18:03:01 +00:00

77 lines
1.6 KiB
Nix

{ lib
, python3
, fetchPypi
, pkgsCross
, avrdude
, dfu-programmer
, dfu-util
, wb32-dfu-updater
, gcc-arm-embedded
, gnumake
, teensy-loader-cli
}:
python3.pkgs.buildPythonApplication rec {
pname = "qmk";
version = "1.1.5";
format = "pyproject";
src = fetchPypi {
inherit pname version;
hash = "sha256-Lv48dSIwxrokuHGcO26FpWRL+PfQ3SN3V+2pt7fmCxE=";
};
nativeBuildInputs = with python3.pkgs; [
setuptools
];
propagatedBuildInputs = with python3.pkgs; [
dotty-dict
hid
hjson
jsonschema
milc
pygments
pyserial
pyusb
pillow
] ++ [ # Binaries need to be in the path so this is in propagatedBuildInputs
avrdude
dfu-programmer
dfu-util
wb32-dfu-updater
teensy-loader-cli
gcc-arm-embedded
gnumake
pkgsCross.avr.buildPackages.binutils
pkgsCross.avr.buildPackages.binutils.bintools
pkgsCross.avr.buildPackages.gcc
pkgsCross.avr.libcCross
];
# no tests implemented
doCheck = false;
meta = with lib; {
homepage = "https://github.com/qmk/qmk_cli";
description = "Program to help users work with QMK Firmware";
longDescription = ''
qmk_cli is a companion tool to QMK firmware. With it, you can:
- Interact with your qmk_firmware tree from any location
- Use qmk clone to pull down anyone's qmk_firmware fork
- Setup and work with your build environment:
- qmk setup
- qmk doctor
- qmk compile
- qmk console
- qmk flash
- qmk lint
- ... and many more!
'';
license = licenses.mit;
maintainers = with maintainers; [ bhipple ekleog ];
mainProgram = "qmk";
};
}