Add support for desugared library in D8 compile dumps
Change-Id: I61c90834cd456bd069854b347a9b80df9180f256
diff --git a/src/main/java/com/android/tools/r8/utils/CompileDumpD8.java b/src/main/java/com/android/tools/r8/utils/CompileDumpD8.java
index b63f5d8..137dfe7 100644
--- a/src/main/java/com/android/tools/r8/utils/CompileDumpD8.java
+++ b/src/main/java/com/android/tools/r8/utils/CompileDumpD8.java
@@ -8,6 +8,7 @@
import com.android.tools.r8.D8;
import com.android.tools.r8.D8Command;
import com.android.tools.r8.OutputMode;
+import com.android.tools.r8.StringConsumer;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
@@ -49,7 +50,9 @@
"--main-dex-list-output",
"--desugared-lib",
"--threads",
- "--startup-profile");
+ "--startup-profile",
+ "--desugared-lib",
+ "--desugared-lib-pg-conf-output");
private static final List<String> VALID_OPTIONS_WITH_TWO_OPERANDS =
Arrays.asList("--art-profile");
@@ -58,6 +61,7 @@
OutputMode outputMode = OutputMode.DexIndexed;
Path outputPath = null;
Path desugaredLibJson = null;
+ Path desugaredLibConfig = null;
CompilationMode compilationMode = CompilationMode.RELEASE;
List<Path> program = new ArrayList<>();
List<Path> library = new ArrayList<>();
@@ -125,6 +129,11 @@
desugaredLibJson = Paths.get(operand);
break;
}
+ case "--desugared-lib-pg-conf-output":
+ {
+ desugaredLibConfig = Paths.get(operand);
+ break;
+ }
case "--threads":
{
threads = Integer.parseInt(operand);
@@ -174,6 +183,10 @@
if (desugaredLibJson != null) {
commandBuilder.addDesugaredLibraryConfiguration(readAllBytesJava7(desugaredLibJson));
}
+ if (desugaredLibConfig != null) {
+ StringConsumer consumer = new StringConsumer.FileConsumer(desugaredLibConfig);
+ commandBuilder.setDesugaredLibraryKeepRuleConsumer(consumer);
+ }
commandBuilder.setMinApiLevel(minApi);
D8Command command = commandBuilder.build();
if (threads != -1) {