blob: fa65767a2ef00c5d9308c3fcad064872d94c0b5d [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: [
Yifan Hong9276cf02019-08-21 16:37:04 -070099 "releasetools_check_target_files_vintf",
Tao Bao3c7b2a62019-08-07 12:24:20 -0700100 "releasetools_common",
101 "releasetools_verity_utils",
102 ],
103 required: [
104 "brillo_update_payload",
105 ],
106}
107
108//
109// Host libraries.
110//
111
Tao Bao30e31142019-04-09 00:12:30 -0700112python_defaults {
Tao Bao2bbb07c2019-05-07 13:12:21 -0700113 name: "releasetools_library_defaults",
Tao Bao30e31142019-04-09 00:12:30 -0700114 version: {
115 py2: {
116 enabled: true,
Tao Bao30e31142019-04-09 00:12:30 -0700117 },
118 py3: {
Tao Baoca82fc92019-05-01 21:58:03 -0700119 enabled: true,
Tao Bao30e31142019-04-09 00:12:30 -0700120 },
121 },
122}
123
124python_library_host {
Tao Bao3c7b2a62019-08-07 12:24:20 -0700125 name: "releasetools_add_img_to_target_files",
126 defaults: [
127 "releasetools_library_defaults",
128 "releasetools_add_img_to_target_files_defaults",
129 ],
130}
131
132python_library_host {
133 name: "releasetools_apex_utils",
Tao Bao005305a2019-08-05 13:00:44 -0700134 defaults: ["releasetools_library_defaults"],
135 srcs: [
Tao Bao3c7b2a62019-08-07 12:24:20 -0700136 "apex_utils.py",
137 ],
138 libs: [
139 "releasetools_common",
140 ],
141}
142
143python_library_host {
144 name: "releasetools_build_image",
145 defaults: [
146 "releasetools_library_defaults",
147 "releasetools_build_image_defaults",
148 ],
149}
150
151python_library_host {
152 name: "releasetools_build_super_image",
153 defaults: [
154 "releasetools_library_defaults",
155 "releasetools_build_super_image_defaults",
Tao Bao005305a2019-08-05 13:00:44 -0700156 ],
157}
158
159python_library_host {
Yifan Hongccb86fe2019-08-22 15:52:26 -0700160 name: "releasetools_check_target_files_vintf",
161 defaults: [
162 "releasetools_library_defaults",
163 "releasetools_check_target_files_vintf_defaults",
164 ],
165}
166
167python_library_host {
Tao Bao2bbb07c2019-05-07 13:12:21 -0700168 name: "releasetools_common",
169 defaults: ["releasetools_library_defaults"],
Tao Bao30e31142019-04-09 00:12:30 -0700170 srcs: [
Tao Bao30e31142019-04-09 00:12:30 -0700171 "blockimgdiff.py",
Tao Bao30e31142019-04-09 00:12:30 -0700172 "common.py",
Tianjie Xu41976c72019-07-03 13:57:01 -0700173 "images.py",
Tao Bao30e31142019-04-09 00:12:30 -0700174 "rangelib.py",
Tao Bao30e31142019-04-09 00:12:30 -0700175 "sparse_img.py",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700176 ],
177 // Only the tools that are referenced directly are listed as required modules. For example,
178 // `avbtool` is not here, as the script always uses the one from info_dict['avb_avbtool'].
179 required: [
180 "aapt",
181 "boot_signer",
182 "brotli",
183 "bsdiff",
184 "imgdiff",
185 "minigzip",
186 "mkbootfs",
187 ],
188}
189
190python_library_host {
Tao Bao3c7b2a62019-08-07 12:24:20 -0700191 name: "releasetools_img_from_target_files",
192 defaults: [
193 "releasetools_library_defaults",
194 "releasetools_img_from_target_files_defaults",
195 ],
196}
197
198python_library_host {
199 name: "releasetools_ota_from_target_files",
200 defaults: [
201 "releasetools_library_defaults",
202 "releasetools_ota_from_target_files_defaults",
203 ],
204}
205
206python_library_host {
Tao Bao2bbb07c2019-05-07 13:12:21 -0700207 name: "releasetools_verity_utils",
208 defaults: ["releasetools_library_defaults"],
209 srcs: [
Tao Bao30e31142019-04-09 00:12:30 -0700210 "verity_utils.py",
211 ],
Tao Bao2bbb07c2019-05-07 13:12:21 -0700212 required: [
213 "append2simg",
214 "build_verity_metadata",
215 "build_verity_tree",
216 "fec",
217 ],
218}
219
Tao Bao3c7b2a62019-08-07 12:24:20 -0700220//
221// Host binaries.
222//
223
Tao Bao2bbb07c2019-05-07 13:12:21 -0700224python_defaults {
225 name: "releasetools_binary_defaults",
226 version: {
227 py2: {
228 enabled: true,
229 embedded_launcher: true,
230 },
231 py3: {
232 enabled: false,
233 embedded_launcher: false,
234 },
235 },
236}
237
238python_binary_host {
Tao Bao3c7b2a62019-08-07 12:24:20 -0700239 name: "add_img_to_target_files",
240 defaults: [
241 "releasetools_binary_defaults",
242 "releasetools_add_img_to_target_files_defaults",
243 ],
244}
245
246python_binary_host {
Tao Bao2bbb07c2019-05-07 13:12:21 -0700247 name: "build_image",
Tao Bao3c7b2a62019-08-07 12:24:20 -0700248 defaults: [
249 "releasetools_binary_defaults",
250 "releasetools_build_image_defaults",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700251 ],
252}
253
254python_binary_host {
255 name: "build_super_image",
Tao Bao3c7b2a62019-08-07 12:24:20 -0700256 defaults: [
257 "releasetools_binary_defaults",
258 "releasetools_build_super_image_defaults",
259 ],
260}
261
262python_binary_host {
263 name: "check_ota_package_signature",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700264 defaults: ["releasetools_binary_defaults"],
265 srcs: [
Tao Bao3c7b2a62019-08-07 12:24:20 -0700266 "check_ota_package_signature.py",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700267 ],
Tao Bao2bbb07c2019-05-07 13:12:21 -0700268 libs: [
269 "releasetools_common",
270 ],
Tao Bao3c7b2a62019-08-07 12:24:20 -0700271 required: [
272 "delta_generator",
273 ],
274}
275
276python_binary_host {
277 name: "check_target_files_signatures",
278 defaults: ["releasetools_binary_defaults"],
279 srcs: [
280 "check_target_files_signatures.py",
281 ],
282 libs: [
283 "releasetools_common",
284 ],
285 required: [
286 "aapt",
287 ],
288}
289
290python_binary_host {
Yifan Honge3ba82c2019-08-21 13:29:30 -0700291 name: "check_target_files_vintf",
292 defaults: [
293 "releasetools_binary_defaults",
294 "releasetools_check_target_files_vintf_defaults"
295 ],
296}
297
298python_binary_host {
Tao Bao3c7b2a62019-08-07 12:24:20 -0700299 name: "img_from_target_files",
300 defaults: [
301 "releasetools_binary_defaults",
302 "releasetools_img_from_target_files_defaults",
303 ],
Tao Bao30e31142019-04-09 00:12:30 -0700304}
305
Daniel Normanbfc51ef2019-07-24 14:34:54 -0700306python_binary_host {
Tao Baoe11a4602019-08-06 23:21:23 -0700307 name: "make_recovery_patch",
308 defaults: ["releasetools_binary_defaults"],
309 srcs: [
310 "make_recovery_patch.py",
311 ],
312 libs: [
313 "releasetools_common",
314 ],
315}
316
317python_binary_host {
Daniel Normanbfc51ef2019-07-24 14:34:54 -0700318 name: "merge_builds",
319 defaults: ["releasetools_binary_defaults"],
320 srcs: [
Daniel Normanbfc51ef2019-07-24 14:34:54 -0700321 "merge_builds.py",
322 ],
Daniel Normanbfc51ef2019-07-24 14:34:54 -0700323 libs: [
Tao Bao005305a2019-08-05 13:00:44 -0700324 "releasetools_build_super_image",
Daniel Normanbfc51ef2019-07-24 14:34:54 -0700325 "releasetools_common",
326 ],
327}
328
Tao Bao8821d642019-08-05 12:05:45 -0700329python_binary_host {
Tao Bao3c7b2a62019-08-07 12:24:20 -0700330 name: "merge_target_files",
Tao Bao8821d642019-08-05 12:05:45 -0700331 defaults: ["releasetools_binary_defaults"],
332 srcs: [
Tao Bao3c7b2a62019-08-07 12:24:20 -0700333 "merge_target_files.py",
Tao Bao8821d642019-08-05 12:05:45 -0700334 ],
335 libs: [
Tao Bao3c7b2a62019-08-07 12:24:20 -0700336 "releasetools_add_img_to_target_files",
337 "releasetools_build_super_image",
Yifan Hongade0d3f2019-08-21 16:37:11 -0700338 "releasetools_check_target_files_vintf",
Tao Bao8821d642019-08-05 12:05:45 -0700339 "releasetools_common",
Tao Bao3c7b2a62019-08-07 12:24:20 -0700340 "releasetools_img_from_target_files",
341 "releasetools_ota_from_target_files",
Tao Bao8821d642019-08-05 12:05:45 -0700342 ],
Tao Bao3c7b2a62019-08-07 12:24:20 -0700343}
344
345python_binary_host {
346 name: "ota_from_target_files",
347 defaults: [
348 "releasetools_binary_defaults",
349 "releasetools_ota_from_target_files_defaults",
350 ],
351}
352
353python_binary_host {
354 name: "ota_package_parser",
355 defaults: ["releasetools_binary_defaults"],
356 srcs: [
357 "ota_package_parser.py",
358 "rangelib.py",
Tao Bao8821d642019-08-05 12:05:45 -0700359 ],
360}
361
Tao Baoe11a4602019-08-06 23:21:23 -0700362python_binary_host {
363 name: "sparse_img",
364 defaults: ["releasetools_binary_defaults"],
365 srcs: [
366 "rangelib.py",
367 "sparse_img.py",
368 ],
Tao Baoe11a4602019-08-06 23:21:23 -0700369}
370
Tao Bao3c7b2a62019-08-07 12:24:20 -0700371python_binary_host {
372 name: "sign_apex",
373 defaults: ["releasetools_binary_defaults"],
374 srcs: [
375 "sign_apex.py",
376 ],
377 libs: [
378 "releasetools_apex_utils",
379 "releasetools_common",
380 ],
381}
382
383python_binary_host {
384 name: "sign_target_files_apks",
385 defaults: ["releasetools_binary_defaults"],
386 srcs: [
387 "sign_target_files_apks.py",
388 ],
389 libs: [
390 "releasetools_add_img_to_target_files",
391 "releasetools_apex_utils",
392 "releasetools_common",
393 ],
394}
395
396python_binary_host {
397 name: "validate_target_files",
398 defaults: ["releasetools_binary_defaults"],
399 srcs: [
400 "validate_target_files.py",
401 ],
402 libs: [
403 "releasetools_common",
404 ],
405}
406
407//
408// Tests.
409//
410
Tao Baoca82fc92019-05-01 21:58:03 -0700411python_defaults {
412 name: "releasetools_test_defaults",
Tao Bao30e31142019-04-09 00:12:30 -0700413 srcs: [
Tao Bao2bbb07c2019-05-07 13:12:21 -0700414 "check_ota_package_signature.py",
415 "check_target_files_signatures.py",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700416 "make_recovery_patch.py",
417 "merge_target_files.py",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700418 "ota_package_parser.py",
419 "sign_apex.py",
420 "sign_target_files_apks.py",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700421 "validate_target_files.py",
422
Tao Bao30e31142019-04-09 00:12:30 -0700423 "test_*.py",
424 ],
425 libs: [
Tao Bao3c7b2a62019-08-07 12:24:20 -0700426 "releasetools_add_img_to_target_files",
427 "releasetools_apex_utils",
428 "releasetools_build_image",
Tao Bao005305a2019-08-05 13:00:44 -0700429 "releasetools_build_super_image",
Yifan Hongccb86fe2019-08-22 15:52:26 -0700430 "releasetools_check_target_files_vintf",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700431 "releasetools_common",
Tao Bao3c7b2a62019-08-07 12:24:20 -0700432 "releasetools_img_from_target_files",
433 "releasetools_ota_from_target_files",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700434 "releasetools_verity_utils",
Tao Bao30e31142019-04-09 00:12:30 -0700435 ],
436 data: [
Yifan Hongccb86fe2019-08-22 15:52:26 -0700437 "testdata/**/*",
Tao Bao30e31142019-04-09 00:12:30 -0700438 ],
439 required: [
440 "otatools",
441 ],
Tao Baoca82fc92019-05-01 21:58:03 -0700442}
443
444python_test_host {
445 name: "releasetools_test",
446 defaults: ["releasetools_test_defaults"],
447 main: "test_utils.py",
448 version: {
449 py2: {
450 enabled: true,
Tao Bao2bbb07c2019-05-07 13:12:21 -0700451 // When using embedded launcher, atest will try (but may fail) to load libc++.so from
452 // host, because the test executable won't be able to find the needed libs via its
453 // runpath.
Tao Baoca82fc92019-05-01 21:58:03 -0700454 embedded_launcher: false,
455 },
456 py3: {
457 enabled: false,
458 embedded_launcher: false,
459 },
460 },
461 test_suites: ["general-tests"],
462}
463
464python_test_host {
465 name: "releasetools_py3_test",
466 defaults: ["releasetools_test_defaults"],
467 main: "test_utils.py",
468 version: {
469 py2: {
470 enabled: false,
471 embedded_launcher: false,
472 },
473 py3: {
474 enabled: true,
475 embedded_launcher: false,
476 },
477 },
Tao Bao30e31142019-04-09 00:12:30 -0700478 test_suites: ["general-tests"],
479}