summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Purcell <steve@sanityinc.com>2020-07-09 08:50:01 +1200
committerGitHub <noreply@github.com>2020-07-08 21:50:01 +0100
commit2b55c419ea72225030c884ce818a571ef0247b42 (patch)
treefcfc1eb79d79d5e1887135bf0a0e841ff4f7028c
parent83e1b9ab6eee3ff11b58a905ea2015f92a724cf0 (diff)
shell.nix improvements, and fix problems on Darwin (#9551)
-rw-r--r--shell.nix48
1 files changed, 34 insertions, 14 deletions
diff --git a/shell.nix b/shell.nix
index 78bc005f7e..93db7b371d 100644
--- a/shell.nix
+++ b/shell.nix
@@ -1,25 +1,40 @@
{ avr ? true, arm ? true, teensy ? true }:
let
- overlay = self: super:
- let addDarwinSupport = pkg: pkg.overrideAttrs (oldAttrs: {
- meta.platforms = (oldAttrs.meta.platforms or []) ++ self.lib.platforms.darwin;
- });
- in {
- dfu-programmer = addDarwinSupport super.dfu-programmer;
- teensy-loader-cli = addDarwinSupport super.teensy-loader-cli;
- };
-
nixpkgs = builtins.fetchTarball {
url = "https://github.com/NixOS/nixpkgs/archive/903266491b7b9b0379e88709feca0af900def0d9.tar.gz";
sha256 = "1b5wjrfgyha6s15k1yjyx41hvrpmd5szpkpkxk6l5hyrfqsr8wip";
};
- pkgs = import nixpkgs { overlays = [ overlay ]; };
+ pkgs = import nixpkgs { };
+
+ hjson = with pkgs.python3Packages; buildPythonPackage rec {
+ pname = "hjson";
+ version = "3.0.1";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "1yaimcgz8w0ps1wk28wk9g9zdidp79d14xqqj9rjkvxalvx2f5qx";
+ };
+ doCheck = false;
+ };
+
+ pythonEnv = pkgs.python3.withPackages (p: with p; [
+ # requirements.txt
+ appdirs
+ argcomplete
+ colorama
+ hjson
+ # requirements-dev.txt
+ nose2
+ flake8
+ pep8-naming
+ yapf
+ ]);
in
with pkgs;
-let
+let
avrlibc = pkgsCross.avr.libcCross;
avr_incflags = [
@@ -32,11 +47,11 @@ let
"-L${avrlibc}/avr/lib/avr51"
];
in
-stdenv.mkDerivation {
+mkShell {
name = "qmk-firmware";
- buildInputs = [ dfu-programmer dfu-util diffutils git python3 ]
- ++ lib.optional avr [
+ buildInputs = [ dfu-programmer dfu-util diffutils git pythonEnv ]
+ ++ lib.optional avr [
pkgsCross.avr.buildPackages.binutils
pkgsCross.avr.buildPackages.gcc8
avrlibc
@@ -47,4 +62,9 @@ stdenv.mkDerivation {
AVR_CFLAGS = lib.optional avr avr_incflags;
AVR_ASFLAGS = lib.optional avr avr_incflags;
+ shellHook = ''
+ # Prevent the avr-gcc wrapper from picking up host GCC flags
+ # like -iframework, which is problematic on Darwin
+ unset NIX_TARGET_CFLAGS_COMPILE
+ '';
}