blob: 03028567e5d1fa91f2d2c5529906dc71fb984d25 [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 {
79 name: "releasetools_ota_from_target_files_defaults",
80 srcs: [
81 "edify_generator.py",
82 "ota_from_target_files.py",
83 "target_files_diff.py",
84 ],
85 libs: [
86 "releasetools_common",
87 "releasetools_verity_utils",
88 ],
89 required: [
90 "brillo_update_payload",
91 ],
92}
93
94//
95// Host libraries.
96//
97
Tao Bao30e31142019-04-09 00:12:30 -070098python_defaults {
Tao Bao2bbb07c2019-05-07 13:12:21 -070099 name: "releasetools_library_defaults",
Tao Bao30e31142019-04-09 00:12:30 -0700100 version: {
101 py2: {
102 enabled: true,
Tao Bao30e31142019-04-09 00:12:30 -0700103 },
104 py3: {
Tao Baoca82fc92019-05-01 21:58:03 -0700105 enabled: true,
Tao Bao30e31142019-04-09 00:12:30 -0700106 },
107 },
108}
109
110python_library_host {
Tao Bao3c7b2a62019-08-07 12:24:20 -0700111 name: "releasetools_add_img_to_target_files",
112 defaults: [
113 "releasetools_library_defaults",
114 "releasetools_add_img_to_target_files_defaults",
115 ],
116}
117
118python_library_host {
119 name: "releasetools_apex_utils",
Tao Bao005305a2019-08-05 13:00:44 -0700120 defaults: ["releasetools_library_defaults"],
121 srcs: [
Tao Bao3c7b2a62019-08-07 12:24:20 -0700122 "apex_utils.py",
123 ],
124 libs: [
125 "releasetools_common",
126 ],
127}
128
129python_library_host {
130 name: "releasetools_build_image",
131 defaults: [
132 "releasetools_library_defaults",
133 "releasetools_build_image_defaults",
134 ],
135}
136
137python_library_host {
138 name: "releasetools_build_super_image",
139 defaults: [
140 "releasetools_library_defaults",
141 "releasetools_build_super_image_defaults",
Tao Bao005305a2019-08-05 13:00:44 -0700142 ],
143}
144
145python_library_host {
Tao Bao2bbb07c2019-05-07 13:12:21 -0700146 name: "releasetools_common",
147 defaults: ["releasetools_library_defaults"],
Tao Bao30e31142019-04-09 00:12:30 -0700148 srcs: [
Tao Bao30e31142019-04-09 00:12:30 -0700149 "blockimgdiff.py",
Tao Bao30e31142019-04-09 00:12:30 -0700150 "common.py",
Tianjie Xu41976c72019-07-03 13:57:01 -0700151 "images.py",
Tao Bao30e31142019-04-09 00:12:30 -0700152 "rangelib.py",
Tao Bao30e31142019-04-09 00:12:30 -0700153 "sparse_img.py",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700154 ],
155 // Only the tools that are referenced directly are listed as required modules. For example,
156 // `avbtool` is not here, as the script always uses the one from info_dict['avb_avbtool'].
157 required: [
158 "aapt",
159 "boot_signer",
160 "brotli",
161 "bsdiff",
162 "imgdiff",
163 "minigzip",
164 "mkbootfs",
165 ],
166}
167
168python_library_host {
Tao Bao3c7b2a62019-08-07 12:24:20 -0700169 name: "releasetools_img_from_target_files",
170 defaults: [
171 "releasetools_library_defaults",
172 "releasetools_img_from_target_files_defaults",
173 ],
174}
175
176python_library_host {
177 name: "releasetools_ota_from_target_files",
178 defaults: [
179 "releasetools_library_defaults",
180 "releasetools_ota_from_target_files_defaults",
181 ],
182}
183
184python_library_host {
Tao Bao2bbb07c2019-05-07 13:12:21 -0700185 name: "releasetools_verity_utils",
186 defaults: ["releasetools_library_defaults"],
187 srcs: [
Tao Bao30e31142019-04-09 00:12:30 -0700188 "verity_utils.py",
189 ],
Tao Bao2bbb07c2019-05-07 13:12:21 -0700190 required: [
191 "append2simg",
192 "build_verity_metadata",
193 "build_verity_tree",
194 "fec",
195 ],
196}
197
Tao Bao3c7b2a62019-08-07 12:24:20 -0700198//
199// Host binaries.
200//
201
Tao Bao2bbb07c2019-05-07 13:12:21 -0700202python_defaults {
203 name: "releasetools_binary_defaults",
204 version: {
205 py2: {
206 enabled: true,
207 embedded_launcher: true,
208 },
209 py3: {
210 enabled: false,
211 embedded_launcher: false,
212 },
213 },
214}
215
216python_binary_host {
Tao Bao3c7b2a62019-08-07 12:24:20 -0700217 name: "add_img_to_target_files",
218 defaults: [
219 "releasetools_binary_defaults",
220 "releasetools_add_img_to_target_files_defaults",
221 ],
222}
223
224python_binary_host {
Tao Bao2bbb07c2019-05-07 13:12:21 -0700225 name: "build_image",
Tao Bao3c7b2a62019-08-07 12:24:20 -0700226 defaults: [
227 "releasetools_binary_defaults",
228 "releasetools_build_image_defaults",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700229 ],
230}
231
232python_binary_host {
233 name: "build_super_image",
Tao Bao3c7b2a62019-08-07 12:24:20 -0700234 defaults: [
235 "releasetools_binary_defaults",
236 "releasetools_build_super_image_defaults",
237 ],
238}
239
240python_binary_host {
241 name: "check_ota_package_signature",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700242 defaults: ["releasetools_binary_defaults"],
243 srcs: [
Tao Bao3c7b2a62019-08-07 12:24:20 -0700244 "check_ota_package_signature.py",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700245 ],
Tao Bao2bbb07c2019-05-07 13:12:21 -0700246 libs: [
247 "releasetools_common",
248 ],
Tao Bao3c7b2a62019-08-07 12:24:20 -0700249 required: [
250 "delta_generator",
251 ],
252}
253
254python_binary_host {
255 name: "check_target_files_signatures",
256 defaults: ["releasetools_binary_defaults"],
257 srcs: [
258 "check_target_files_signatures.py",
259 ],
260 libs: [
261 "releasetools_common",
262 ],
263 required: [
264 "aapt",
265 ],
266}
267
268python_binary_host {
269 name: "img_from_target_files",
270 defaults: [
271 "releasetools_binary_defaults",
272 "releasetools_img_from_target_files_defaults",
273 ],
Tao Bao30e31142019-04-09 00:12:30 -0700274}
275
Daniel Normanbfc51ef2019-07-24 14:34:54 -0700276python_binary_host {
Tao Baoe11a4602019-08-06 23:21:23 -0700277 name: "make_recovery_patch",
278 defaults: ["releasetools_binary_defaults"],
279 srcs: [
280 "make_recovery_patch.py",
281 ],
282 libs: [
283 "releasetools_common",
284 ],
285}
286
287python_binary_host {
Daniel Normanbfc51ef2019-07-24 14:34:54 -0700288 name: "merge_builds",
289 defaults: ["releasetools_binary_defaults"],
290 srcs: [
Daniel Normanbfc51ef2019-07-24 14:34:54 -0700291 "merge_builds.py",
292 ],
Daniel Normanbfc51ef2019-07-24 14:34:54 -0700293 libs: [
Tao Bao005305a2019-08-05 13:00:44 -0700294 "releasetools_build_super_image",
Daniel Normanbfc51ef2019-07-24 14:34:54 -0700295 "releasetools_common",
296 ],
297}
298
Tao Bao8821d642019-08-05 12:05:45 -0700299python_binary_host {
Tao Bao3c7b2a62019-08-07 12:24:20 -0700300 name: "merge_target_files",
Tao Bao8821d642019-08-05 12:05:45 -0700301 defaults: ["releasetools_binary_defaults"],
302 srcs: [
Tao Bao3c7b2a62019-08-07 12:24:20 -0700303 "merge_target_files.py",
Tao Bao8821d642019-08-05 12:05:45 -0700304 ],
305 libs: [
Tao Bao3c7b2a62019-08-07 12:24:20 -0700306 "releasetools_add_img_to_target_files",
307 "releasetools_build_super_image",
Tao Bao8821d642019-08-05 12:05:45 -0700308 "releasetools_common",
Tao Bao3c7b2a62019-08-07 12:24:20 -0700309 "releasetools_img_from_target_files",
310 "releasetools_ota_from_target_files",
Tao Bao8821d642019-08-05 12:05:45 -0700311 ],
Tao Bao3c7b2a62019-08-07 12:24:20 -0700312}
313
314python_binary_host {
315 name: "ota_from_target_files",
316 defaults: [
317 "releasetools_binary_defaults",
318 "releasetools_ota_from_target_files_defaults",
319 ],
320}
321
322python_binary_host {
323 name: "ota_package_parser",
324 defaults: ["releasetools_binary_defaults"],
325 srcs: [
326 "ota_package_parser.py",
327 "rangelib.py",
Tao Bao8821d642019-08-05 12:05:45 -0700328 ],
329}
330
Tao Baoe11a4602019-08-06 23:21:23 -0700331python_binary_host {
332 name: "sparse_img",
333 defaults: ["releasetools_binary_defaults"],
334 srcs: [
335 "rangelib.py",
336 "sparse_img.py",
337 ],
Tao Baoe11a4602019-08-06 23:21:23 -0700338}
339
Tao Bao3c7b2a62019-08-07 12:24:20 -0700340python_binary_host {
341 name: "sign_apex",
342 defaults: ["releasetools_binary_defaults"],
343 srcs: [
344 "sign_apex.py",
345 ],
346 libs: [
347 "releasetools_apex_utils",
348 "releasetools_common",
349 ],
350}
351
352python_binary_host {
353 name: "sign_target_files_apks",
354 defaults: ["releasetools_binary_defaults"],
355 srcs: [
356 "sign_target_files_apks.py",
357 ],
358 libs: [
359 "releasetools_add_img_to_target_files",
360 "releasetools_apex_utils",
361 "releasetools_common",
362 ],
363}
364
365python_binary_host {
366 name: "validate_target_files",
367 defaults: ["releasetools_binary_defaults"],
368 srcs: [
369 "validate_target_files.py",
370 ],
371 libs: [
372 "releasetools_common",
373 ],
374}
375
376//
377// Tests.
378//
379
Tao Baoca82fc92019-05-01 21:58:03 -0700380python_defaults {
381 name: "releasetools_test_defaults",
Tao Bao30e31142019-04-09 00:12:30 -0700382 srcs: [
Tao Bao2bbb07c2019-05-07 13:12:21 -0700383 "check_ota_package_signature.py",
384 "check_target_files_signatures.py",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700385 "make_recovery_patch.py",
386 "merge_target_files.py",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700387 "ota_package_parser.py",
388 "sign_apex.py",
389 "sign_target_files_apks.py",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700390 "validate_target_files.py",
391
Tao Bao30e31142019-04-09 00:12:30 -0700392 "test_*.py",
393 ],
394 libs: [
Tao Bao3c7b2a62019-08-07 12:24:20 -0700395 "releasetools_add_img_to_target_files",
396 "releasetools_apex_utils",
397 "releasetools_build_image",
Tao Bao005305a2019-08-05 13:00:44 -0700398 "releasetools_build_super_image",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700399 "releasetools_common",
Tao Bao3c7b2a62019-08-07 12:24:20 -0700400 "releasetools_img_from_target_files",
401 "releasetools_ota_from_target_files",
Tao Bao2bbb07c2019-05-07 13:12:21 -0700402 "releasetools_verity_utils",
Tao Bao30e31142019-04-09 00:12:30 -0700403 ],
404 data: [
405 "testdata/*",
406 ],
407 required: [
408 "otatools",
409 ],
Tao Baoca82fc92019-05-01 21:58:03 -0700410}
411
412python_test_host {
413 name: "releasetools_test",
414 defaults: ["releasetools_test_defaults"],
415 main: "test_utils.py",
416 version: {
417 py2: {
418 enabled: true,
Tao Bao2bbb07c2019-05-07 13:12:21 -0700419 // When using embedded launcher, atest will try (but may fail) to load libc++.so from
420 // host, because the test executable won't be able to find the needed libs via its
421 // runpath.
Tao Baoca82fc92019-05-01 21:58:03 -0700422 embedded_launcher: false,
423 },
424 py3: {
425 enabled: false,
426 embedded_launcher: false,
427 },
428 },
429 test_suites: ["general-tests"],
430}
431
432python_test_host {
433 name: "releasetools_py3_test",
434 defaults: ["releasetools_test_defaults"],
435 main: "test_utils.py",
436 version: {
437 py2: {
438 enabled: false,
439 embedded_launcher: false,
440 },
441 py3: {
442 enabled: true,
443 embedded_launcher: false,
444 },
445 },
Tao Bao30e31142019-04-09 00:12:30 -0700446 test_suites: ["general-tests"],
447}