1{ buildPackages, pkgs, pkgs_i686, targetPackages
2, includeSources ? true
3}:
4
5rec {
6 platformTools = import ./platform-tools.nix {
7 inherit buildPackages pkgs;
8 };
9
10 buildTools = import ./build-tools.nix {
11 inherit (pkgs) stdenv fetchurl unzip zlib file;
12 stdenv_32bit = pkgs_i686.stdenv;
13 zlib_32bit = pkgs_i686.zlib;
14 ncurses_32bit = pkgs_i686.ncurses5;
15 ncurses = pkgs.ncurses5;
16 };
17
18 support = import ./support.nix {
19 inherit (pkgs) stdenv fetchurl unzip;
20 };
21
22 supportRepository = import ./support-repository.nix {
23 inherit (pkgs) stdenv fetchurl unzip;
24 };
25
26 platforms = if (pkgs.stdenv.system == "i686-linux" || pkgs.stdenv.system == "x86_64-linux")
27 then import ./platforms-linux.nix {
28 inherit (pkgs) stdenv fetchurl unzip;
29 }
30 else if pkgs.stdenv.system == "x86_64-darwin"
31 then import ./platforms-macosx.nix {
32 inherit (pkgs) stdenv fetchurl unzip;
33 }
34 else throw "Platform: ${pkgs.stdenv.system} not supported!";
35
36 sysimages = import ./sysimages.nix {
37 inherit (pkgs) stdenv fetchurl unzip;
38 };
39
40 addons = import ./addons.nix {
41 inherit (pkgs) stdenv fetchurl unzip;
42 };
43
44 sources = import ./sources.nix {
45 inherit (pkgs) stdenv fetchurl unzip;
46 };
47
48 androidsdk = import ./androidsdk.nix {
49 inherit (pkgs) stdenv fetchurl unzip makeWrapper;
50 inherit (pkgs) zlib glxinfo freetype fontconfig glib gtk2 atk libGLU_combined file alsaLib jdk coreutils libpulseaudio dbus;
51 inherit (pkgs.xorg) libX11 libXext libXrender libxcb libXau libXdmcp libXtst xkeyboardconfig;
52
53 inherit platformTools buildTools support supportRepository platforms sysimages addons sources includeSources;
54
55 stdenv_32bit = pkgs_i686.stdenv;
56 };
57
58 androidsdk_2_1 = androidsdk {
59 platformVersions = [ "7" ];
60 abiVersions = [ "armeabi-v7a" ];
61 useGoogleAPIs = true;
62 };
63
64 androidsdk_2_2 = androidsdk {
65 platformVersions = [ "8" ];
66 abiVersions = [ "armeabi-v7a" ];
67 useGoogleAPIs = true;
68 };
69
70 androidsdk_2_3_3 = androidsdk {
71 platformVersions = [ "10" ];
72 abiVersions = [ "armeabi-v7a" ];
73 useGoogleAPIs = true;
74 };
75
76 androidsdk_3_0 = androidsdk {
77 platformVersions = [ "11" ];
78 abiVersions = [ "armeabi-v7a" ];
79 useGoogleAPIs = true;
80 };
81
82 androidsdk_3_1 = androidsdk {
83 platformVersions = [ "12" ];
84 abiVersions = [ "armeabi-v7a" ];
85 useGoogleAPIs = true;
86 };
87
88 androidsdk_3_2 = androidsdk {
89 platformVersions = [ "13" ];
90 abiVersions = [ "armeabi-v7a" ];
91 useGoogleAPIs = true;
92 };
93
94 androidsdk_4_0 = androidsdk {
95 platformVersions = [ "14" ];
96 abiVersions = [ "armeabi-v7a" ];
97 useGoogleAPIs = true;
98 };
99
100 androidsdk_4_0_3 = androidsdk {
101 platformVersions = [ "15" ];
102 abiVersions = [ "armeabi-v7a" ];
103 useGoogleAPIs = true;
104 };
105
106 androidsdk_4_1 = androidsdk {
107 platformVersions = [ "16" ];
108 abiVersions = [ "armeabi-v7a" ];
109 useGoogleAPIs = true;
110 };
111
112 androidsdk_4_2 = androidsdk {
113 platformVersions = [ "17" ];
114 abiVersions = [ "armeabi-v7a" ];
115 useGoogleAPIs = true;
116 };
117
118 androidsdk_4_3 = androidsdk {
119 platformVersions = [ "18" ];
120 abiVersions = [ "armeabi-v7a" "x86" ];
121 useGoogleAPIs = true;
122 };
123
124 androidsdk_4_4 = androidsdk {
125 platformVersions = [ "19" ];
126 abiVersions = [ "armeabi-v7a" "x86" ];
127 useGoogleAPIs = true;
128 };
129
130 androidsdk_5_0_1 = androidsdk {
131 platformVersions = [ "21" ];
132 abiVersions = [ "armeabi-v7a" "x86" ];
133 useGoogleAPIs = true;
134 };
135
136 androidsdk_5_0_1_extras = androidsdk {
137 platformVersions = [ "21" ];
138 abiVersions = [ "armeabi-v7a" "x86" ];
139 useGoogleAPIs = true;
140 useExtraSupportLibs = true;
141 useGooglePlayServices = true;
142 };
143
144 androidsdk_5_1_1 = androidsdk {
145 platformVersions = [ "22" ];
146 abiVersions = [ "armeabi-v7a" "x86" "x86_64"];
147 useGoogleAPIs = true;
148 };
149
150 androidsdk_5_1_1_extras = androidsdk {
151 platformVersions = [ "22" ];
152 abiVersions = [ "armeabi-v7a" "x86" "x86_64"];
153 useGoogleAPIs = true;
154 useExtraSupportLibs = true;
155 useGooglePlayServices = true;
156 };
157
158 androidsdk_6_0 = androidsdk {
159 platformVersions = [ "23" ];
160 abiVersions = [ "armeabi-v7a" "x86" "x86_64"];
161 useGoogleAPIs = true;
162 };
163
164 androidsdk_6_0_extras = androidsdk {
165 platformVersions = [ "23" ];
166 abiVersions = [ "armeabi-v7a" "x86" "x86_64"];
167 useGoogleAPIs = true;
168 useExtraSupportLibs = true;
169 useGooglePlayServices = true;
170 useInstantApps = true;
171 };
172
173 androidsdk_7_0 = androidsdk {
174 platformVersions = [ "24" ];
175 abiVersions = [ "x86" "x86_64"];
176 useGoogleAPIs = true;
177 };
178
179 androidsdk_7_0_extras = androidsdk {
180 platformVersions = [ "24" ];
181 abiVersions = [ "x86" "x86_64"];
182 useGoogleAPIs = true;
183 useExtraSupportLibs = true;
184 useGooglePlayServices = true;
185 useInstantApps = true;
186 };
187
188 androidsdk_7_1_1 = androidsdk {
189 platformVersions = [ "25" ];
190 abiVersions = [ "x86" "x86_64"];
191 useGoogleAPIs = true;
192 };
193
194 androidsdk_7_1_1_extras = androidsdk {
195 platformVersions = [ "25" ];
196 abiVersions = [ "x86" "x86_64"];
197 useGoogleAPIs = true;
198 useExtraSupportLibs = true;
199 useGooglePlayServices = true;
200 useInstantApps = true;
201 };
202
203 androidsdk_8_0 = androidsdk {
204 platformVersions = [ "26" ];
205 abiVersions = [ "x86" "x86_64"];
206 useGoogleAPIs = true;
207 };
208
209 androidsdk_8_0_extras = androidsdk {
210 platformVersions = [ "26" ];
211 abiVersions = [ "x86" "x86_64"];
212 useGoogleAPIs = true;
213 useExtraSupportLibs = true;
214 useGooglePlayServices = true;
215 useInstantApps = true;
216 };
217
218 androidndk = import ./androidndk.nix {
219 inherit (buildPackages)
220 p7zip makeWrapper;
221 inherit (pkgs)
222 stdenv fetchurl zlib ncurses lib
223 coreutils file findutils gawk gnugrep gnused jdk which;
224 inherit platformTools;
225 };
226
227 androidndk_r8e = import ./androidndk_r8e.nix {
228 inherit (buildPackages)
229 makeWrapper;
230 inherit (pkgs)
231 stdenv fetchurl zlib ncurses lib
232 coreutils file findutils gawk gnugrep gnused jdk which;
233 inherit platformTools;
234 };
235
236 buildApp = import ./build-app.nix {
237 inherit (pkgs) stdenv jdk ant gnumake gawk file which;
238 inherit androidsdk androidndk;
239 };
240
241 emulateApp = import ./emulate-app.nix {
242 inherit (pkgs) stdenv;
243 inherit androidsdk;
244 };
245
246 androidndkPkgs = import ./androidndk-pkgs.nix {
247 inherit (buildPackages)
248 makeWrapper;
249 inherit (pkgs)
250 lib hostPlatform targetPlatform
251 runCommand wrapBintoolsWith wrapCCWith;
252 # buildPackages.foo rather than buildPackages.buildPackages.foo would work,
253 # but for splicing messing up on infinite recursion for the variants we
254 # *dont't* use. Using this workaround, but also making a test to ensure
255 # these two really are the same.
256 buildAndroidndk = buildPackages.buildPackages.androidenv.androidndk;
257 inherit androidndk;
258 targetAndroidndkPkgs = targetPackages.androidenv.androidndkPkgs;
259 };
260}