60 lines
1.8 KiB
Nix
60 lines
1.8 KiB
Nix
{
|
|
description = "Nix dev shell for building matrix-android from the CLI";
|
|
|
|
inputs = {
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
};
|
|
|
|
outputs = { self, flake-utils, nixpkgs }:
|
|
flake-utils.lib.eachDefaultSystem (system:
|
|
let
|
|
pkgs = import nixpkgs {
|
|
inherit system;
|
|
config.allowUnfree = true;
|
|
config.android_sdk.accept_license = true;
|
|
};
|
|
|
|
androidComposition = pkgs.androidenv.composeAndroidPackages {
|
|
platformVersions = [ "31" "35" ];
|
|
buildToolsVersions = [ "30.0.2" "34.0.0" "35.0.0" ];
|
|
includeEmulator = false;
|
|
includeNDK = true;
|
|
includeSources = false;
|
|
includeSystemImages = false;
|
|
};
|
|
|
|
androidSdk = androidComposition.androidsdk;
|
|
androidSdkRoot = "${androidSdk}/libexec/android-sdk";
|
|
in
|
|
{
|
|
devShells.default = pkgs.mkShell {
|
|
packages = [
|
|
pkgs.gradle
|
|
pkgs.jdk17
|
|
androidSdk
|
|
];
|
|
|
|
ANDROID_HOME = androidSdkRoot;
|
|
ANDROID_SDK_ROOT = androidSdkRoot;
|
|
JAVA_HOME = pkgs.jdk17.home;
|
|
|
|
shellHook = ''
|
|
export ANDROID_USER_HOME="$PWD/.android"
|
|
export GRADLE_USER_HOME="$PWD/.gradle"
|
|
export PATH="$ANDROID_SDK_ROOT/platform-tools:$PATH"
|
|
export GRADLE_OPTS="-Dorg.gradle.project.android.aapt2FromMavenOverride=$ANDROID_SDK_ROOT/build-tools/35.0.0/aapt2"
|
|
|
|
cat > local.properties <<EOF
|
|
# Generated by nix develop.
|
|
sdk.dir=$ANDROID_SDK_ROOT
|
|
EOF
|
|
|
|
echo "matrix-android dev shell"
|
|
echo " JAVA_HOME=$JAVA_HOME"
|
|
echo " ANDROID_SDK_ROOT=$ANDROID_SDK_ROOT"
|
|
echo " Build with: gradle assembleDebug"
|
|
'';
|
|
};
|
|
});
|
|
}
|