-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathflake.nix
113 lines (107 loc) · 3.27 KB
/
flake.nix
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
old-nixpkgs.url = "github:NixOS/nixpkgs/0c19708cf035f50d28eb4b2b8e7a79d4dc52f6bb";
flake-utils.url = "github:numtide/flake-utils";
rust-overlay = {
url = "github:oxalica/rust-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{
nixpkgs,
old-nixpkgs,
flake-utils,
rust-overlay,
...
}:
flake-utils.lib.eachDefaultSystem (
system:
let
pkgs = import nixpkgs {
inherit system;
overlays = [
(final: prev: {
inherit (old-nixpkgs.legacyPackages.${system}) webkitgtk_4_1;
})
rust-overlay.overlays.default
];
config = {
allowUnfree = true;
android_sdk.accept_license = true;
};
};
rust-toolchain = pkgs.rust-bin.stable.latest.default.override {
targets = [
"x86_64-unknown-linux-gnu"
"x86_64-linux-android"
"aarch64-linux-android"
"armv7-linux-androideabi"
"i686-linux-android"
];
};
androidComposition = pkgs.androidenv.composeAndroidPackages {
cmdLineToolsVersion = "13.0";
toolsVersion = "26.1.1";
platformToolsVersion = "35.0.1";
buildToolsVersions = [
"30.0.3"
"34.0.0"
];
includeEmulator = false;
platformVersions = [
"28"
"29"
"30"
"33"
"34"
];
includeSources = false;
includeSystemImages = false;
systemImageTypes = [ "google_apis_playstore" ];
abiVersions = [
"armeabi-v7a"
"arm64-v8a"
];
cmakeVersions = [ "3.10.2" ];
includeNDK = true;
ndkVersions = [ "26.3.11579264" ];
useGoogleAPIs = false;
useGoogleTVAddOns = false;
includeExtras = [ "extras;google;gcm" ];
};
in
rec {
packages.default = pkgs.callPackage ./package.nix { };
devShells.default = pkgs.mkShell {
inherit (packages.default) buildInputs;
nativeBuildInputs =
packages.default.nativeBuildInputs
++ (with pkgs; [
rustc
gcc
rustfmt
clippy
]);
};
devShells.android = pkgs.mkShell rec {
inherit (packages.default) buildInputs;
nativeBuildInputs =
packages.default.nativeBuildInputs
++ [
rust-toolchain
androidComposition.androidsdk
]
++ (with pkgs; [
jdk17
gradle
]);
ANDROID_HOME = "${androidComposition.androidsdk}/libexec/android-sdk";
NDK_HOME = "${ANDROID_HOME}/ndk-bundle";
GRADLE_OPTS = "-Dorg.gradle.project.android.aapt2FromMavenOverride=${androidComposition.androidsdk}/libexec/android-sdk/build-tools/34.0.0/aapt2";
XDG_DATA_DIRS = "${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}:${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}";
};
}
);
}