Add shell.nix for NixOS users
This commit is contained in:
parent
809c9258c1
commit
1ad941e984
@ -36,7 +36,15 @@ Debian/Ubuntu example:
|
|||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install gcc unzip wget zip gcc-avr binutils-avr avr-libc dfu-programmer dfu-util gcc-arm-none-eabi binutils-arm-none-eabi libnewlib-arm-none-eabi
|
sudo apt-get install gcc unzip wget zip gcc-avr binutils-avr avr-libc dfu-programmer dfu-util gcc-arm-none-eabi binutils-arm-none-eabi libnewlib-arm-none-eabi
|
||||||
|
|
||||||
# Mac
|
## Nix
|
||||||
|
|
||||||
|
If you're on [NixOS](https://nixos.org/), or have Nix installed on Linux or macOS, run `nix-shell` from the repository root to get a build environment.
|
||||||
|
|
||||||
|
By default, this will download compilers for both AVR and ARM. If you don't need both, disable the `avr` or `arm` arguments, e.g.:
|
||||||
|
|
||||||
|
nix-shell --arg arm false
|
||||||
|
|
||||||
|
## Mac
|
||||||
If you're using [homebrew,](http://brew.sh/) you can use the following commands:
|
If you're using [homebrew,](http://brew.sh/) you can use the following commands:
|
||||||
|
|
||||||
brew tap osx-cross/avr
|
brew tap osx-cross/avr
|
||||||
|
26
shell.nix
Normal file
26
shell.nix
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{ pkgs ? import <nixpkgs> {}
|
||||||
|
, avr ? true, arm ? true }:
|
||||||
|
|
||||||
|
with pkgs;
|
||||||
|
let
|
||||||
|
avr_incflags = [
|
||||||
|
"-isystem ${avrlibc}/avr/include"
|
||||||
|
"-B${avrlibc}/avr/lib/avr5"
|
||||||
|
"-L${avrlibc}/avr/lib/avr5"
|
||||||
|
"-B${avrlibc}/avr/lib/avr35"
|
||||||
|
"-L${avrlibc}/avr/lib/avr35"
|
||||||
|
"-B${avrlibc}/avr/lib/avr51"
|
||||||
|
"-L${avrlibc}/avr/lib/avr51"
|
||||||
|
];
|
||||||
|
in
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "qmk-firmware";
|
||||||
|
|
||||||
|
buildInputs = [ dfu-programmer dfu-util diffutils git ]
|
||||||
|
++ lib.optional avr [ avrbinutils avrgcc avrlibc ]
|
||||||
|
++ lib.optional arm [ gcc-arm-embedded ];
|
||||||
|
|
||||||
|
CFLAGS = lib.optional avr avr_incflags;
|
||||||
|
ASFLAGS = lib.optional avr avr_incflags;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user