Add library modeling and platform build flags to dump.

Change-Id: Ie2bc3635f548b23a72e1d614885a72a8f702761c
diff --git a/src/main/java/com/android/tools/r8/BaseCompilerCommand.java b/src/main/java/com/android/tools/r8/BaseCompilerCommand.java
index 471988a..7e93145 100644
--- a/src/main/java/com/android/tools/r8/BaseCompilerCommand.java
+++ b/src/main/java/com/android/tools/r8/BaseCompilerCommand.java
@@ -135,6 +135,9 @@
         .setOptimizeMultidexForLinearAlloc(isOptimizeMultidexForLinearAlloc())
         .setThreadCount(getThreadCount())
         .setDesugarState(getDesugarState());
+    if (getAndroidPlatformBuild()) {
+      builder.setAndroidPlatformBuild(true);
+    }
   }
 
   /**
diff --git a/src/main/java/com/android/tools/r8/D8Command.java b/src/main/java/com/android/tools/r8/D8Command.java
index d6dec04..203b1d6 100644
--- a/src/main/java/com/android/tools/r8/D8Command.java
+++ b/src/main/java/com/android/tools/r8/D8Command.java
@@ -672,6 +672,7 @@
         .setIntermediate(intermediate)
         .setDesugaredLibraryConfiguration(desugaredLibrarySpecification)
         .setMainDexKeepRules(mainDexKeepRules)
+        .setEnableMissingLibraryApiModeling(enableMissingLibraryApiModeling)
         .build();
   }
 }
diff --git a/src/main/java/com/android/tools/r8/R8Command.java b/src/main/java/com/android/tools/r8/R8Command.java
index 50b5de8..309a475 100644
--- a/src/main/java/com/android/tools/r8/R8Command.java
+++ b/src/main/java/com/android/tools/r8/R8Command.java
@@ -1091,6 +1091,7 @@
         .setProguardConfiguration(proguardConfiguration)
         .setMainDexKeepRules(mainDexKeepRules)
         .setDesugaredLibraryConfiguration(desugaredLibrarySpecification)
+        .setEnableMissingLibraryApiModeling(enableMissingLibraryApiModeling)
         .build();
   }
 }
diff --git a/src/main/java/com/android/tools/r8/dump/DumpOptions.java b/src/main/java/com/android/tools/r8/dump/DumpOptions.java
index 224d24a..a604608 100644
--- a/src/main/java/com/android/tools/r8/dump/DumpOptions.java
+++ b/src/main/java/com/android/tools/r8/dump/DumpOptions.java
@@ -40,6 +40,9 @@
   private static final String MINIFICATION_KEY = "minification";
   private static final String FORCE_PROGUARD_COMPATIBILITY_KEY = "force-proguard-compatibility";
   private static final String SYSTEM_PROPERTY_PREFIX = "system-property-";
+  private static final String ENABLE_MISSING_LIBRARY_API_MODELING =
+      "enable-missing-library-api-modeling";
+  private static final String ANDROID_PLATFORM_BUILD = "android-platform-build";
 
   private final Tool tool;
   private final CompilationMode compilationMode;
@@ -58,6 +61,8 @@
   private final FeatureSplitConfiguration featureSplitConfiguration;
   private final ProguardConfiguration proguardConfiguration;
   private final List<ProguardConfigurationRule> mainDexKeepRules;
+  private final boolean enableMissingLibraryApiModeling;
+  private final boolean isAndroidPlatformBuild;
 
   private final Map<String, String> systemProperties;
 
@@ -80,6 +85,8 @@
       FeatureSplitConfiguration featureSplitConfiguration,
       ProguardConfiguration proguardConfiguration,
       List<ProguardConfigurationRule> mainDexKeepRules,
+      boolean enableMissingLibraryApiModeling,
+      boolean isAndroidPlatformBuild,
       Map<String, String> systemProperties,
       boolean dumpInputToFile) {
     this.tool = tool;
@@ -97,6 +104,8 @@
     this.featureSplitConfiguration = featureSplitConfiguration;
     this.proguardConfiguration = proguardConfiguration;
     this.mainDexKeepRules = mainDexKeepRules;
+    this.enableMissingLibraryApiModeling = enableMissingLibraryApiModeling;
+    this.isAndroidPlatformBuild = isAndroidPlatformBuild;
     this.systemProperties = systemProperties;
     this.dumpInputToFile = dumpInputToFile;
   }
@@ -115,6 +124,10 @@
       addDumpEntry(builder, THREAD_COUNT_KEY, threadCount);
     }
     addDumpEntry(builder, DESUGAR_STATE_KEY, desugarState);
+    addDumpEntry(builder, ENABLE_MISSING_LIBRARY_API_MODELING, enableMissingLibraryApiModeling);
+    if (isAndroidPlatformBuild) {
+      addDumpEntry(builder, ANDROID_PLATFORM_BUILD, isAndroidPlatformBuild);
+    }
     addOptionalDumpEntry(builder, INTERMEDIATE_KEY, intermediate);
     addOptionalDumpEntry(builder, INCLUDE_DATA_RESOURCES_KEY, includeDataResources);
     addOptionalDumpEntry(builder, TREE_SHAKING_KEY, treeShaking);
@@ -273,6 +286,9 @@
     private ProguardConfiguration proguardConfiguration;
     private List<ProguardConfigurationRule> mainDexKeepRules;
 
+    private boolean enableMissingLibraryApiModeling = false;
+    private boolean isAndroidPlatformBuild = false;
+
     private Map<String, String> systemProperties = new HashMap<>();
 
     // Reporting only.
@@ -362,6 +378,16 @@
       return this;
     }
 
+    public Builder setEnableMissingLibraryApiModeling(boolean value) {
+      enableMissingLibraryApiModeling = value;
+      return this;
+    }
+
+    public Builder setAndroidPlatformBuild(boolean value) {
+      isAndroidPlatformBuild = value;
+      return this;
+    }
+
     public Builder setSystemProperty(String key, String value) {
       this.systemProperties.put(key, value);
       return this;
@@ -398,6 +424,8 @@
           featureSplitConfiguration,
           proguardConfiguration,
           mainDexKeepRules,
+          enableMissingLibraryApiModeling,
+          isAndroidPlatformBuild,
           systemProperties,
           dumpInputToFile);
     }
diff --git a/src/test/java/com/android/tools/r8/dump/DumpInputsTest.java b/src/test/java/com/android/tools/r8/dump/DumpInputsTest.java
index 5437118..05824cc 100644
--- a/src/test/java/com/android/tools/r8/dump/DumpInputsTest.java
+++ b/src/test/java/com/android/tools/r8/dump/DumpInputsTest.java
@@ -105,6 +105,7 @@
     Path unzipped = temp.newFolder().toPath();
     ZipUtils.unzip(dumpFile.toString(), unzipped.toFile());
     assertTrue(Files.exists(unzipped.resolve("r8-version")));
+    assertTrue(Files.exists(unzipped.resolve("build.properties")));
     assertTrue(Files.exists(unzipped.resolve("program.jar")));
     assertTrue(Files.exists(unzipped.resolve("library.jar")));
     if (hasClasspath) {