notedeck

One damus client to rule them all
git clone git://jb55.com/notedeck
Log | Files | Refs | README | LICENSE

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 ))