mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge.git
synced 2026-07-27 22:10:40 +02:00
Added flake.nix for devshell
This commit is contained in:
committed by
Arjan Schrijver
parent
df1b52f1ea
commit
1a0f2361e6
Generated
+104
@@ -0,0 +1,104 @@
|
||||
{
|
||||
"nodes": {
|
||||
"android-nixpkgs": {
|
||||
"inputs": {
|
||||
"devshell": "devshell",
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1756585187,
|
||||
"narHash": "sha256-VbklpDANZTlVPkf2jFJ4m1DEWVnweg9kE1V0gw4gbPQ=",
|
||||
"owner": "tadfisher",
|
||||
"repo": "android-nixpkgs",
|
||||
"rev": "d497bcf5d453223845d16de82ae19872b7c37a8d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tadfisher",
|
||||
"repo": "android-nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"devshell": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"android-nixpkgs",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1741473158,
|
||||
"narHash": "sha256-kWNaq6wQUbUMlPgw8Y+9/9wP0F8SHkjy24/mN3UAppg=",
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"rev": "7c9e793ebe66bcba8292989a68c0419b737a22a0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1756542300,
|
||||
"narHash": "sha256-tlOn88coG5fzdyqz6R93SQL5Gpq+m/DsWpekNFhqPQk=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "d7600c775f877cd87b4f5a831c28aa94137377aa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"android-nixpkgs": "android-nixpkgs",
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
{
|
||||
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 steam-run for Android tools
|
||||
default = pkgs.mkShell {
|
||||
buildInputs = with pkgs; [
|
||||
jdk21
|
||||
android-composition
|
||||
steam-run # Steam-run for running precompiled Android binaries
|
||||
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
|
||||
|
||||
# Create alias for gradlew with steam-run wrapper
|
||||
alias gradlew-nixos='steam-run ./gradlew'
|
||||
|
||||
# Gradle configuration
|
||||
export GRADLE_OPTS="-Dorg.gradle.daemon=false"
|
||||
|
||||
echo "Java version: $(java -version 2>&1 | head -n1)"
|
||||
echo "✅ Environment ready!"
|
||||
echo "• JAVA_HOME: $JAVA_HOME"
|
||||
echo "• ANDROID_SDK_ROOT: $ANDROID_SDK_ROOT"
|
||||
echo "• Available commands: gradlew-nixos (alias), adb, aapt2"
|
||||
echo ""
|
||||
echo "🚀 Quick start:"
|
||||
echo " gradlew-nixos assembleMainlineDebug # Build debug APK"
|
||||
echo " gradlew-nixos installMainlineDebug # Install to connected device"
|
||||
echo " gradlew-nixos test # Run tests"
|
||||
echo " gradlew-nixos lint # Run lint checks"
|
||||
echo ""
|
||||
echo "⚠️ Use 'gradlew-nixos' (alias) instead of 'gradlew' to avoid AAPT2 issues"
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user