| { |
| description = "Delta Chat for Android"; |
|
|
| inputs = { |
| nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; |
| rust-overlay.url = "github:oxalica/rust-overlay"; |
| flake-utils.url = "github:numtide/flake-utils"; |
| android.url = "github:tadfisher/android-nixpkgs"; |
| }; |
|
|
| outputs = { self, nixpkgs, rust-overlay, flake-utils, android }: |
| flake-utils.lib.eachDefaultSystem (system: |
| let |
| overlays = [ (import rust-overlay) ]; |
| pkgs = import nixpkgs { inherit system overlays; }; |
| android-sdk = android.sdk.${system} (sdkPkgs: |
| with sdkPkgs; [ |
| build-tools-35-0-0 |
| cmdline-tools-latest |
| platform-tools |
| platforms-android-36 |
| ndk-27-2-12479018 |
| ]); |
| rust-version = pkgs.lib.removeSuffix "\n" |
| (builtins.readFile ./scripts/rust-toolchain); |
| in |
| { |
| formatter = pkgs.nixpkgs-fmt; |
|
|
| devShells.default = pkgs.mkShell rec { |
| ANDROID_SDK_ROOT = "${android-sdk}/share/android-sdk"; |
| ANDROID_NDK_ROOT = |
| "${android-sdk}/share/android-sdk/ndk/27.2.12479018"; |
| GRADLE_OPTS = "-Dorg.gradle.project.android.aapt2FromMavenOverride=${ANDROID_SDK_ROOT}/build-tools/35.0.0/aapt2"; |
| buildInputs = [ |
| android-sdk |
| pkgs.openjdk17 |
| (pkgs.buildPackages.rust-bin.stable."${rust-version}".minimal.override { |
| targets = [ |
| "armv7-linux-androideabi" |
| "aarch64-linux-android" |
| "i686-linux-android" |
| "x86_64-linux-android" |
| ]; |
| }) |
| ]; |
| }; |
| }); |
| } |
|
|