Add support for --isolated-splits in CompileDumpCompatR8
Change-Id: I9133935d9e02e65aec937ae5e4165b5350ec2136
diff --git a/src/main/java/com/android/tools/r8/R8CommandParser.java b/src/main/java/com/android/tools/r8/R8CommandParser.java
index fa0a094..82bd08a 100644
--- a/src/main/java/com/android/tools/r8/R8CommandParser.java
+++ b/src/main/java/com/android/tools/r8/R8CommandParser.java
@@ -33,7 +33,7 @@
public class R8CommandParser extends BaseCompilerCommandParser<R8Command, R8Command.Builder> {
- static final String ISOLATED_SPLITS_FLAG = "--isolated-splits";
+ public static final String ISOLATED_SPLITS_FLAG = "--isolated-splits";
// Note: this must be a super-set of OPTIONS_WITH_TWO_PARAMETERS.
private static final Set<String> OPTIONS_WITH_ONE_PARAMETER =
diff --git a/src/main/java/com/android/tools/r8/utils/CompileDumpBase.java b/src/main/java/com/android/tools/r8/utils/CompileDumpBase.java
index c5cb640..f6c7269 100644
--- a/src/main/java/com/android/tools/r8/utils/CompileDumpBase.java
+++ b/src/main/java/com/android/tools/r8/utils/CompileDumpBase.java
@@ -29,6 +29,11 @@
.accept(new Object[] {androidPlatformBuild});
}
+ static void setIsolatedSplits(Object builder, boolean isolatedSplits) {
+ getReflectiveBuilderMethod(builder, "setEnableIsolatedSplits", boolean.class)
+ .accept(new Object[] {isolatedSplits});
+ }
+
static void addArtProfilesForRewriting(Object builder, Map<Path, Path> artProfileFiles) {
try {
Class<?> artProfileProviderClass =
diff --git a/src/main/java/com/android/tools/r8/utils/CompileDumpCompatR8.java b/src/main/java/com/android/tools/r8/utils/CompileDumpCompatR8.java
index 6760583..b67718a 100644
--- a/src/main/java/com/android/tools/r8/utils/CompileDumpCompatR8.java
+++ b/src/main/java/com/android/tools/r8/utils/CompileDumpCompatR8.java
@@ -3,6 +3,8 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.utils;
+import static com.android.tools.r8.R8CommandParser.ISOLATED_SPLITS_FLAG;
+
import com.android.tools.r8.CompatProguardCommandBuilder;
import com.android.tools.r8.CompilationFailedException;
import com.android.tools.r8.CompilationMode;
@@ -42,7 +44,8 @@
"--debug",
"--release",
"--enable-missing-library-api-modeling",
- "--android-platform-build");
+ "--android-platform-build",
+ ISOLATED_SPLITS_FLAG);
private static final List<String> VALID_OPTIONS_WITH_SINGLE_OPERAND =
Arrays.asList(
@@ -92,6 +95,7 @@
int threads = -1;
boolean enableMissingLibraryApiModeling = false;
boolean androidPlatformBuild = false;
+ boolean isolatedSplits = false;
for (int i = 0; i < args.length; i++) {
String option = args[i];
if (VALID_OPTIONS.contains(option)) {
@@ -122,6 +126,9 @@
case "--android-platform-build":
androidPlatformBuild = true;
break;
+ case ISOLATED_SPLITS_FLAG:
+ isolatedSplits = true;
+ break;
default:
throw new IllegalArgumentException("Unimplemented option: " + option);
}
@@ -225,6 +232,7 @@
addArtProfilesForRewriting(commandBuilder, artProfileFiles);
addStartupProfileProviders(commandBuilder, startupProfileFiles);
setAndroidPlatformBuild(commandBuilder, androidPlatformBuild);
+ setIsolatedSplits(commandBuilder, isolatedSplits);
setEnableExperimentalMissingLibraryApiModeling(commandBuilder, enableMissingLibraryApiModeling);
if (desugaredLibJson != null) {
commandBuilder.addDesugaredLibraryConfiguration(readAllBytesJava7(desugaredLibJson));