Move CustomConversion gradle task to third_party and test
Bug: b/291198792
Change-Id: If8744f32b465a5e49570ce2d6feaefadeaae2aeb
diff --git a/.gitignore b/.gitignore
index 78a056c..439dc2c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -156,6 +156,8 @@
third_party/multidex
third_party/multidex.tar.gz
third_party/nest/*
+third_party/openjdk/custom_conversion
+third_party/openjdk/custom_conversion.tar.gz
third_party/openjdk/desugar_jdk_libs
third_party/openjdk/desugar_jdk_libs.tar.gz
third_party/openjdk/desugar_jdk_libs_11
diff --git a/build.gradle b/build.gradle
index 6c28944..41d7c5c 100644
--- a/build.gradle
+++ b/build.gradle
@@ -4,7 +4,6 @@
-import desugaredlibrary.CustomConversionAsmRewriterTask
import net.ltgt.gradle.errorprone.CheckSeverity
import org.gradle.internal.os.OperatingSystem
import tasks.DownloadDependency
@@ -94,12 +93,6 @@
}
output.resourcesDir = 'build/classes/cfSegments'
}
- libraryDesugarConversions {
- java {
- srcDirs = ['src/library_desugar/java']
- }
- output.resourcesDir = 'build/classes/library_desugar_conversions'
- }
debugTestResources {
java {
srcDirs = ['src/test/debugTestResources']
@@ -337,6 +330,7 @@
"kotlin/kotlin-compiler-1.8.0",
"kotlinx-coroutines-1.3.6",
"multidex",
+ "openjdk/custom_conversion",
"openjdk/openjdk-rt-1.8",
"openjdk/desugar_jdk_libs",
"openjdk/desugar_jdk_libs_11",
@@ -972,19 +966,7 @@
}
}
-task rawBuildLibraryDesugarConversions(type: Zip, dependsOn: downloadDeps) {
- from sourceSets.libraryDesugarConversions.output
- include "java/**/*.class"
- baseName 'library_desugar_conversions_raw'
- destinationDir file('build/tmp/desugaredlibrary')
-}
-
-task buildLibraryDesugarConversions(type: CustomConversionAsmRewriterTask, dependsOn: rawBuildLibraryDesugarConversions) {
- rawJar = file("build/tmp/desugaredlibrary/library_desugar_conversions_raw.zip")
- outputDirectory = file("build/libs")
-}
-
-task testJarSources(type: Jar, dependsOn: [testClasses, buildLibraryDesugarConversions]) {
+task testJarSources(type: Jar, dependsOn: [testClasses]) {
archiveFileName = "r8testsbase.jar"
from sourceSets.test.output
// We only want to include tests that use R8 when generating keep rules for applymapping.
@@ -1873,7 +1855,6 @@
test { task ->
dependsOn sourceSets.keepanno.output
- dependsOn buildLibraryDesugarConversions
// R8.jar is required for running bootstrap tests.
dependsOn r8
diff --git a/buildSrc/src/main/java/desugaredlibrary/AsmRewriter.java b/buildSrc/src/main/java/desugaredlibrary/AsmRewriter.java
deleted file mode 100644
index cc1fcf2..0000000
--- a/buildSrc/src/main/java/desugaredlibrary/AsmRewriter.java
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright (c) 2022, the R8 project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-package desugaredlibrary;
-
-import org.objectweb.asm.ClassReader;
-import org.objectweb.asm.ClassVisitor;
-import org.objectweb.asm.ClassWriter;
-import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
-
-public abstract class AsmRewriter {
-
- public static int ASM_VERSION = Opcodes.ASM9;
-
- public static byte[] transformInvoke(byte[] bytes, MethodTransformer transformer) {
- ClassReader reader = new ClassReader(bytes);
- ClassWriter writer = new ClassWriter(reader, 0);
- ClassVisitor subvisitor = new InvokeTransformer(writer, transformer);
- reader.accept(subvisitor, 0);
- return writer.toByteArray();
- }
-
- public static class InvokeTransformer extends ClassVisitor {
-
- private final MethodTransformer transformer;
-
- InvokeTransformer(ClassWriter writer, MethodTransformer transformer) {
- super(ASM_VERSION, writer);
- this.transformer = transformer;
- }
-
- @Override
- public MethodVisitor visitMethod(
- int access, String name, String descriptor, String signature, String[] exceptions) {
- MethodVisitor sub = super.visitMethod(access, name, descriptor, signature, exceptions);
- transformer.setMv(sub);
- return transformer;
- }
- }
-
- public static class MethodTransformer extends MethodVisitor {
-
- protected MethodTransformer(int api) {
- super(api);
- }
-
- public void setMv(MethodVisitor visitor) {
- this.mv = visitor;
- }
- }
-}
diff --git a/buildSrc/src/main/java/desugaredlibrary/CustomConversionAsmRewriterTask.java b/buildSrc/src/main/java/desugaredlibrary/CustomConversionAsmRewriterTask.java
deleted file mode 100644
index 1a09676..0000000
--- a/buildSrc/src/main/java/desugaredlibrary/CustomConversionAsmRewriterTask.java
+++ /dev/null
@@ -1,82 +0,0 @@
-// Copyright (c) 2022, the R8 project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-package desugaredlibrary;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.UncheckedIOException;
-import javax.inject.Inject;
-import org.gradle.api.DefaultTask;
-import org.gradle.api.file.RegularFileProperty;
-import org.gradle.api.tasks.InputFile;
-import org.gradle.api.tasks.OutputDirectory;
-import org.gradle.api.tasks.TaskAction;
-import org.gradle.workers.WorkAction;
-import org.gradle.workers.WorkParameters;
-import org.gradle.workers.WorkerExecutor;
-
-public class CustomConversionAsmRewriterTask extends DefaultTask {
-
- private final WorkerExecutor workerExecutor;
-
- private File rawJar;
- private File outputDirectory;
-
- @Inject
- public CustomConversionAsmRewriterTask(WorkerExecutor workerExecutor) {
- this.workerExecutor = workerExecutor;
- }
-
- @InputFile
- public File getRawJar() {
- return rawJar;
- }
-
- public void setRawJar(File rawJar) {
- this.rawJar = rawJar;
- }
-
- @OutputDirectory
- public File getOutputDirectory() {
- return outputDirectory;
- }
-
- public void setOutputDirectory(File outputDirectory) {
- this.outputDirectory = outputDirectory;
- }
-
- @TaskAction
- void exec() {
- workerExecutor
- .noIsolation()
- .submit(
- Run.class,
- parameters -> {
- parameters.getRawJar().set(rawJar);
- parameters.getOutputDirectory().set(outputDirectory);
- });
- }
-
- public interface RunParameters extends WorkParameters {
- RegularFileProperty getRawJar();
-
- RegularFileProperty getOutputDirectory();
- }
-
- public abstract static class Run implements WorkAction<RunParameters> {
-
- @Override
- public void execute() {
- try {
- RunParameters parameters = getParameters();
- CustomConversionAsmRewriter.generateJars(
- parameters.getRawJar().getAsFile().get().toPath(),
- parameters.getOutputDirectory().getAsFile().get().toPath());
- } catch (IOException e) {
- throw new UncheckedIOException(e);
- }
- }
- }
-}
diff --git a/src/test/java/com/android/tools/r8/ToolHelper.java b/src/test/java/com/android/tools/r8/ToolHelper.java
index ee9d68e..ce9a7fc 100644
--- a/src/test/java/com/android/tools/r8/ToolHelper.java
+++ b/src/test/java/com/android/tools/r8/ToolHelper.java
@@ -196,6 +196,7 @@
private static final AndroidApiLevel DEFAULT_MIN_SDK = AndroidApiLevel.I;
public static final String OPEN_JDK_DIR = THIRD_PARTY_DIR + "openjdk/";
+ public static final String CUSTOM_CONVERSION_DIR = OPEN_JDK_DIR + "custom_conversion/";
public static final String JAVA_8_RUNTIME = OPEN_JDK_DIR + "openjdk-rt-1.8/rt.jar";
public static final String JDK_11_TESTS_DIR = OPEN_JDK_DIR + "jdk-11-test/";
public static final String JDK_11_TIME_TESTS_DIR = JDK_11_TESTS_DIR + "java/time/";
@@ -257,9 +258,7 @@
public static final Path AAPT2 = Paths.get(THIRD_PARTY_DIR, "aapt2", "aapt2");
public static Path getDesugarLibConversions(CustomConversionVersion legacy) {
- return legacy == CustomConversionVersion.LEGACY
- ? Paths.get(LIBS_DIR, "library_desugar_conversions_legacy.jar")
- : Paths.get(LIBS_DIR, "library_desugar_conversions.jar");
+ return Paths.get(CUSTOM_CONVERSION_DIR, legacy.getFileName());
}
public static boolean isLocalDevelopment() {
diff --git a/buildSrc/src/main/java/desugaredlibrary/CustomConversionAsmRewriteDescription.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/customconversion/CustomConversionAsmRewriteDescription.java
similarity index 87%
rename from buildSrc/src/main/java/desugaredlibrary/CustomConversionAsmRewriteDescription.java
rename to src/test/java/com/android/tools/r8/desugar/desugaredlibrary/customconversion/CustomConversionAsmRewriteDescription.java
index d1b949b..54fbe3c 100644
--- a/buildSrc/src/main/java/desugaredlibrary/CustomConversionAsmRewriteDescription.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/customconversion/CustomConversionAsmRewriteDescription.java
@@ -1,8 +1,8 @@
-// Copyright (c) 2022, the R8 project authors. Please see the AUTHORS file
+// Copyright (c) 2023, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-package desugaredlibrary;
+package com.android.tools.r8.desugar.desugaredlibrary.customconversion;
import com.google.common.collect.ImmutableSet;
import java.util.HashMap;
@@ -16,8 +16,7 @@
private static final Set<String> ENUM_WRAP_CONVERT_OWNER =
ImmutableSet.of(
- "j$/nio/file/attribute/PosixFilePermission",
- "j$/util/stream/Collector$Characteristics");
+ "j$/nio/file/attribute/PosixFilePermission", "j$/util/stream/Collector$Characteristics");
private static final Set<String> WRAP_CONVERT_OWNER =
ImmutableSet.of(
"j$/util/stream/DoubleStream",
diff --git a/buildSrc/src/main/java/desugaredlibrary/CustomConversionAsmRewriter.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/customconversion/GenerateCustomConversion.java
similarity index 76%
rename from buildSrc/src/main/java/desugaredlibrary/CustomConversionAsmRewriter.java
rename to src/test/java/com/android/tools/r8/desugar/desugaredlibrary/customconversion/GenerateCustomConversion.java
index 95a5ecc..0712f45 100644
--- a/buildSrc/src/main/java/desugaredlibrary/CustomConversionAsmRewriter.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/customconversion/GenerateCustomConversion.java
@@ -1,17 +1,17 @@
-// Copyright (c) 2022, the R8 project authors. Please see the AUTHORS file
+// Copyright (c) 2023, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-package desugaredlibrary;
+package com.android.tools.r8.desugar.desugaredlibrary.customconversion;
-import static desugaredlibrary.AsmRewriter.ASM_VERSION;
-import static desugaredlibrary.CustomConversionAsmRewriteDescription.CONVERT;
-import static desugaredlibrary.CustomConversionAsmRewriteDescription.WRAP_CONVERT;
-import static desugaredlibrary.CustomConversionAsmRewriter.CustomConversionVersion.LEGACY;
+import static com.android.tools.r8.TestBase.transformer;
+import static com.android.tools.r8.desugar.desugaredlibrary.customconversion.CustomConversionAsmRewriteDescription.CONVERT;
+import static com.android.tools.r8.desugar.desugaredlibrary.customconversion.CustomConversionAsmRewriteDescription.WRAP_CONVERT;
import static org.objectweb.asm.Opcodes.INVOKESTATIC;
+import com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.CustomConversionVersion;
+import com.android.tools.r8.transformers.MethodTransformer;
import com.google.common.io.ByteStreams;
-import desugaredlibrary.AsmRewriter.MethodTransformer;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -27,33 +27,24 @@
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;
-public class CustomConversionAsmRewriter {
+public class GenerateCustomConversion {
- public enum CustomConversionVersion {
- LEGACY,
- LATEST
+ public GenerateCustomConversion(CustomConversionVersion version) {
+ this.version = version;
}
- public CustomConversionAsmRewriter(CustomConversionVersion legacy) {
- this.legacy = legacy;
- }
-
- private final CustomConversionVersion legacy;
+ private final CustomConversionVersion version;
private final Map<String, String> wrapConvertOwnerMap =
CustomConversionAsmRewriteDescription.getWrapConvertOwnerMap();
public static void generateJars(Path jar, Path outputDirectory) throws IOException {
for (CustomConversionVersion version : CustomConversionVersion.values()) {
- new CustomConversionAsmRewriter(version).convert(jar, outputDirectory);
+ new GenerateCustomConversion(version).convert(jar, outputDirectory);
}
}
private void convert(Path jar, Path outputDirectory) throws IOException {
- String fileName = jar.getFileName().toString();
- String newFileName =
- fileName.substring(0, fileName.length() - "_raw.jar".length())
- + (legacy == LEGACY ? "_legacy" : "")
- + ".jar";
+ String newFileName = version.getFileName();
Path convertedJar = outputDirectory.resolve(newFileName);
internalConvert(jar, convertedJar);
}
@@ -64,7 +55,7 @@
try (ZipOutputStream out =
new ZipOutputStream(
new BufferedOutputStream(Files.newOutputStream(convertedJar, options)))) {
- new CustomConversionAsmRewriter(legacy).convert(jar, out, legacy);
+ new GenerateCustomConversion(version).convert(jar, out, version);
}
}
@@ -88,7 +79,7 @@
if (!entry.getName().endsWith(".class")) {
return;
}
- if (legacy == LEGACY
+ if (legacy == CustomConversionVersion.LEGACY
&& (entry.getName().contains("java/nio/file")
|| entry.getName().contains("ApiFlips")
|| entry.getName().contains("java/adapter"))) {
@@ -118,13 +109,15 @@
}
private byte[] transformInvoke(byte[] bytes) {
- return AsmRewriter.transformInvoke(bytes, new CustomConversionRewriter(ASM_VERSION));
+ return transformer(bytes, null)
+ .addMethodTransformer(new CustomConversionMethodTransformer())
+ .transform();
}
- class CustomConversionRewriter extends MethodTransformer {
+ class CustomConversionMethodTransformer extends MethodTransformer {
- protected CustomConversionRewriter(int api) {
- super(api);
+ protected CustomConversionMethodTransformer() {
+ super();
}
@Override
@@ -154,6 +147,5 @@
String newOwner = wrapConvertOwnerMap.get(firstArg);
super.visitMethodInsn(opcode, newOwner, CONVERT, descriptor, isInterface);
}
-
}
}
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/customconversion/GenerateCustomConversionTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/customconversion/GenerateCustomConversionTest.java
new file mode 100644
index 0000000..781a2be
--- /dev/null
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/customconversion/GenerateCustomConversionTest.java
@@ -0,0 +1,110 @@
+// Copyright (c) 2023, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+package com.android.tools.r8.desugar.desugaredlibrary.customconversion;
+
+import static com.android.tools.r8.desugar.desugaredlibrary.DesugaredLibraryTestBase.getAllFilesWithSuffixInDirectory;
+import static com.android.tools.r8.utils.FileUtils.JAVA_EXTENSION;
+import static org.junit.Assert.assertTrue;
+
+import com.android.tools.r8.JavaCompilerTool;
+import com.android.tools.r8.TestBase;
+import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.TestParametersCollection;
+import com.android.tools.r8.TestRuntime;
+import com.android.tools.r8.TestRuntime.CfVm;
+import com.android.tools.r8.ToolHelper;
+import com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.CustomConversionVersion;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.stream.Stream;
+import java.util.zip.ZipFile;
+import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+
+@RunWith(Parameterized.class)
+public class GenerateCustomConversionTest extends TestBase {
+
+ private final TestParameters parameters;
+
+ @Parameters(name = "{0}")
+ public static TestParametersCollection data() {
+ return getTestParameters().withCfRuntime(CfVm.JDK11).build();
+ }
+
+ public GenerateCustomConversionTest(TestParameters parameters) {
+ this.parameters = parameters;
+ }
+
+ @Test
+ public void testCustomConversionIsUpToDate() throws IOException {
+ // Regenerate the files in a temp directory.
+ Path customConversionDir = temp.newFolder("custom_conversion").toPath();
+ Files.createDirectories(customConversionDir);
+ generateCustomConversions(customConversionDir);
+
+ for (CustomConversionVersion version : CustomConversionVersion.values()) {
+ // Assert the file is generated.
+ Path newFile = customConversionDir.resolve(version.getFileName());
+ assertTrue(Files.exists(newFile));
+
+ // Assert the file matches the one in third_party.
+ Path thirdPartyFile = ToolHelper.getDesugarLibConversions(version);
+ assertTrue(filesAreEqual(newFile, thirdPartyFile));
+ }
+ }
+
+ private static Path[] extractClasspath(Path customConversionDir) throws IOException {
+ try (Stream<Path> files = Files.walk(customConversionDir)) {
+ return files
+ .filter(
+ path ->
+ path.toString().endsWith(JAVA_EXTENSION) && !path.toString().startsWith("java"))
+ .toArray(Path[]::new);
+ }
+ }
+
+ private static void generateCustomConversions(Path destinationDir) throws IOException {
+ // Get the sources for the custom conversions.
+ Path customConversionDir = Paths.get(ToolHelper.LIBRARY_DESUGAR_SOURCE_DIR, "java");
+ Path[] sourceFiles =
+ getAllFilesWithSuffixInDirectory(customConversionDir.resolve("java"), JAVA_EXTENSION);
+ assert sourceFiles.length > 0;
+ Path[] classpath = extractClasspath(customConversionDir);
+ assert classpath.length > 0;
+
+ // Generate the raw jar.
+ TemporaryFolder folder =
+ new TemporaryFolder(ToolHelper.isLinux() ? null : Paths.get("build", "tmp").toFile());
+ folder.create();
+ Path compiledClasspath = folder.newFolder().toPath().resolve("classpath.jar");
+ JavaCompilerTool.create(TestRuntime.getCheckedInJdk8(), folder)
+ .addSourceFiles(classpath)
+ .setOutputPath(compiledClasspath)
+ .compile();
+ Path output = folder.newFolder().toPath().resolve("raw.jar");
+ JavaCompilerTool.create(TestRuntime.getCheckedInJdk8(), folder)
+ .addClasspathFiles(compiledClasspath)
+ .addSourceFiles(sourceFiles)
+ .setOutputPath(output)
+ .compile();
+ try (ZipFile file = new ZipFile(output.toFile())) {
+ assert file.size() > 0;
+ }
+
+ // Asm rewrite the jar.
+ GenerateCustomConversion.generateJars(output, destinationDir);
+
+ folder.delete();
+ }
+
+ public static void main(String[] args) throws IOException {
+ generateCustomConversions(Paths.get(ToolHelper.CUSTOM_CONVERSION_DIR));
+ }
+}
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/test/LibraryDesugaringSpecification.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/test/LibraryDesugaringSpecification.java
index de43daf..3f70af1 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/test/LibraryDesugaringSpecification.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/test/LibraryDesugaringSpecification.java
@@ -88,8 +88,18 @@
}
public enum CustomConversionVersion {
- LEGACY,
- LATEST
+ LEGACY("library_desugar_conversions_legacy.jar"),
+ LATEST("library_desugar_conversions.jar");
+
+ private final String fileName;
+
+ CustomConversionVersion(String fileName) {
+ this.fileName = fileName;
+ }
+
+ public String getFileName() {
+ return fileName;
+ }
}
private static Path tempLibraryJdk11UndesugarCache;
diff --git a/third_party/openjdk/custom_conversion.tar.gz.sha1 b/third_party/openjdk/custom_conversion.tar.gz.sha1
new file mode 100644
index 0000000..df8ff0c
--- /dev/null
+++ b/third_party/openjdk/custom_conversion.tar.gz.sha1
@@ -0,0 +1 @@
+61845e2ce51d01eb3f7a4177fdcd9f4a94f3bff0
\ No newline at end of file
diff --git a/tools/archive.py b/tools/archive.py
index 27c3b25..dda7ee2 100755
--- a/tools/archive.py
+++ b/tools/archive.py
@@ -3,11 +3,13 @@
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.
-import create_maven_release
-import gradle
import jdk
import optparse
import os
+
+import create_maven_release
+import gradle
+
try:
import resource
except ImportError:
@@ -16,10 +18,8 @@
import shutil
import subprocess
import sys
-import toolhelper
import utils
import zipfile
-from build_r8lib import build_r8lib
ARCHIVE_BUCKET = 'r8-releases'
@@ -165,7 +165,6 @@
utils.R8LIB_NO_DEPS,
utils.R8RETRACE,
utils.R8RETRACE_NO_DEPS,
- utils.LIBRARY_DESUGAR_CONVERSIONS,
utils.KEEPANNO_ANNOTATIONS_TARGET,
'-Pno_internal'
])
diff --git a/tools/utils.py b/tools/utils.py
index c737776..b7266ed 100644
--- a/tools/utils.py
+++ b/tools/utils.py
@@ -5,6 +5,7 @@
# Different utility functions used accross scripts
import hashlib
+import jdk
import json
import os
import re
@@ -16,7 +17,6 @@
import zipfile
import defines
-import jdk
from thread_utils import print_thread
ANDROID_JAR_DIR = 'third_party/android_jar/lib-v{api}'
@@ -35,6 +35,8 @@
BUILD_JAVA_MAIN_DIR = os.path.join(BUILD, 'classes', 'java', 'main')
BUILD_TEST_DIR = os.path.join(BUILD, 'classes', 'test')
LIBS = os.path.join(BUILD, 'libs')
+CUSTOM_CONVERSION_DIR = os.path.join(
+ THIRD_PARTY, 'openjdk', 'desugar_jdk_libs', 'custom_conversion')
GENERATED_LICENSE_DIR = os.path.join(BUILD, 'generatedLicense')
SRC_ROOT = os.path.join(REPO_ROOT, 'src', 'main', 'java')
TEST_ROOT = os.path.join(REPO_ROOT, 'src', 'test', 'java')
@@ -47,7 +49,6 @@
R8RETRACE = 'R8Retrace'
R8RETRACE_NO_DEPS = 'R8RetraceNoDeps'
R8_SRC = 'sourceJar'
-LIBRARY_DESUGAR_CONVERSIONS = 'buildLibraryDesugarConversions'
R8_TESTS_TARGET = 'TestJar'
R8_TESTS_DEPS_TARGET = 'RepackageTestDeps'
R8LIB_TESTS_TARGET = 'configureTestForR8Lib'
@@ -70,8 +71,10 @@
R8LIB_TESTS_DEPS_JAR = R8_TESTS_DEPS_JAR
MAVEN_ZIP = os.path.join(LIBS, 'r8.zip')
MAVEN_ZIP_LIB = os.path.join(LIBS, 'r8lib.zip')
-LIBRARY_DESUGAR_CONVERSIONS_LEGACY_ZIP = os.path.join(LIBS, 'library_desugar_conversions_legacy.jar')
-LIBRARY_DESUGAR_CONVERSIONS_ZIP = os.path.join(LIBS, 'library_desugar_conversions.jar')
+LIBRARY_DESUGAR_CONVERSIONS_LEGACY_ZIP = os.path.join(
+ CUSTOM_CONVERSION_DIR, 'library_desugar_conversions_legacy.jar')
+LIBRARY_DESUGAR_CONVERSIONS_ZIP = os.path.join(
+ CUSTOM_CONVERSION_DIR, 'library_desugar_conversions.jar')
KEEPANNO_ANNOTATIONS_JAR = os.path.join(LIBS, 'keepanno-annotations.jar')
DESUGAR_CONFIGURATION = os.path.join(