34 lines
1.2 KiB
Nix
34 lines
1.2 KiB
Nix
{ config, pkgs, lib, ... }:
|
||
|
||
let
|
||
androidSdkRoot = "${config.home.homeDirectory}/Android/Sdk";
|
||
cfg = config.homeModules.androidstudio;
|
||
in
|
||
lib.mkIf cfg.enable {
|
||
home.packages = with pkgs; [
|
||
android-studio
|
||
# Tools for Android SDK management
|
||
android-tools
|
||
jdk11 # or jdk17 if needed by Android Studio
|
||
gradle
|
||
];
|
||
|
||
# Set up environment variables for Android development
|
||
home.sessionVariables = {
|
||
ANDROID_SDK_ROOT = androidSdkRoot;
|
||
ANDROID_HOME = androidSdkRoot;
|
||
ANDROID_AVD_HOME = "${config.home.homeDirectory}/.android/avd";
|
||
JAVA_HOME = "${pkgs.jdk11}/lib/openjdk"; # Or jdk17 if preferred
|
||
# in _home.nix PATH = lib.mkAfter "${androidSdkRoot}/cmdline-tools/latest/bin:${androidSdkRoot}/platform-tools";
|
||
};
|
||
|
||
# Create needed folders and install SDK components on first run (optional)
|
||
home.activation.setupAndroidSdk = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
|
||
mkdir -p "${androidSdkRoot}"
|
||
if ! [ -x "${androidSdkRoot}/cmdline-tools/latest/bin/sdkmanager" ]; then
|
||
echo "✴️ Installing Android SDK Command-line Tools..."
|
||
cp -r ${pkgs.androidsdk}/cmdline-tools "${androidSdkRoot}/cmdline-tools"
|
||
fi
|
||
'';
|
||
}
|