0

Android: Apply jar_included_patterns to .jar.info files

It already had jar_excluded_patterns, but not jar_included_patterns.
This should fix SuperSize attributing size to JNI Zero placeholder
srcjars.

Bug: 399437822
Change-Id: I4af5fe1d45bc74ac61d3d142cf235506aa80543a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6333301
Auto-Submit: Andrew Grieve <agrieve@chromium.org>
Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: Andrew Grieve <agrieve@chromium.org>
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1429629}
This commit is contained in:
Andrew Grieve
2025-03-07 11:08:14 -08:00
committed by Chromium LUCI CQ
parent a2b7de5749
commit 67d3698897
2 changed files with 21 additions and 6 deletions
build
android
config

@@ -155,9 +155,10 @@ def ParseJavaSource(data, services_map, path=None):
class _MetadataParser: class _MetadataParser:
def __init__(self, chromium_code, excluded_globs): def __init__(self, chromium_code, exclude_globs, include_globs):
self._chromium_code = chromium_code self._chromium_code = chromium_code
self._excluded_globs = excluded_globs self._exclude_globs = exclude_globs
self._include_globs = include_globs
# Map of .java path -> .srcjar/nested/path.java. # Map of .java path -> .srcjar/nested/path.java.
self._srcjar_files = {} self._srcjar_files = {}
# Map of @ServiceImpl class -> impl class # Map of @ServiceImpl class -> impl class
@@ -196,7 +197,10 @@ class _MetadataParser:
def _ShouldIncludeInJarInfo(self, fully_qualified_name): def _ShouldIncludeInJarInfo(self, fully_qualified_name):
name_as_class_glob = fully_qualified_name.replace('.', '/') + '.class' name_as_class_glob = fully_qualified_name.replace('.', '/') + '.class'
return not build_utils.MatchesGlob(name_as_class_glob, self._excluded_globs) if self._include_globs and not build_utils.MatchesGlob(
name_as_class_glob, self._include_globs):
return False
return not build_utils.MatchesGlob(name_as_class_glob, self._exclude_globs)
def ParseAndWriteInfoFile(self, output_path, java_files, kt_files=None): def ParseAndWriteInfoFile(self, output_path, java_files, kt_files=None):
"""Writes a .jar.info file. """Writes a .jar.info file.
@@ -340,7 +344,8 @@ def _RunCompiler(changes,
build_utils.DeleteDirectory(temp_dir) build_utils.DeleteDirectory(temp_dir)
os.makedirs(temp_dir) os.makedirs(temp_dir)
metadata_parser = _MetadataParser(options.chromium_code, metadata_parser = _MetadataParser(options.chromium_code,
options.jar_info_exclude_globs) options.jar_info_exclude_globs,
options.jar_info_include_globs)
try: try:
classes_dir = os.path.join(temp_dir, 'classes') classes_dir = os.path.join(temp_dir, 'classes')
@@ -494,6 +499,9 @@ def _ParseOptions(argv):
parser.add_argument( parser.add_argument(
'--jar-info-exclude-globs', '--jar-info-exclude-globs',
help='GN list of exclude globs to filter from generated .info files.') help='GN list of exclude globs to filter from generated .info files.')
parser.add_argument(
'--jar-info-include-globs',
help='GN list of inlclude globs to filter from generated .info files.')
parser.add_argument( parser.add_argument(
'--chromium-code', '--chromium-code',
action='store_true', action='store_true',
@@ -532,6 +540,8 @@ def _ParseOptions(argv):
options.java_srcjars = action_helpers.parse_gn_list(options.java_srcjars) options.java_srcjars = action_helpers.parse_gn_list(options.java_srcjars)
options.jar_info_exclude_globs = action_helpers.parse_gn_list( options.jar_info_exclude_globs = action_helpers.parse_gn_list(
options.jar_info_exclude_globs) options.jar_info_exclude_globs)
options.jar_info_include_globs = action_helpers.parse_gn_list(
options.jar_info_include_globs)
additional_jar_files = [] additional_jar_files = []
for arg in options.additional_jar_files or []: for arg in options.additional_jar_files or []:
@@ -644,8 +654,10 @@ def main(argv,
input_paths += [x[0] for x in options.additional_jar_files] input_paths += [x[0] for x in options.additional_jar_files]
input_strings = ( input_strings = (
javac_cmd + javac_args + options.classpath + java_files + kt_files + javac_cmd + javac_args + options.classpath + java_files + kt_files + [
[options.warnings_as_errors, options.jar_info_exclude_globs]) options.warnings_as_errors, options.jar_info_exclude_globs,
options.jar_info_include_globs
])
# Use md5_check for |pass_changes| feature. # Use md5_check for |pass_changes| feature.
md5_check.CallAndWriteDepfileIfStale(do_it, md5_check.CallAndWriteDepfileIfStale(do_it,

@@ -3254,6 +3254,9 @@ if (enable_java_templates) {
if (defined(invoker.jar_excluded_patterns)) { if (defined(invoker.jar_excluded_patterns)) {
args += [ "--jar-info-exclude-globs=${invoker.jar_excluded_patterns}" ] args += [ "--jar-info-exclude-globs=${invoker.jar_excluded_patterns}" ]
} }
if (defined(invoker.jar_included_patterns)) {
args += [ "--jar-info-include-globs=${invoker.jar_included_patterns}" ]
}
if (invoker.enable_errorprone) { if (invoker.enable_errorprone) {
# Our custom plugin pulls in the main errorprone dep transitively. # Our custom plugin pulls in the main errorprone dep transitively.