Version 1.6.39
Cherry pick: Allow for adding library classes to ProguardBuilder
CL: https://r8-review.googlesource.com/c/r8/+/44221
Change-Id: I6dbe9bd07c44547f1997744727d9ef563bdedfbb
diff --git a/src/main/java/com/android/tools/r8/Version.java b/src/main/java/com/android/tools/r8/Version.java
index 42f429f..261ead8 100644
--- a/src/main/java/com/android/tools/r8/Version.java
+++ b/src/main/java/com/android/tools/r8/Version.java
@@ -11,7 +11,7 @@
// This field is accessed from release scripts using simple pattern matching.
// Therefore, changing this field could break our release scripts.
- public static final String LABEL = "1.6.38";
+ public static final String LABEL = "1.6.39";
private Version() {
}
diff --git a/src/test/java/com/android/tools/r8/ProguardTestBuilder.java b/src/test/java/com/android/tools/r8/ProguardTestBuilder.java
index bdc5b16..e53fdce 100644
--- a/src/test/java/com/android/tools/r8/ProguardTestBuilder.java
+++ b/src/test/java/com/android/tools/r8/ProguardTestBuilder.java
@@ -17,6 +17,7 @@
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.function.Consumer;
@@ -193,6 +194,28 @@
}
@Override
+ public ProguardTestBuilder addLibraryClasses(Class<?>... classes) {
+ addLibraryClasses(Arrays.asList(classes));
+ return self();
+ }
+
+ @Override
+ public ProguardTestBuilder addLibraryClasses(Collection<Class<?>> classes) {
+ List<Path> pathsForClasses = new ArrayList<>(classes.size());
+ for (Class<?> clazz : classes) {
+ pathsForClasses.add(ToolHelper.getClassFileForTestClass(clazz));
+ }
+ try {
+ Path out = getState().getNewTempFolder().resolve("out.jar");
+ TestBase.writeClassFilesToJar(out, pathsForClasses);
+ libraryjars.add(out);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ return self();
+ }
+
+ @Override
public ProguardTestBuilder addClasspathClasses(Collection<Class<?>> classes) {
throw new Unimplemented("No support for adding classpath data directly");
}
@@ -209,7 +232,10 @@
@Override
public ProguardTestBuilder setMinApi(AndroidApiLevel minApiLevel) {
- throw new Unimplemented("No support for setting min api");
+ if (backend == Backend.DEX) {
+ throw new Unimplemented("No support for setting min api");
+ }
+ return self();
}
@Override