blob: ef76c52ef450b68e46a976e5f66c65ea02b6b6a1 [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 {
Yifan Hongccb86fe2019-08-22 15:52:26 -0700159 name: "releasetools_check_target_files_vintf",
160 defaults: [
161 "releasetools_library_defaults",
162 "releasetools_check_target_files_vintf_defaults",
163 ],
164}
165
166python_library_host {
Tao Bao2bbb07c2019-05-07 13:12:21 -0700167 name: "releasetools_common",
168 defaults: ["releasetools_library_defaults"],
Tao Bao30e31142019-04-09 00:12:30 -0700169 srcs: [
Tao Bao30e31142019-04-09 00:12:30 -0700170 "blockimgdiff.py",
Tao Bao30e31142019-04-09 00:12:30 -0700171 "common.py",
Tianjie Xu41976c72019-07-03 13:57:01 -0700172 "images.py",
Tao Bao30e31142019-04-09 00:12:30 -0700173 "rangelib.py",
Tao Bao30e31142019-04-09 00:12:30 -0700174 "sparse_img.py",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700175 ],
176 // Only the tools that are referenced directly are listed as required modules. For example,
177 // `avbtool` is not here, as the script always uses the one from info_dict['avb_avbtool'].
178 required: [
179 "aapt",
180 "boot_signer",
181 "brotli",
182 "bsdiff",
183 "imgdiff",
184 "minigzip",
185 "mkbootfs",
186 ],
187}
188
189python_library_host {
Tao Bao3c7b2a62019-08-07 12:24:20 -0700190 name: "releasetools_img_from_target_files",
191 defaults: [
192 "releasetools_library_defaults",
193 "releasetools_img_from_target_files_defaults",
194 ],
195}
196
197python_library_host {
198 name: "releasetools_ota_from_target_files",
199 defaults: [
200 "releasetools_library_defaults",
201 "releasetools_ota_from_target_files_defaults",
202 ],
203}
204
205python_library_host {
Tao Bao2bbb07c2019-05-07 13:12:21 -0700206 name: "releasetools_verity_utils",
207 defaults: ["releasetools_library_defaults"],
208 srcs: [
Tao Bao30e31142019-04-09 00:12:30 -0700209 "verity_utils.py",
210 ],
Tao Bao2bbb07c2019-05-07 13:12:21 -0700211 required: [
212 "append2simg",
213 "build_verity_metadata",
214 "build_verity_tree",
215 "fec",
216 ],
217}
218
Tao Bao3c7b2a62019-08-07 12:24:20 -0700219//
220// Host binaries.
221//
222
Tao Bao2bbb07c2019-05-07 13:12:21 -0700223python_defaults {
224 name: "releasetools_binary_defaults",
225 version: {
226 py2: {
227 enabled: true,
228 embedded_launcher: true,
229 },
230 py3: {
231 enabled: false,
232 embedded_launcher: false,
233 },
234 },
235}
236
237python_binary_host {
Tao Bao3c7b2a62019-08-07 12:24:20 -0700238 name: "add_img_to_target_files",
239 defaults: [
240 "releasetools_binary_defaults",
241 "releasetools_add_img_to_target_files_defaults",
242 ],
243}
244
245python_binary_host {
Tao Bao2bbb07c2019-05-07 13:12:21 -0700246 name: "build_image",
Tao Bao3c7b2a62019-08-07 12:24:20 -0700247 defaults: [
248 "releasetools_binary_defaults",
249 "releasetools_build_image_defaults",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700250 ],
251}
252
253python_binary_host {
254 name: "build_super_image",
Tao Bao3c7b2a62019-08-07 12:24:20 -0700255 defaults: [
256 "releasetools_binary_defaults",
257 "releasetools_build_super_image_defaults",
258 ],
259}
260
261python_binary_host {
262 name: "check_ota_package_signature",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700263 defaults: ["releasetools_binary_defaults"],
264 srcs: [
Tao Bao3c7b2a62019-08-07 12:24:20 -0700265 "check_ota_package_signature.py",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700266 ],
Tao Bao2bbb07c2019-05-07 13:12:21 -0700267 libs: [
268 "releasetools_common",
269 ],
Tao Bao3c7b2a62019-08-07 12:24:20 -0700270 required: [
271 "delta_generator",
272 ],
273}
274
275python_binary_host {
276 name: "check_target_files_signatures",
277 defaults: ["releasetools_binary_defaults"],
278 srcs: [
279 "check_target_files_signatures.py",
280 ],
281 libs: [
282 "releasetools_common",
283 ],
284 required: [
285 "aapt",
286 ],
287}
288
289python_binary_host {
Yifan Honge3ba82c2019-08-21 13:29:30 -0700290 name: "check_target_files_vintf",
291 defaults: [
292 "releasetools_binary_defaults",
293 "releasetools_check_target_files_vintf_defaults"
294 ],
295}
296
297python_binary_host {
Tao Bao3c7b2a62019-08-07 12:24:20 -0700298 name: "img_from_target_files",
299 defaults: [
300 "releasetools_binary_defaults",
301 "releasetools_img_from_target_files_defaults",
302 ],
Tao Bao30e31142019-04-09 00:12:30 -0700303}
304
Daniel Normanbfc51ef2019-07-24 14:34:54 -0700305python_binary_host {
Tao Baoe11a4602019-08-06 23:21:23 -0700306 name: "make_recovery_patch",
307 defaults: ["releasetools_binary_defaults"],
308 srcs: [
309 "make_recovery_patch.py",
310 ],
311 libs: [
312 "releasetools_common",
313 ],
314}
315
316python_binary_host {
Daniel Normanbfc51ef2019-07-24 14:34:54 -0700317 name: "merge_builds",
318 defaults: ["releasetools_binary_defaults"],
319 srcs: [
Daniel Normanbfc51ef2019-07-24 14:34:54 -0700320 "merge_builds.py",
321 ],
Daniel Normanbfc51ef2019-07-24 14:34:54 -0700322 libs: [
Tao Bao005305a2019-08-05 13:00:44 -0700323 "releasetools_build_super_image",
Daniel Normanbfc51ef2019-07-24 14:34:54 -0700324 "releasetools_common",
325 ],
326}
327
Tao Bao8821d642019-08-05 12:05:45 -0700328python_binary_host {
Tao Bao3c7b2a62019-08-07 12:24:20 -0700329 name: "merge_target_files",
Tao Bao8821d642019-08-05 12:05:45 -0700330 defaults: ["releasetools_binary_defaults"],
331 srcs: [
Tao Bao3c7b2a62019-08-07 12:24:20 -0700332 "merge_target_files.py",
Tao Bao8821d642019-08-05 12:05:45 -0700333 ],
334 libs: [
Tao Bao3c7b2a62019-08-07 12:24:20 -0700335 "releasetools_add_img_to_target_files",
336 "releasetools_build_super_image",
Tao Bao8821d642019-08-05 12:05:45 -0700337 "releasetools_common",
Tao Bao3c7b2a62019-08-07 12:24:20 -0700338 "releasetools_img_from_target_files",
339 "releasetools_ota_from_target_files",
Tao Bao8821d642019-08-05 12:05:45 -0700340 ],
Tao Bao3c7b2a62019-08-07 12:24:20 -0700341}
342
343python_binary_host {
344 name: "ota_from_target_files",
345 defaults: [
346 "releasetools_binary_defaults",
347 "releasetools_ota_from_target_files_defaults",
348 ],
349}
350
351python_binary_host {
352 name: "ota_package_parser",
353 defaults: ["releasetools_binary_defaults"],
354 srcs: [
355 "ota_package_parser.py",
356 "rangelib.py",
Tao Bao8821d642019-08-05 12:05:45 -0700357 ],
358}
359
Tao Baoe11a4602019-08-06 23:21:23 -0700360python_binary_host {
361 name: "sparse_img",
362 defaults: ["releasetools_binary_defaults"],
363 srcs: [
364 "rangelib.py",
365 "sparse_img.py",
366 ],
Tao Baoe11a4602019-08-06 23:21:23 -0700367}
368
Tao Bao3c7b2a62019-08-07 12:24:20 -0700369python_binary_host {
370 name: "sign_apex",
371 defaults: ["releasetools_binary_defaults"],
372 srcs: [
373 "sign_apex.py",
374 ],
375 libs: [
376 "releasetools_apex_utils",
377 "releasetools_common",
378 ],
379}
380
381python_binary_host {
382 name: "sign_target_files_apks",
383 defaults: ["releasetools_binary_defaults"],
384 srcs: [
385 "sign_target_files_apks.py",
386 ],
387 libs: [
388 "releasetools_add_img_to_target_files",
389 "releasetools_apex_utils",
390 "releasetools_common",
391 ],
392}
393
394python_binary_host {
395 name: "validate_target_files",
396 defaults: ["releasetools_binary_defaults"],
397 srcs: [
398 "validate_target_files.py",
399 ],
400 libs: [
401 "releasetools_common",
402 ],
403}
404
405//
406// Tests.
407//
408
Tao Baoca82fc92019-05-01 21:58:03 -0700409python_defaults {
410 name: "releasetools_test_defaults",
Tao Bao30e31142019-04-09 00:12:30 -0700411 srcs: [
Tao Bao2bbb07c2019-05-07 13:12:21 -0700412 "check_ota_package_signature.py",
413 "check_target_files_signatures.py",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700414 "make_recovery_patch.py",
415 "merge_target_files.py",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700416 "ota_package_parser.py",
417 "sign_apex.py",
418 "sign_target_files_apks.py",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700419 "validate_target_files.py",
420
Tao Bao30e31142019-04-09 00:12:30 -0700421 "test_*.py",
422 ],
423 libs: [
Tao Bao3c7b2a62019-08-07 12:24:20 -0700424 "releasetools_add_img_to_target_files",
425 "releasetools_apex_utils",
426 "releasetools_build_image",
Tao Bao005305a2019-08-05 13:00:44 -0700427 "releasetools_build_super_image",
Yifan Hongccb86fe2019-08-22 15:52:26 -0700428 "releasetools_check_target_files_vintf",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700429 "releasetools_common",
Tao Bao3c7b2a62019-08-07 12:24:20 -0700430 "releasetools_img_from_target_files",
431 "releasetools_ota_from_target_files",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700432 "releasetools_verity_utils",
Tao Bao30e31142019-04-09 00:12:30 -0700433 ],
434 data: [
Yifan Hongccb86fe2019-08-22 15:52:26 -0700435 "testdata/**/*",
Tao Bao30e31142019-04-09 00:12:30 -0700436 ],
437 required: [
438 "otatools",
439 ],
Tao Baoca82fc92019-05-01 21:58:03 -0700440}
441
442python_test_host {
443 name: "releasetools_test",
444 defaults: ["releasetools_test_defaults"],
445 main: "test_utils.py",
446 version: {
447 py2: {
448 enabled: true,
Tao Bao2bbb07c2019-05-07 13:12:21 -0700449 // When using embedded launcher, atest will try (but may fail) to load libc++.so from
450 // host, because the test executable won't be able to find the needed libs via its
451 // runpath.
Tao Baoca82fc92019-05-01 21:58:03 -0700452 embedded_launcher: false,
453 },
454 py3: {
455 enabled: false,
456 embedded_launcher: false,
457 },
458 },
459 test_suites: ["general-tests"],
460}
461
462python_test_host {
463 name: "releasetools_py3_test",
464 defaults: ["releasetools_test_defaults"],
465 main: "test_utils.py",
466 version: {
467 py2: {
468 enabled: false,
469 embedded_launcher: false,
470 },
471 py3: {
472 enabled: true,
473 embedded_launcher: false,
474 },
475 },
Tao Bao30e31142019-04-09 00:12:30 -0700476 test_suites: ["general-tests"],
477}