summary refs log tree commit diff
path: root/shell.nix
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 /shell.nix
parent83e1b9ab6eee3ff11b58a905ea2015f92a724cf0 (diff)
shell.nix improvements, and fix problems on Darwin (#9551)
Diffstat (limited to 'shell.nix')
-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
+  '';
 }