Commit | Line | Data |
---|---|---|
8dc9764f | 1 | { avr ? true, arm ? true, teensy ? true }: |
1ad941e9 | 2 | |
1ad941e9 | 3 | let |
8dc9764f JW |
4 | overlay = self: super: |
5 | let addDarwinSupport = pkg: pkg.overrideAttrs (oldAttrs: { | |
6 | meta.platforms = (oldAttrs.meta.platforms or []) ++ self.lib.platforms.darwin; | |
7 | }); | |
8 | in { | |
9 | dfu-programmer = addDarwinSupport super.dfu-programmer; | |
10 | teensy-loader-cli = addDarwinSupport super.teensy-loader-cli; | |
11 | ||
12 | avrgcc = super.avrgcc.overrideAttrs (oldAttrs: rec { | |
13 | name = "avr-gcc-8.1.0"; | |
14 | src = super.fetchurl { | |
15 | url = "mirror://gcc/releases/gcc-8.1.0/gcc-8.1.0.tar.xz"; | |
16 | sha256 = "0lxil8x0jjx7zbf90cy1rli650akaa6hpk8wk8s62vk2jbwnc60x"; | |
17 | }; | |
18 | }); | |
19 | }; | |
5e52eda0 | 20 | |
8dc9764f JW |
21 | nixpkgs = builtins.fetchTarball { |
22 | url = "https://github.com/NixOS/nixpkgs/archive/0260747427737b980f0.tar.gz"; | |
23 | sha256 = "1p2yc6b40xvvxvmlqd9wb440pkrimnlc2wsbpa5rddlpx1dn8qmf"; | |
24 | }; | |
25 | ||
26 | pkgs = import nixpkgs { overlays = [ overlay ]; }; | |
27 | in | |
28 | ||
29 | with pkgs; | |
30 | let avr_incflags = [ | |
1ad941e9 LW |
31 | "-isystem ${avrlibc}/avr/include" |
32 | "-B${avrlibc}/avr/lib/avr5" | |
33 | "-L${avrlibc}/avr/lib/avr5" | |
34 | "-B${avrlibc}/avr/lib/avr35" | |
35 | "-L${avrlibc}/avr/lib/avr35" | |
36 | "-B${avrlibc}/avr/lib/avr51" | |
37 | "-L${avrlibc}/avr/lib/avr51" | |
38 | ]; | |
39 | in | |
1ad941e9 LW |
40 | stdenv.mkDerivation { |
41 | name = "qmk-firmware"; | |
42 | ||
e05b32d8 | 43 | buildInputs = [ dfu-programmer dfu-util diffutils git python3 ] |
1f5d5e53 | 44 | ++ lib.optional avr [ avrbinutils avrgcc avrlibc avrdude ] |
833ec849 RV |
45 | ++ lib.optional arm [ gcc-arm-embedded ] |
46 | ++ lib.optional teensy [ teensy-loader-cli ]; | |
1ad941e9 | 47 | |
b438c6f8 NB |
48 | AVR_CFLAGS = lib.optional avr avr_incflags; |
49 | AVR_ASFLAGS = lib.optional avr avr_incflags; | |
1ad941e9 | 50 | } |