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