| 
1 |  | -{ pkgs ? import <nixpkgs> { }  | 
2 |  | -, android ? "https://github.com/tadfisher/android-nixpkgs/archive/refs/tags/2024-04-02.tar.gz"  | 
 | 1 | +{ android ? "https://github.com/tadfisher/android-nixpkgs/archive/refs/tags/2024-04-02.tar.gz"  | 
3 | 2 | , use_android ? true  | 
4 | 3 | , android_emulator ? false  | 
5 | 4 | }:  | 
6 |  | -with pkgs;  | 
 | 5 | +with import <nixpkgs>  | 
 | 6 | +{  | 
 | 7 | +  overlays = [  | 
 | 8 | +    (import (builtins.fetchTarball {  | 
 | 9 | +      url = "https://github.com/oxalica/rust-overlay/archive/master.tar.gz";  | 
 | 10 | +    }))  | 
 | 11 | +  ];  | 
 | 12 | +  config = {  | 
 | 13 | +    android_sdk.accept_license = use_android;  | 
 | 14 | +    allowUnfree = use_android;  | 
 | 15 | +  };  | 
 | 16 | +};  | 
7 | 17 | 
 
  | 
8 | 18 | let  | 
9 | 19 |   x11libs = lib.makeLibraryPath [ xorg.libX11 xorg.libXcursor xorg.libXrandr xorg.libXi libglvnd vulkan-loader vulkan-validation-layers libxkbcommon ];  | 
 | 20 | +  rustc = (rust-bin.fromRustupToolchainFile ./rust-toolchain).override {  | 
 | 21 | +    targets = [ ] ++  | 
 | 22 | +      (lib.optionals (stdenv.isLinux && use_android) [  | 
 | 23 | +        "aarch64-linux-android"  | 
 | 24 | +      ]) ++  | 
 | 25 | +      (lib.optionals (stdenv.isLinux && stdenv.isx86_64 && use_android && android_emulator) [  | 
 | 26 | +        "x86_64-linux-android"  | 
 | 27 | +      ]) ++  | 
 | 28 | +      (lib.optionals (stdenv.isLinux && stdenv.isx86_64) [  | 
 | 29 | +        "x86_64-unknown-linux-gnu"  | 
 | 30 | +      ]) ++  | 
 | 31 | +      (lib.optionals (stdenv.isLinux && !stdenv.isx86_64) [  | 
 | 32 | +        "aarch64-unknown-linux-gnu"  | 
 | 33 | +      ]) ++  | 
 | 34 | +      (lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [  | 
 | 35 | +        "x86_64-apple-darwin"  | 
 | 36 | +      ]) ++  | 
 | 37 | +      (lib.optionals (stdenv.isDarwin && !stdenv.isx86_64) [  | 
 | 38 | +        "aarch64-apple-darwin"  | 
 | 39 | +      ])  | 
 | 40 | +    ;  | 
 | 41 | +  };  | 
10 | 42 | in  | 
11 | 43 | mkShell ({  | 
12 | 44 |   nativeBuildInputs = [  | 
 | 45 | +    rustc  | 
13 | 46 |     #cargo-udeps  | 
14 | 47 |     #cargo-edit  | 
15 | 48 |     #cargo-watch  | 
16 |  | -    rustup  | 
17 |  | -    rustfmt  | 
 | 49 | +    # rustup  | 
 | 50 | +    # rustfmt  | 
18 | 51 |     libiconv  | 
19 | 52 |     pkg-config  | 
20 | 53 |     #cmake  | 
@@ -45,13 +78,17 @@ mkShell ({  | 
45 | 78 |       android-nixpkgs = callPackage (fetchTarball android) { };  | 
46 | 79 |       ndk-version = "24.0.8215888";  | 
47 | 80 | 
 
  | 
48 |  | -      android-sdk = android-nixpkgs.sdk (sdkPkgs: with sdkPkgs; [  | 
49 |  | -        cmdline-tools-latest  | 
50 |  | -        build-tools-34-0-0  | 
51 |  | -        platform-tools  | 
52 |  | -        platforms-android-30  | 
53 |  | -        ndk-24-0-8215888  | 
54 |  | -      ] ++ lib.optional android_emulator [ emulator ]);  | 
 | 81 | +      android-sdk = android-nixpkgs.sdk  | 
 | 82 | +        (sdkPkgs: with sdkPkgs; [  | 
 | 83 | +          cmdline-tools-latest  | 
 | 84 | +          build-tools-34-0-0  | 
 | 85 | +          platform-tools  | 
 | 86 | +          platforms-android-30  | 
 | 87 | +          ndk-24-0-8215888  | 
 | 88 | +        ] ++  | 
 | 89 | +        (lib.optionals android_emulator [ emulator ]) ++  | 
 | 90 | +        (lib.optionals (android_emulator && stdenv.isx86_64) [ system-images-android-34-google-apis-x86-64 ]) ++  | 
 | 91 | +        (lib.optionals (android_emulator && !stdenv.isx86_64) [ system-images-android-34-google-apis-arm64-v8a ]));  | 
55 | 92 | 
 
  | 
56 | 93 |       android-sdk-path = "${android-sdk.out}/share/android-sdk";  | 
57 | 94 |       android-ndk-path = "${android-sdk-path}/ndk/${ndk-version}";  | 
 | 
0 commit comments