Add YouTube 16.12 to run_on_app.py
Fixes: 183734568
Change-Id: I8b58be9bb1e162a938d0886c03a290f130bbf776
diff --git a/tools/run_on_app.py b/tools/run_on_app.py
index b58eafb..60cd4f1 100755
--- a/tools/run_on_app.py
+++ b/tools/run_on_app.py
@@ -454,72 +454,62 @@
def should_build(options):
return not options.no_build and not options.golem
-def build_desugared_library_dex(options, quiet, temp, android_java8_libs, inputs, outdir):
- if not input:
- raise Exception("If 'android_java8_libs' is specified the inputs must be explicit"
- + "(not defined using '-injars' in Proguard configuration files)")
+def build_desugared_library_dex(
+ options,
+ quiet,
+ temp,
+ android_java8_libs,
+ desugared_lib_pg_conf,
+ inputs,
+ outdir):
+ if not inputs:
+ raise Exception(
+ "If 'android_java8_libs' is specified the inputs must be explicit"
+ + "(not defined using '-injars' in Proguard configuration files)")
if outdir.endswith('.zip') or outdir.endswith('.jar'):
- raise Exception("If 'android_java8_libs' is specified the output must be a directory")
+ raise Exception(
+ "If 'android_java8_libs' is specified the output must be a directory")
jar = None
main = None
if options.hash:
jar = os.path.join(utils.LIBS, 'r8-' + options.hash + '.jar')
+ main = 'com.android.tools.r8.R8'
+ # Determine the l8 tool.
assert(options.compiler_build in ['full', 'lib'])
lib_prefix = 'r8lib-' if options.compiler_build == 'lib' else ''
+ tool = lib_prefix + 'l8'
- # Determine the tracereferences tool.
- tool = lib_prefix + 'tracereferences'
- if options.hash:
- main = 'com.android.tools.r8.TraceReferences'
- tracereferences_output = os.path.join(outdir, 'tracereferences.pgcfg')
- args = [
- '--map-diagnostics:MissingDefinitionsDiagnostic', 'error', 'warning',
- '--keep-rules',
- '--lib', 'third_party/android_jar/lib-v30/android.jar',
- '--target', android_java8_libs['library'],
- '--output', tracereferences_output,
- ]
- for source in inputs:
- args.extend(['--source', source])
- exit_code = toolhelper.run(tool, args,
- build=should_build(options),
- debug=not options.no_debug,
- quiet=quiet,
- jar=jar,
- main=main)
- if exit_code != 0:
- raise Exception("tracereferences failed")
-
- # Determine the r8 tool.
- tool = lib_prefix + 'r8'
- if options.compiler_build == 'full':
- tool = ''
- else:
- assert(options.compiler_build == 'lib')
- tool = 'r8lib-r8'
- if options.hash:
- main = 'com.android.tools.r8.R8'
+ # Prepare out directory.
android_java8_libs_output = os.path.join(temp, 'android_java8_libs')
os.makedirs(android_java8_libs_output)
+
+ # Prepare arguments for L8.
args = [
- '--no-desugaring',
- '--lib', '%s/android_jar/lib-v30/android.jar' % utils.THIRD_PARTY,
+ '--desugared-lib', android_java8_libs['config'],
+ '--lib', android_java8_libs['library'],
'--output', android_java8_libs_output,
- '--pg-conf', tracereferences_output,
- android_java8_libs['library']
+ '--pg-conf', desugared_lib_pg_conf,
+ '--release',
]
- for pgconf in android_java8_libs['pgconf']:
- args.extend(['--pg-conf', pgconf])
- exit_code = toolhelper.run(tool, args,
+ if 'pgconf' in android_java8_libs:
+ for pgconf in android_java8_libs['pgconf']:
+ args.extend(['--pg-conf', pgconf])
+ args.extend(android_java8_libs['program'])
+
+ # Run L8.
+ exit_code = toolhelper.run(
+ tool, args,
build=should_build(options),
debug=not options.no_debug,
quiet=quiet,
jar=jar,
main=main)
+
# Copy the desugared library DEX to the output.
- dex_file_name = 'classes' + str(len(glob(os.path.join(outdir, '*.dex'))) + 1) + '.dex'
+ dex_file_name = (
+ 'classes' + str(len(glob(os.path.join(outdir, '*.dex'))) + 1) + '.dex')
shutil.copyfile(
os.path.join(android_java8_libs_output, 'classes.dex'),
os.path.join(outdir, dex_file_name))
@@ -680,6 +670,15 @@
additional_pg_conf = GenerateAdditionalProguardConfiguration(
temp, os.path.abspath(pg_outdir))
args.extend(['--pg-conf', additional_pg_conf])
+
+ android_java8_libs = values.get('android_java8_libs')
+ if android_java8_libs:
+ desugared_lib_pg_conf = os.path.join(
+ temp, 'desugared-lib-pg-conf.txt')
+ args.extend(['--desugared-lib', android_java8_libs['config']])
+ args.extend(
+ ['--desugared-lib-pg-conf-output', desugared_lib_pg_conf])
+
stderr_path = os.path.join(temp, 'stderr')
with open(stderr_path, 'w') as stderr:
jar = None
@@ -722,9 +721,10 @@
.format(options.print_memoryuse,
utils.grep_memoryuse(options.track_memory_to_file)))
- if 'android_java8_libs' in values:
- android_java8_libs = values['android_java8_libs']
- build_desugared_library_dex(options, quiet, temp, android_java8_libs, inputs, outdir)
+ if android_java8_libs:
+ build_desugared_library_dex(
+ options, quiet, temp, android_java8_libs,
+ desugared_lib_pg_conf, inputs, outdir)
if options.print_runtimeraw: