shell.nix (2013B)
1 { pkgs ? import <nixpkgs> { } 2 , android ? "https://github.com/tadfisher/android-nixpkgs/archive/refs/tags/2025-01-27.tar.gz" 3 , use_android ? true 4 , android_emulator ? false 5 }: 6 with pkgs; 7 8 let 9 x11libs = lib.makeLibraryPath [ xorg.libX11 xorg.libXcursor xorg.libXrandr xorg.libXi libglvnd vulkan-loader vulkan-validation-layers libxkbcommon wayland ]; 10 in 11 mkShell ({ 12 nativeBuildInputs = [ 13 #cargo-udeps 14 #cargo-edit 15 #cargo-watch 16 rustup 17 libiconv 18 pkg-config 19 #cmake 20 fontconfig 21 gradle 22 #gtk3 23 #gsettings-desktop-schemas 24 #brotli 25 #wabt 26 #gdb 27 #heaptrack 28 ] ++ lib.optionals (!stdenv.isDarwin) [ 29 zenity 30 ] ++ lib.optionals use_android [ 31 jre 32 openssl 33 libiconv 34 cargo-apk 35 ] ++ lib.optional stdenv.isDarwin [ 36 darwin.apple_sdk.frameworks.Security 37 darwin.apple_sdk.frameworks.OpenGL 38 darwin.apple_sdk.frameworks.CoreServices 39 darwin.apple_sdk.frameworks.AppKit 40 ]; 41 42 } // ( 43 lib.optionalAttrs (!stdenv.isDarwin) { 44 LD_LIBRARY_PATH = "${x11libs}"; 45 #XDG_DATA_DIRS = "${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}:${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}"; 46 } 47 ) // ( 48 lib.optionalAttrs use_android ( 49 let 50 android-nixpkgs = callPackage (fetchTarball android) { }; 51 #ndk-version = "24.0.8215888"; 52 ndk-version = "27.2.12479018"; 53 54 android-sdk = android-nixpkgs.sdk (sdkPkgs: with sdkPkgs; [ 55 cmdline-tools-latest 56 build-tools-34-0-0 57 platform-tools 58 platforms-android-30 59 ndk-27-2-12479018 60 #ndk-24-0-8215888 61 ] ++ lib.optional android_emulator [ emulator ]); 62 63 android-sdk-path = "${android-sdk.out}/share/android-sdk"; 64 android-ndk-path = "${android-sdk-path}/ndk/${ndk-version}"; 65 66 in 67 { 68 buildInputs = [ android-sdk ]; 69 ANDROID_NDK_ROOT = android-ndk-path; 70 GRADLE_OPTS = "-Dorg.gradle.project.android.aapt2FromMavenOverride=${aapt}/bin/aapt2"; 71 } 72 ) 73 ))