Skip to content

Commit 96275fa

Browse files
committed
extract_utils: add support for generating boot jars list
Change-Id: I699a2165a2a9280fcbb175b7e7cec907b0e1e9df
1 parent e2c291b commit 96275fa

File tree

3 files changed

+29
-0
lines changed

3 files changed

+29
-0
lines changed

extract_utils/file.py

+6
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
class FileArgs(str, Enum):
4444
AB = 'AB'
4545
CERTIFICATE = 'CERTIFICATE'
46+
BOOT_JAR = 'BOOT_JAR'
4647
DUMMY_SHARED_LIB = 'DUMMY_SHARED_LIB'
4748
EXTRACT_ONLY = 'EXTRACT_ONLY'
4849
MAKE_COPY_RULE = 'MAKE_COPY_RULE'
@@ -65,6 +66,7 @@ class FileArgs(str, Enum):
6566
FILE_ARGS_TYPE_MAP = {
6667
FileArgs.AB: True,
6768
FileArgs.CERTIFICATE: str,
69+
FileArgs.BOOT_JAR: True,
6870
FileArgs.DUMMY_SHARED_LIB: True,
6971
FileArgs.EXTRACT_ONLY: True,
7072
FileArgs.MAKE_COPY_RULE: True,
@@ -482,6 +484,7 @@ def __init__(
482484
# packages_files is a FileTree to help with performance while grouping
483485
# multiple files of the same type together
484486
self.package_files = FileTree()
487+
self.boot_jars = FileTree()
485488
self.dummy_shared_libs = FileTree()
486489
self.package_symlinks = SimpleFileList()
487490
self.copy_files = SimpleFileList()
@@ -522,6 +525,9 @@ def __add_file(self, file: File, section: Optional[str]):
522525
if FileArgs.SYMLINK in file.args:
523526
self.package_symlinks.add(file)
524527

528+
if FileArgs.BOOT_JAR in file.args:
529+
self.boot_jars.add(file)
530+
525531
if FileArgs.DUMMY_SHARED_LIB in file.args:
526532
self.dummy_shared_libs.add(file)
527533
return

extract_utils/makefiles.py

+17
Original file line numberDiff line numberDiff line change
@@ -434,6 +434,23 @@ def write_packages_inclusion(package_names: List[str], out: TextIO):
434434
out.write('\n')
435435

436436

437+
def write_boot_jars(
438+
ctx: MakefilesCtx,
439+
base_file_tree: FileTree,
440+
):
441+
if not list(base_file_tree):
442+
return
443+
444+
ctx.product_mk_out.write('\nPRODUCT_BOOT_JARS +=')
445+
446+
for file in base_file_tree:
447+
_, package_name = file_stem_package_name(file, can_have_stem=True)
448+
line = f' \\\n {package_name}'
449+
ctx.product_mk_out.write(line)
450+
451+
ctx.product_mk_out.write('\n')
452+
453+
437454
def write_product_packages(
438455
ctx: MakefilesCtx,
439456
packages_ctx: ProductPackagesCtx,

extract_utils/module.py

+6
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
MakefilesCtx,
2626
ProductPackagesCtx,
2727
write_board_info_file,
28+
write_boot_jars,
2829
write_bp_header,
2930
write_bp_soong_namespaces,
3031
write_dummy_shared_libs,
@@ -210,6 +211,11 @@ def write_makefiles(self, module: ExtractUtilsModule, ctx: MakefilesCtx):
210211
self.file_list.package_symlinks,
211212
)
212213

214+
write_boot_jars(
215+
ctx,
216+
self.file_list.boot_jars,
217+
)
218+
213219
write_dummy_shared_libs(
214220
ctx,
215221
packages_ctx,

0 commit comments

Comments
 (0)