-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathflake.nix
More file actions
95 lines (77 loc) · 2.89 KB
/
Copy pathflake.nix
File metadata and controls
95 lines (77 loc) · 2.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
};
outputs = { self, nixpkgs }:
let
shell = system:
let
lib = nixpkgs.lib;
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
config.android_sdk.accept_license = true;
};
pkgs-x86_64-linux = import nixpkgs { system = "x86_64-linux"; };
jdk = pkgs.jdk17;
# NOTE: gradle's android plugin v8.13 needs build-tools 35.0.0
#
# NOTE: if you're on aarch64, you will need to add
# the following to `configuration.nix` in order to
# be able to run `aapt2` from build-tools:
#
# ```nix
# boot.binfmt.emulatedSystems = [ "x86_64-linux" ];
# ```
mainBuildToolsVersion = "35.0.0";
composition = pkgs.androidenv.composeAndroidPackages {
platformVersions = [ "36.1" ];
buildToolsVersions = [ mainBuildToolsVersion ];
systemImageTypes = [];
abiVersions = [ "arm64-v8a" ];
includeNDK = true;
includeCmake = false;
includeEmulator = false;
includeSystemImages = false;
includeSources = false;
useGoogleAPIs = false;
};
androidHome = "${composition.androidsdk}/libexec/android-sdk";
localGradleProperties = [
"org.gradle.java.installations.paths=${jdk}/lib/openjdk"
"android.aapt2FromMavenOverride=${androidHome}/build-tools/${mainBuildToolsVersion}/aapt2"
];
in
pkgs.mkShell {
packages = [
# These aren't actually needed to build the project
pkgs.helix
pkgs.lemminx
pkgs.jdt-language-server
pkgs.kotlin-language-server
pkgs.fdroidserver
pkgs.unzip
pkgs.gradle
composition.androidsdk
];
shellHook = ''
# This environment variable is deprecated, but `fdroid build` needs it
export ANDROID_HOME="${androidHome}"
export ANDROID_SDK_ROOT="${androidHome}"
export ANDROID_NDK_ROOT="${androidHome}/ndk-bundle"
export JAVA_HOME="${jdk}/lib/openjdk"
export GRADLE_OPTS="${lib.concatMapStringsSep " " (x: "-D${x}") localGradleProperties}"
set -o allexport
[ -f .env ] && . .env
set +o allexport
shopt -s globstar
'' + lib.optionalString (system != "x86_64-linux") ''
export QEMU_LD_PREFIX="${pkgs-x86_64-linux.glibc}"
'';
};
in
nixpkgs.lib.mergeAttrsList
(nixpkgs.lib.forEach [ "x86_64-linux" "aarch64-linux" ] (system: {
devShell."${system}" = shell system;
}));
}