mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge.git
synced 2026-07-27 22:10:40 +02:00
87 lines
2.6 KiB
Nix
87 lines
2.6 KiB
Nix
{
|
|
description = "Gadgetbridge Android development environment";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
android-nixpkgs = {
|
|
url = "github:tadfisher/android-nixpkgs";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
|
|
outputs =
|
|
{
|
|
self,
|
|
nixpkgs,
|
|
android-nixpkgs,
|
|
}:
|
|
let
|
|
system = "x86_64-linux";
|
|
pkgs = import nixpkgs {
|
|
inherit system;
|
|
config.allowUnfree = true;
|
|
};
|
|
|
|
android-composition = android-nixpkgs.sdk.${system} (
|
|
sdkPkgs: with sdkPkgs; [
|
|
cmdline-tools-latest
|
|
build-tools-36-0-0
|
|
platform-tools
|
|
platforms-android-36
|
|
]
|
|
);
|
|
|
|
in
|
|
{
|
|
devShells.${system} = {
|
|
# Main development environment - simple shell with Android tools
|
|
default = pkgs.mkShell {
|
|
buildInputs = with pkgs; [
|
|
jdk21
|
|
android-composition
|
|
adb-sync
|
|
scrcpy
|
|
];
|
|
|
|
shellHook = ''
|
|
echo "🤖 Gadgetbridge development environment"
|
|
|
|
# Set JAVA_HOME for Gradle
|
|
export JAVA_HOME=${pkgs.jdk21}/lib/openjdk
|
|
|
|
# Set Android SDK path
|
|
export ANDROID_SDK_ROOT=${android-composition}/share/android-sdk
|
|
export ANDROID_HOME=$ANDROID_SDK_ROOT
|
|
|
|
# Add Android tools to PATH
|
|
export PATH=$PATH:$ANDROID_SDK_ROOT/platform-tools
|
|
export PATH=$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin
|
|
export PATH=$PATH:$ANDROID_SDK_ROOT/build-tools/36.0.0
|
|
|
|
# Gradle configuration
|
|
export GRADLE_OPTS="-Dorg.gradle.daemon=false -Dorg.gradle.project.android.aapt2FromMavenOverride=$ANDROID_SDK_ROOT/build-tools/36.0.0/aapt2"
|
|
|
|
echo "Java version: $(java -version 2>&1 | head -n1)"
|
|
|
|
# Remove sdk.dir from local.properties if present, otherwise aidl
|
|
# will fail to run
|
|
if [ -f local.properties ]; then
|
|
sed -i -E '/^sdk\.dir=/d' local.properties
|
|
fi
|
|
|
|
echo "✅ Environment ready!"
|
|
echo "• JAVA_HOME: $JAVA_HOME"
|
|
echo "• ANDROID_SDK_ROOT: $ANDROID_SDK_ROOT"
|
|
echo "• Available commands: ./gradlew (alias), adb, aapt2"
|
|
echo ""
|
|
echo "🚀 Quick start:"
|
|
echo " ./gradlew assembleMainlineDebug # Build debug APK"
|
|
echo " ./gradlew installMainlineDebug # Install to connected device"
|
|
echo " ./gradlew test # Run tests"
|
|
echo " ./gradlew lint # Run lint checks"
|
|
'';
|
|
};
|
|
};
|
|
};
|
|
}
|