shell.nix (2131B)
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 android-version = "31"; 54 55 android-sdk = android-nixpkgs.sdk (sdkPkgs: with sdkPkgs; [ 56 cmdline-tools-latest 57 build-tools-34-0-0 58 platform-tools 59 platforms-android-31 60 ndk-27-2-12479018 61 #ndk-24-0-8215888 62 ] ++ lib.optional android_emulator emulator); 63 64 android-sdk-path = "${android-sdk.out}/share/android-sdk"; 65 android-ndk-path = "${android-sdk-path}/ndk/${ndk-version}"; 66 67 in 68 { 69 buildInputs = [ android-sdk ]; 70 ANDROID_NDK_ROOT = android-ndk-path; 71 ANDROID_JAR = "${android-sdk-path}/platforms/android-${android-version}/android.jar"; 72 GRADLE_OPTS = "-Dorg.gradle.project.android.aapt2FromMavenOverride=${aapt}/bin/aapt2"; 73 } 74 ) 75 ))