nixpkgs/pkgs/tools/misc/qmk/default.nix
2022-09-10 10:15:31 +02:00

85 lines
1.9 KiB
Nix

{ lib
, python3
, pkgsCross
, avrdude
, dfu-programmer
, dfu-util
, gcc-arm-embedded
, gnumake
, teensy-loader-cli
}:
python3.pkgs.buildPythonApplication rec {
pname = "qmk";
version = "1.1.1";
src = python3.pkgs.fetchPypi {
inherit pname version;
sha256 = "sha256-3QKOCevNYfi9+MuCkp36/A4AfZelo4A7RYGbRkF3Mmk=";
};
nativeBuildInputs = with python3.pkgs; [
nose2
setuptools-scm
yapf
];
propagatedBuildInputs = with python3.pkgs; [
appdirs
argcomplete
colorama
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
teensy-loader-cli
gcc-arm-embedded
gnumake
pkgsCross.avr.buildPackages.binutils
pkgsCross.avr.buildPackages.binutils.bintools
pkgsCross.avr.buildPackages.gcc8
pkgsCross.avr.libcCross
];
# buildPythonApplication requires setup.py; the setup.py file crafted below
# acts as a wrapper to setup.cfg
postConfigure = ''
touch setup.py
echo "from setuptools import setup" >> setup.py
echo "setup()" >> setup.py
'';
# no tests implemented
doCheck = false;
meta = with lib; {
homepage = "https://github.com/qmk/qmk_cli";
description = "A 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 babariviere ekleog ];
};
}