Add a compile dump wrapper for D8 to pass in api modeling flags
Change-Id: Ic59fd9d9ee9f8401913987d531736dacb4206f20
diff --git a/tools/compiledump.py b/tools/compiledump.py
index 5962cc0..c6a4a19 100755
--- a/tools/compiledump.py
+++ b/tools/compiledump.py
@@ -357,19 +357,33 @@
return True
return False
-def prepare_wrapper(dist, temp, jdkhome):
- wrapper_file = os.path.join(
+def prepare_r8_wrapper(dist, temp, jdkhome):
+ compile_with_javac(
+ dist,
+ temp,
+ jdkhome,
+ os.path.join(
utils.REPO_ROOT,
- 'src/main/java/com/android/tools/r8/utils/CompileDumpCompatR8.java')
+ 'src/main/java/com/android/tools/r8/utils/CompileDumpCompatR8.java'))
+
+def prepare_d8_wrapper(dist, temp, jdkhome):
+ compile_with_javac(
+ dist,
+ temp,
+ jdkhome,
+ os.path.join(
+ utils.REPO_ROOT,
+ 'src/main/java/com/android/tools/r8/utils/CompileDumpD8.java'))
+
+def compile_with_javac(dist, temp, jdkhome, path):
cmd = [
jdk.GetJavacExecutable(jdkhome),
- wrapper_file,
+ path,
'-d', temp,
'-cp', dist,
]
utils.PrintCmd(cmd)
subprocess.check_output(cmd)
- return temp
def is_hash(version):
return len(version) == 40
@@ -396,7 +410,8 @@
jar = args.r8_jar if args.r8_jar else download_distribution(version, args.nolib, temp)
if ':' not in jar and not os.path.exists(jar):
error("Distribution does not exist: " + jar)
- wrapper_dir = prepare_wrapper(jar, temp, jdkhome)
+ prepare_r8_wrapper(jar, temp, jdkhome)
+ prepare_d8_wrapper(jar, temp, jdkhome)
cmd = [jdk.GetJavaExecutable(jdkhome)]
if args.debug_agent:
if not args.nolib:
@@ -415,9 +430,9 @@
if hasattr(args, 'properties'):
cmd.extend(args.properties);
cmd.extend(determine_properties(build_properties))
- cmd.extend(['-cp', '%s:%s' % (wrapper_dir, jar)])
+ cmd.extend(['-cp', '%s:%s' % (temp, jar)])
if compiler == 'd8':
- cmd.append('com.android.tools.r8.D8')
+ cmd.append('com.android.tools.r8.utils.CompileDumpD8')
if compiler == 'l8':
cmd.append('com.android.tools.r8.L8')
if compiler.startswith('r8'):