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