Re-add R8 desugarer wrappers to embedded_tools

Prerequisite for enabling D8 as the default desugarer. Also refactors the Bazel
desugarer to not rely on com.android.tools.r8.StringResource, thus avoiding a
26MB jar import.

RELNOTES: embedded_tools packages R8 desugarer again
PiperOrigin-RevId: 453923029
Change-Id: I32d468a43c2a446fb490929af449a45800709602
diff --git a/src/tools/android/java/com/google/devtools/build/android/r8/BUILD b/src/tools/android/java/com/google/devtools/build/android/r8/BUILD
index 400d259..cc606c3 100644
--- a/src/tools/android/java/com/google/devtools/build/android/r8/BUILD
+++ b/src/tools/android/java/com/google/devtools/build/android/r8/BUILD
@@ -15,11 +15,12 @@
 filegroup(
     name = "embedded_tools",
     srcs = glob(
-        ["*.java"],
+        [
+            "*.java",
+            "desugar/*.java",
+        ],
         exclude = [
             "NoAndroidSdkStub.java",
-            "CoreLibraryDesugar.java",
-            "Desugar.java",
         ],
     ) + ["BUILD.tools"],
     visibility = ["//visibility:public"],
@@ -29,17 +30,20 @@
     name = "r8",
     srcs = select({
         "//external:has_androidsdk": glob(
-            ["*.java"],
+            [
+                "*.java",
+                "desugar/*.java",
+            ],
             exclude = [
                 "NoAndroidSdkStub.java",
-                "CoreLibraryDesugar.java",
-                "Desugar.java",
-                "desugar/*.java",
             ],
         ),
         "//conditions:default": ["NoAndroidSdkStub.java"],
     }),
     visibility = ["//src/test/java/com/google/devtools/build/android/r8:__pkg__"],
+    runtime_deps = [
+        "//src/tools/android/java/com/google/devtools/build/android/desugar/dependencies",
+    ],
     deps = [
         "//src/main/java/com/google/devtools/build/lib/worker:work_request_handlers",
         "//src/main/java/com/google/devtools/common/options",
diff --git a/src/tools/android/java/com/google/devtools/build/android/r8/BUILD.tools b/src/tools/android/java/com/google/devtools/build/android/r8/BUILD.tools
index 1b46a5a..6c3098f 100644
--- a/src/tools/android/java/com/google/devtools/build/android/r8/BUILD.tools
+++ b/src/tools/android/java/com/google/devtools/build/android/r8/BUILD.tools
@@ -2,7 +2,7 @@
 
 java_library(
     name = "r8",
-    srcs = glob(["*.java"]),
+    srcs = glob(["*.java", "desugar/*.java"]),
     deps = [
         "//external:android/d8_jar_import",
         "//src/tools/android/java/com/google/devtools/build/android:all_android_tools",
diff --git a/src/tools/android/java/com/google/devtools/build/android/r8/CoreLibraryDesugar.java b/src/tools/android/java/com/google/devtools/build/android/r8/CoreLibraryDesugar.java
index f679793..a05a0d7 100644
--- a/src/tools/android/java/com/google/devtools/build/android/r8/CoreLibraryDesugar.java
+++ b/src/tools/android/java/com/google/devtools/build/android/r8/CoreLibraryDesugar.java
@@ -24,7 +24,6 @@
 import com.android.tools.r8.DiagnosticsHandler;
 import com.android.tools.r8.L8;
 import com.android.tools.r8.L8Command;
-import com.android.tools.r8.StringResource;
 import com.android.tools.r8.errors.InterfaceDesugarMissingTypeDiagnostic;
 import com.google.common.collect.ImmutableList;
 import com.google.devtools.build.android.Converters.ExistingPathConverter;
@@ -175,7 +174,7 @@
       Path input,
       Path output,
       Path desugaredLibConfig)
-      throws CompilationFailedException {
+      throws CompilationFailedException, IOException {
     checkArgument(!Files.isDirectory(input), "Input must be a jar (%s is a directory)", input);
     DependencyCollector dependencyCollector = DependencyCollector.NoWriteCollectors.FAIL_ON_MISSING;
     OutputConsumer consumer =
@@ -189,7 +188,7 @@
             .setProgramConsumer(consumer);
     bootclasspathProviders.forEach(builder::addLibraryResourceProvider);
     if (desugaredLibConfig != null) {
-      builder.addDesugaredLibraryConfiguration(StringResource.fromFile(desugaredLibConfig));
+      builder.addDesugaredLibraryConfiguration(Files.readString(desugaredLibConfig));
     }
     L8.run(builder.build());
   }
diff --git a/src/tools/android/java/com/google/devtools/build/android/r8/Desugar.java b/src/tools/android/java/com/google/devtools/build/android/r8/Desugar.java
index 606b05d..3cf6e74 100644
--- a/src/tools/android/java/com/google/devtools/build/android/r8/Desugar.java
+++ b/src/tools/android/java/com/google/devtools/build/android/r8/Desugar.java
@@ -25,7 +25,6 @@
 import com.android.tools.r8.D8Command;
 import com.android.tools.r8.Diagnostic;
 import com.android.tools.r8.DiagnosticsHandler;
-import com.android.tools.r8.StringResource;
 import com.android.tools.r8.errors.InterfaceDesugarMissingTypeDiagnostic;
 import com.android.tools.r8.utils.StringDiagnostic;
 import com.google.common.collect.ImmutableList;
@@ -482,7 +481,7 @@
               .setProgramConsumer(consumer);
       bootclasspathProviders.forEach(builder::addLibraryResourceProvider);
       if (desugaredLibConfig != null) {
-        builder.addDesugaredLibraryConfiguration(StringResource.fromFile(desugaredLibConfig));
+        builder.addDesugaredLibraryConfiguration(Files.readString(desugaredLibConfig));
       }
       D8.run(builder.build());
     }