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