blob: 43f52be7a215b9d595992bd2fcd08a1dda1f2e4b [file] [log] [blame]
Tao Bao30e31142019-04-09 00:12:30 -07001// Copyright (C) 2019 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
Tao Bao3c7b2a62019-08-07 12:24:20 -070015//
16// Module-specific defaults.
17//
18// For module X, if we need to build it both as a library and an executable:
19// - A default rule `releasetools_X_defaults` is created, which lists `srcs`, `libs` and
20// `required` properties.
21// - `python_library_host` and `python_binary_host` are created by listing
22// `releasetools_X_defaults` in their defaults.
23//
24
25python_defaults {
26 name: "releasetools_add_img_to_target_files_defaults",
27 srcs: [
28 "add_img_to_target_files.py",
29 ],
30 libs: [
31 "releasetools_build_image",
32 "releasetools_build_super_image",
33 "releasetools_common",
34 ],
35 required: [
36 "care_map_generator",
37 ],
38}
39
40python_defaults {
41 name: "releasetools_build_image_defaults",
42 srcs: [
43 "build_image.py",
44 ],
45 libs: [
46 "releasetools_common",
47 "releasetools_verity_utils",
48 ],
49 required: [
50 "blk_alloc_to_base_fs",
51 "e2fsck",
52 "simg2img",
53 "tune2fs",
54 ],
55}
56
57python_defaults {
58 name: "releasetools_build_super_image_defaults",
59 srcs: [
60 "build_super_image.py",
61 ],
62 libs: [
63 "releasetools_common",
64 ],
65}
66
67python_defaults {
68 name: "releasetools_img_from_target_files_defaults",
69 srcs: [
70 "img_from_target_files.py",
71 ],
72 libs: [
73 "releasetools_build_super_image",
74 "releasetools_common",
75 ],
76}
77
78python_defaults {
Yifan Honge3ba82c2019-08-21 13:29:30 -070079 name: "releasetools_check_target_files_vintf_defaults",
80 srcs: [
81 "check_target_files_vintf.py",
82 ],
83 libs: [
84 "releasetools_common",
85 ],
86 required: [
87 "checkvintf",
88 ],
89}
90
91python_defaults {
Tao Bao3c7b2a62019-08-07 12:24:20 -070092 name: "releasetools_ota_from_target_files_defaults",
93 srcs: [
94 "edify_generator.py",
95 "ota_from_target_files.py",
96 "target_files_diff.py",
97 ],
98 libs: [
99 "releasetools_common",
100 "releasetools_verity_utils",
101 ],
102 required: [
103 "brillo_update_payload",
104 ],
105}
106
107//
108// Host libraries.
109//
110
Tao Bao30e31142019-04-09 00:12:30 -0700111python_defaults {
Tao Bao2bbb07c2019-05-07 13:12:21 -0700112 name: "releasetools_library_defaults",
Tao Bao30e31142019-04-09 00:12:30 -0700113 version: {
114 py2: {
115 enabled: true,
Tao Bao30e31142019-04-09 00:12:30 -0700116 },
117 py3: {
Tao Baoca82fc92019-05-01 21:58:03 -0700118 enabled: true,
Tao Bao30e31142019-04-09 00:12:30 -0700119 },
120 },
121}
122
123python_library_host {
Tao Bao3c7b2a62019-08-07 12:24:20 -0700124 name: "releasetools_add_img_to_target_files",
125 defaults: [
126 "releasetools_library_defaults",
127 "releasetools_add_img_to_target_files_defaults",
128 ],
129}
130
131python_library_host {
132 name: "releasetools_apex_utils",
Tao Bao005305a2019-08-05 13:00:44 -0700133 defaults: ["releasetools_library_defaults"],
134 srcs: [
Tao Bao3c7b2a62019-08-07 12:24:20 -0700135 "apex_utils.py",
136 ],
137 libs: [
138 "releasetools_common",
139 ],
140}
141
142python_library_host {
143 name: "releasetools_build_image",
144 defaults: [
145 "releasetools_library_defaults",
146 "releasetools_build_image_defaults",
147 ],
148}
149
150python_library_host {
151 name: "releasetools_build_super_image",
152 defaults: [
153 "releasetools_library_defaults",
154 "releasetools_build_super_image_defaults",
Tao Bao005305a2019-08-05 13:00:44 -0700155 ],
156}
157
158python_library_host {
Tao Bao2bbb07c2019-05-07 13:12:21 -0700159 name: "releasetools_common",
160 defaults: ["releasetools_library_defaults"],
Tao Bao30e31142019-04-09 00:12:30 -0700161 srcs: [
Tao Bao30e31142019-04-09 00:12:30 -0700162 "blockimgdiff.py",
Tao Bao30e31142019-04-09 00:12:30 -0700163 "common.py",
Tianjie Xu41976c72019-07-03 13:57:01 -0700164 "images.py",
Tao Bao30e31142019-04-09 00:12:30 -0700165 "rangelib.py",
Tao Bao30e31142019-04-09 00:12:30 -0700166 "sparse_img.py",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700167 ],
168 // Only the tools that are referenced directly are listed as required modules. For example,
169 // `avbtool` is not here, as the script always uses the one from info_dict['avb_avbtool'].
170 required: [
171 "aapt",
172 "boot_signer",
173 "brotli",
174 "bsdiff",
175 "imgdiff",
176 "minigzip",
177 "mkbootfs",
178 ],
179}
180
181python_library_host {
Tao Bao3c7b2a62019-08-07 12:24:20 -0700182 name: "releasetools_img_from_target_files",
183 defaults: [
184 "releasetools_library_defaults",
185 "releasetools_img_from_target_files_defaults",
186 ],
187}
188
189python_library_host {
190 name: "releasetools_ota_from_target_files",
191 defaults: [
192 "releasetools_library_defaults",
193 "releasetools_ota_from_target_files_defaults",
194 ],
195}
196
197python_library_host {
Tao Bao2bbb07c2019-05-07 13:12:21 -0700198 name: "releasetools_verity_utils",
199 defaults: ["releasetools_library_defaults"],
200 srcs: [
Tao Bao30e31142019-04-09 00:12:30 -0700201 "verity_utils.py",
202 ],
Tao Bao2bbb07c2019-05-07 13:12:21 -0700203 required: [
204 "append2simg",
205 "build_verity_metadata",
206 "build_verity_tree",
207 "fec",
208 ],
209}
210
Tao Bao3c7b2a62019-08-07 12:24:20 -0700211//
212// Host binaries.
213//
214
Tao Bao2bbb07c2019-05-07 13:12:21 -0700215python_defaults {
216 name: "releasetools_binary_defaults",
217 version: {
218 py2: {
219 enabled: true,
220 embedded_launcher: true,
221 },
222 py3: {
223 enabled: false,
224 embedded_launcher: false,
225 },
226 },
227}
228
229python_binary_host {
Tao Bao3c7b2a62019-08-07 12:24:20 -0700230 name: "add_img_to_target_files",
231 defaults: [
232 "releasetools_binary_defaults",
233 "releasetools_add_img_to_target_files_defaults",
234 ],
235}
236
237python_binary_host {
Tao Bao2bbb07c2019-05-07 13:12:21 -0700238 name: "build_image",
Tao Bao3c7b2a62019-08-07 12:24:20 -0700239 defaults: [
240 "releasetools_binary_defaults",
241 "releasetools_build_image_defaults",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700242 ],
243}
244
245python_binary_host {
246 name: "build_super_image",
Tao Bao3c7b2a62019-08-07 12:24:20 -0700247 defaults: [
248 "releasetools_binary_defaults",
249 "releasetools_build_super_image_defaults",
250 ],
251}
252
253python_binary_host {
254 name: "check_ota_package_signature",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700255 defaults: ["releasetools_binary_defaults"],
256 srcs: [
Tao Bao3c7b2a62019-08-07 12:24:20 -0700257 "check_ota_package_signature.py",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700258 ],
Tao Bao2bbb07c2019-05-07 13:12:21 -0700259 libs: [
260 "releasetools_common",
261 ],
Tao Bao3c7b2a62019-08-07 12:24:20 -0700262 required: [
263 "delta_generator",
264 ],
265}
266
267python_binary_host {
268 name: "check_target_files_signatures",
269 defaults: ["releasetools_binary_defaults"],
270 srcs: [
271 "check_target_files_signatures.py",
272 ],
273 libs: [
274 "releasetools_common",
275 ],
276 required: [
277 "aapt",
278 ],
279}
280
281python_binary_host {
Yifan Honge3ba82c2019-08-21 13:29:30 -0700282 name: "check_target_files_vintf",
283 defaults: [
284 "releasetools_binary_defaults",
285 "releasetools_check_target_files_vintf_defaults"
286 ],
287}
288
289python_binary_host {
Tao Bao3c7b2a62019-08-07 12:24:20 -0700290 name: "img_from_target_files",
291 defaults: [
292 "releasetools_binary_defaults",
293 "releasetools_img_from_target_files_defaults",
294 ],
Tao Bao30e31142019-04-09 00:12:30 -0700295}
296
Daniel Normanbfc51ef2019-07-24 14:34:54 -0700297python_binary_host {
Tao Baoe11a4602019-08-06 23:21:23 -0700298 name: "make_recovery_patch",
299 defaults: ["releasetools_binary_defaults"],
300 srcs: [
301 "make_recovery_patch.py",
302 ],
303 libs: [
304 "releasetools_common",
305 ],
306}
307
308python_binary_host {
Daniel Normanbfc51ef2019-07-24 14:34:54 -0700309 name: "merge_builds",
310 defaults: ["releasetools_binary_defaults"],
311 srcs: [
Daniel Normanbfc51ef2019-07-24 14:34:54 -0700312 "merge_builds.py",
313 ],
Daniel Normanbfc51ef2019-07-24 14:34:54 -0700314 libs: [
Tao Bao005305a2019-08-05 13:00:44 -0700315 "releasetools_build_super_image",
Daniel Normanbfc51ef2019-07-24 14:34:54 -0700316 "releasetools_common",
317 ],
318}
319
Tao Bao8821d642019-08-05 12:05:45 -0700320python_binary_host {
Tao Bao3c7b2a62019-08-07 12:24:20 -0700321 name: "merge_target_files",
Tao Bao8821d642019-08-05 12:05:45 -0700322 defaults: ["releasetools_binary_defaults"],
323 srcs: [
Tao Bao3c7b2a62019-08-07 12:24:20 -0700324 "merge_target_files.py",
Tao Bao8821d642019-08-05 12:05:45 -0700325 ],
326 libs: [
Tao Bao3c7b2a62019-08-07 12:24:20 -0700327 "releasetools_add_img_to_target_files",
328 "releasetools_build_super_image",
Tao Bao8821d642019-08-05 12:05:45 -0700329 "releasetools_common",
Tao Bao3c7b2a62019-08-07 12:24:20 -0700330 "releasetools_img_from_target_files",
331 "releasetools_ota_from_target_files",
Tao Bao8821d642019-08-05 12:05:45 -0700332 ],
Tao Bao3c7b2a62019-08-07 12:24:20 -0700333}
334
335python_binary_host {
336 name: "ota_from_target_files",
337 defaults: [
338 "releasetools_binary_defaults",
339 "releasetools_ota_from_target_files_defaults",
340 ],
341}
342
343python_binary_host {
344 name: "ota_package_parser",
345 defaults: ["releasetools_binary_defaults"],
346 srcs: [
347 "ota_package_parser.py",
348 "rangelib.py",
Tao Bao8821d642019-08-05 12:05:45 -0700349 ],
350}
351
Tao Baoe11a4602019-08-06 23:21:23 -0700352python_binary_host {
353 name: "sparse_img",
354 defaults: ["releasetools_binary_defaults"],
355 srcs: [
356 "rangelib.py",
357 "sparse_img.py",
358 ],
Tao Baoe11a4602019-08-06 23:21:23 -0700359}
360
Tao Bao3c7b2a62019-08-07 12:24:20 -0700361python_binary_host {
362 name: "sign_apex",
363 defaults: ["releasetools_binary_defaults"],
364 srcs: [
365 "sign_apex.py",
366 ],
367 libs: [
368 "releasetools_apex_utils",
369 "releasetools_common",
370 ],
371}
372
373python_binary_host {
374 name: "sign_target_files_apks",
375 defaults: ["releasetools_binary_defaults"],
376 srcs: [
377 "sign_target_files_apks.py",
378 ],
379 libs: [
380 "releasetools_add_img_to_target_files",
381 "releasetools_apex_utils",
382 "releasetools_common",
383 ],
384}
385
386python_binary_host {
387 name: "validate_target_files",
388 defaults: ["releasetools_binary_defaults"],
389 srcs: [
390 "validate_target_files.py",
391 ],
392 libs: [
393 "releasetools_common",
394 ],
395}
396
397//
398// Tests.
399//
400
Tao Baoca82fc92019-05-01 21:58:03 -0700401python_defaults {
402 name: "releasetools_test_defaults",
Tao Bao30e31142019-04-09 00:12:30 -0700403 srcs: [
Tao Bao2bbb07c2019-05-07 13:12:21 -0700404 "check_ota_package_signature.py",
405 "check_target_files_signatures.py",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700406 "make_recovery_patch.py",
407 "merge_target_files.py",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700408 "ota_package_parser.py",
409 "sign_apex.py",
410 "sign_target_files_apks.py",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700411 "validate_target_files.py",
412
Tao Bao30e31142019-04-09 00:12:30 -0700413 "test_*.py",
414 ],
415 libs: [
Tao Bao3c7b2a62019-08-07 12:24:20 -0700416 "releasetools_add_img_to_target_files",
417 "releasetools_apex_utils",
418 "releasetools_build_image",
Tao Bao005305a2019-08-05 13:00:44 -0700419 "releasetools_build_super_image",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700420 "releasetools_common",
Tao Bao3c7b2a62019-08-07 12:24:20 -0700421 "releasetools_img_from_target_files",
422 "releasetools_ota_from_target_files",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700423 "releasetools_verity_utils",
Tao Bao30e31142019-04-09 00:12:30 -0700424 ],
425 data: [
426 "testdata/*",
427 ],
428 required: [
429 "otatools",
430 ],
Tao Baoca82fc92019-05-01 21:58:03 -0700431}
432
433python_test_host {
434 name: "releasetools_test",
435 defaults: ["releasetools_test_defaults"],
436 main: "test_utils.py",
437 version: {
438 py2: {
439 enabled: true,
Tao Bao2bbb07c2019-05-07 13:12:21 -0700440 // When using embedded launcher, atest will try (but may fail) to load libc++.so from
441 // host, because the test executable won't be able to find the needed libs via its
442 // runpath.
Tao Baoca82fc92019-05-01 21:58:03 -0700443 embedded_launcher: false,
444 },
445 py3: {
446 enabled: false,
447 embedded_launcher: false,
448 },
449 },
450 test_suites: ["general-tests"],
451}
452
453python_test_host {
454 name: "releasetools_py3_test",
455 defaults: ["releasetools_test_defaults"],
456 main: "test_utils.py",
457 version: {
458 py2: {
459 enabled: false,
460 embedded_launcher: false,
461 },
462 py3: {
463 enabled: true,
464 embedded_launcher: false,
465 },
466 },
Tao Bao30e31142019-04-09 00:12:30 -0700467 test_suites: ["general-tests"],
468}