Enable adding deps to classpath when running externally provided R8
Change-Id: Ifb1573726b25b77964673a689f3753cee2af8b4b
diff --git a/build.gradle b/build.gradle
index 272fcdd..496dc65 100644
--- a/build.gradle
+++ b/build.gradle
@@ -533,7 +533,7 @@
mergeServiceFiles(it)
exclude { it.getRelativePath().getPathString() == "module-info.class" }
exclude { it.getRelativePath().getPathString().startsWith("META-INF/maven/") }
- baseName 'deps'
+ baseName 'deps_not_relocated'
}
task repackageDeps(type: ShadowJar) {
diff --git a/src/test/java/com/android/tools/r8/ExternalR8TestBuilder.java b/src/test/java/com/android/tools/r8/ExternalR8TestBuilder.java
index e9d85be..1daaad3 100644
--- a/src/test/java/com/android/tools/r8/ExternalR8TestBuilder.java
+++ b/src/test/java/com/android/tools/r8/ExternalR8TestBuilder.java
@@ -50,6 +50,8 @@
// Additional Proguard configuration files.
private List<Path> proguardConfigFiles = new ArrayList<>();
+ private boolean addR8ExternalDeps = false;
+
private ExternalR8TestBuilder(TestState state, Builder builder, Backend backend) {
super(state, builder, backend);
}
@@ -72,13 +74,18 @@
Path outputJar = outputFolder.resolve("output.jar");
Path proguardMapFile = outputFolder.resolve("output.jar.map");
+ String classPath =
+ addR8ExternalDeps
+ ? r8jar.toAbsolutePath().toString() + ":" + ToolHelper.DEPS_NOT_RELOCATED
+ : r8jar.toAbsolutePath().toString();
+
List<String> command = new ArrayList<>();
Collections.addAll(
command,
getJavaExecutable(),
"-ea",
"-cp",
- r8jar.toAbsolutePath().toString(),
+ classPath,
R8.class.getTypeName(),
"--output",
outputJar.toAbsolutePath().toString(),
@@ -182,4 +189,9 @@
this.r8jar = r8jar;
return self();
}
+
+ public ExternalR8TestBuilder addR8ExternalDepsToClasspath() {
+ this.addR8ExternalDeps = true;
+ return self();
+ }
}
diff --git a/src/test/java/com/android/tools/r8/ToolHelper.java b/src/test/java/com/android/tools/r8/ToolHelper.java
index 64c735d..1a17a62 100644
--- a/src/test/java/com/android/tools/r8/ToolHelper.java
+++ b/src/test/java/com/android/tools/r8/ToolHelper.java
@@ -118,6 +118,8 @@
public static final Path R8_JAR = Paths.get(LIBS_DIR, "r8.jar");
public static final Path R8_WITH_RELOCATED_DEPS_JAR =
Paths.get(LIBS_DIR, "r8_with_relocated_deps.jar");
+ public static final Path DEPS_NOT_RELOCATED =
+ Paths.get(LIBS_DIR, "deps_not_relocated.jar");
public enum DexVm {
ART_4_0_4_TARGET(Version.V4_0_4, Kind.TARGET),