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) {