shell.nix (2138B)
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 gdb 18 libiconv 19 pkg-config 20 cmake 21 fontconfig 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 gradle 32 jre 33 openssl 34 libiconv 35 cargo-apk 36 ] ++ lib.optional stdenv.isDarwin [ 37 darwin.apple_sdk.frameworks.Security 38 darwin.apple_sdk.frameworks.OpenGL 39 darwin.apple_sdk.frameworks.CoreServices 40 darwin.apple_sdk.frameworks.AppKit 41 ]; 42 43 } // ( 44 lib.optionalAttrs (!stdenv.isDarwin) { 45 LD_LIBRARY_PATH = "${x11libs}"; 46 #XDG_DATA_DIRS = "${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}:${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}"; 47 } 48 ) // ( 49 lib.optionalAttrs use_android ( 50 let 51 android-nixpkgs = callPackage (fetchTarball android) { }; 52 #ndk-version = "24.0.8215888"; 53 ndk-version = "27.2.12479018"; 54 android-version = "31"; 55 56 android-sdk = android-nixpkgs.sdk (sdkPkgs: with sdkPkgs; [ 57 cmdline-tools-latest 58 build-tools-34-0-0 59 platform-tools 60 platforms-android-31 61 ndk-27-2-12479018 62 #ndk-24-0-8215888 63 ] ++ lib.optional android_emulator emulator); 64 65 android-sdk-path = "${android-sdk.out}/share/android-sdk"; 66 android-ndk-path = "${android-sdk-path}/ndk/${ndk-version}"; 67 68 in 69 { 70 buildInputs = [ android-sdk ]; 71 ANDROID_NDK_ROOT = android-ndk-path; 72 ANDROID_JAR = "${android-sdk-path}/platforms/android-${android-version}/android.jar"; 73 GRADLE_OPTS = "-Dorg.gradle.project.android.aapt2FromMavenOverride=${aapt}/bin/aapt2"; 74 } 75 ) 76 ))