summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Purcell <steve@sanityinc.com>2020-07-09 08:50:01 +1200
committerDrashna Jael're <drashna@live.com>2020-08-08 22:26:05 -0700
commit8c0ac47cc4ad74eb3f8e90d286cc374f856ba90b (patch)
tree2b22ae7355391ae96cb2a6bf0d81b34ec5c8d008
parentc00414e42902706b72194a094e863b1e151b8616 (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
+ '';
}