shell.nix improvements, and fix problems on Darwin (#9551)
This commit is contained in:
		
							parent
							
								
									83e1b9ab6e
								
							
						
					
					
						commit
						2b55c419ea
					
				
					 1 changed files with 34 additions and 14 deletions
				
			
		
							
								
								
									
										48
									
								
								shell.nix
									
										
									
									
									
								
							
							
						
						
									
										48
									
								
								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
 | 
			
		||||
  '';
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue