summaryrefslogtreecommitdiffstats
path: root/jack-tests/src/com/android/jack/test/toolchain
diff options
context:
space:
mode:
Diffstat (limited to 'jack-tests/src/com/android/jack/test/toolchain')
-rw-r--r--jack-tests/src/com/android/jack/test/toolchain/DummyToolchain.java4
-rw-r--r--jack-tests/src/com/android/jack/test/toolchain/IToolchain.java10
-rw-r--r--jack-tests/src/com/android/jack/test/toolchain/JackApiToolchain.java19
-rw-r--r--jack-tests/src/com/android/jack/test/toolchain/JackCliToolchain.java24
-rw-r--r--jack-tests/src/com/android/jack/test/toolchain/LegacyJillToolchain.java14
-rw-r--r--jack-tests/src/com/android/jack/test/toolchain/LegacyToolchain.java13
-rw-r--r--jack-tests/src/com/android/jack/test/toolchain/Toolchain.java21
7 files changed, 66 insertions, 39 deletions
diff --git a/jack-tests/src/com/android/jack/test/toolchain/DummyToolchain.java b/jack-tests/src/com/android/jack/test/toolchain/DummyToolchain.java
index 30391f3..b1f7041 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/DummyToolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/DummyToolchain.java
@@ -34,11 +34,11 @@ public class DummyToolchain extends AndroidToolchain {
public DummyToolchain() {}
@Override
- public void srcToExe(@CheckForNull String classpath, @Nonnull File out, boolean zipFile,
+ public void srcToExe(@Nonnull File out, boolean zipFile,
@Nonnull File... sources) throws Exception {}
@Override
- public void srcToLib(@CheckForNull String classpath, @Nonnull File out, boolean zipFiles,
+ public void srcToLib(@Nonnull File out, boolean zipFiles,
@Nonnull File... sources) throws Exception {}
@Override
diff --git a/jack-tests/src/com/android/jack/test/toolchain/IToolchain.java b/jack-tests/src/com/android/jack/test/toolchain/IToolchain.java
index 2495eea..44ed63c 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/IToolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/IToolchain.java
@@ -22,7 +22,6 @@ import java.io.File;
import java.io.OutputStream;
import java.util.List;
-import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
import javax.annotation.processing.Processor;
@@ -32,11 +31,9 @@ import javax.annotation.processing.Processor;
*/
public interface IToolchain {
- void srcToExe(@CheckForNull String classpath, @Nonnull File out, boolean zipFile,
- @Nonnull File... sources) throws Exception;
+ void srcToExe(@Nonnull File out, boolean zipFile, @Nonnull File... sources) throws Exception;
- void srcToLib(@CheckForNull String classpath, @Nonnull File out, boolean zipFiles,
- @Nonnull File... sources) throws Exception;
+ void srcToLib(@Nonnull File out, boolean zipFiles, @Nonnull File... sources) throws Exception;
void libToExe(@Nonnull File in, @Nonnull File out, boolean zipFile) throws Exception;
@@ -63,6 +60,9 @@ public interface IToolchain {
String getLibraryExtension();
@Nonnull
+ IToolchain addToClasspath(@Nonnull File... classpath);
+
+ @Nonnull
IToolchain setWithDebugInfos(boolean withDebugInfos);
@Nonnull
diff --git a/jack-tests/src/com/android/jack/test/toolchain/JackApiToolchain.java b/jack-tests/src/com/android/jack/test/toolchain/JackApiToolchain.java
index a194d08..2185630 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/JackApiToolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/JackApiToolchain.java
@@ -27,7 +27,6 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
-import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
/**
@@ -48,12 +47,12 @@ public class JackApiToolchain extends JackBasedToolchain {
}
@Override
- public void srcToExe(@CheckForNull String classpath, @Nonnull File out, boolean zipFile,
+ public void srcToExe(@Nonnull File out, boolean zipFile,
@Nonnull File... sources) throws Exception {
try {
- srcToCommon(classpath, sources);
+ srcToCommon(sources);
if (zipFile) {
jackOptions.setOutputZip(out);
@@ -72,12 +71,12 @@ public class JackApiToolchain extends JackBasedToolchain {
}
@Override
- public void srcToLib(@CheckForNull String classpath, @Nonnull File out, boolean zipFiles,
+ public void srcToLib(@Nonnull File out, boolean zipFiles,
@Nonnull File... sources) throws Exception {
try {
- srcToCommon(classpath, sources);
+ srcToCommon(sources);
if (zipFiles) {
jackOptions.setJayceOutputZip(out);
@@ -95,7 +94,7 @@ public class JackApiToolchain extends JackBasedToolchain {
}
}
- private void srcToCommon(@CheckForNull String classpath, @Nonnull File... sources) {
+ private void srcToCommon(@Nonnull File... sources) {
addProperties(properties, jackOptions);
jackOptions.setSanityChecks(sanityChecks);
@@ -104,7 +103,9 @@ public class JackApiToolchain extends JackBasedToolchain {
jackOptions.applyShrobFlags();
}
- jackOptions.setClasspath(classpath);
+ if (classpath.size() > 0) {
+ jackOptions.setClasspath(getClasspathAsString());
+ }
fillEcjArgs(sources);
@@ -181,6 +182,10 @@ public class JackApiToolchain extends JackBasedToolchain {
jackOptions.setJarjarRulesFile(jarjarRules);
+ if (classpath.size() > 0) {
+ jackOptions.setClasspath(getClasspathAsString());
+ }
+
if (jackOptions.getFlags() != null) {
jackOptions.applyShrobFlags();
}
diff --git a/jack-tests/src/com/android/jack/test/toolchain/JackCliToolchain.java b/jack-tests/src/com/android/jack/test/toolchain/JackCliToolchain.java
index 3322d95..574f446 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/JackCliToolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/JackCliToolchain.java
@@ -56,12 +56,12 @@ public class JackCliToolchain extends JackBasedToolchain {
}
@Override
- public void srcToExe(@CheckForNull String classpath, @Nonnull File out,
- boolean zipFile, @Nonnull File... sources) throws Exception {
+ public void srcToExe(@Nonnull File out, boolean zipFile, @Nonnull File... sources)
+ throws Exception {
List<String> args = new ArrayList<String>();
- srcToCommon(args, classpath, sources);
+ srcToCommon(args, sources);
if (zipFile) {
args.add("--output-dex-zip");
@@ -102,12 +102,12 @@ public class JackCliToolchain extends JackBasedToolchain {
}
@Override
- public void srcToLib(@CheckForNull String classpath, @Nonnull File out,
- boolean zipFiles, @Nonnull File... sources) throws Exception {
+ public void srcToLib(@Nonnull File out, boolean zipFiles, @Nonnull File... sources)
+ throws Exception {
List<String> args = new ArrayList<String>();
- srcToCommon(args, classpath, sources);
+ srcToCommon(args, sources);
if (zipFiles) {
args.add("--output-jack");
@@ -133,8 +133,7 @@ public class JackCliToolchain extends JackBasedToolchain {
}
- private void srcToCommon(@Nonnull List<String> args, @CheckForNull String classpath,
- @Nonnull File... sources) {
+ private void srcToCommon(@Nonnull List<String> args, @Nonnull File... sources) {
args.add("java");
args.add("-cp");
args.add(jackPrebuilt.getAbsolutePath());
@@ -154,9 +153,9 @@ public class JackCliToolchain extends JackBasedToolchain {
addProperties(properties, args);
- if (classpath != null) {
+ if (classpath.size() > 0) {
args.add("--classpath");
- args.add(classpath);
+ args.add(getClasspathAsString());
}
for (File res : resImport) {
@@ -268,6 +267,11 @@ public class JackCliToolchain extends JackBasedToolchain {
addProperties(properties, args);
+ if (classpath.size() > 0) {
+ args.add("--classpath");
+ args.add(getClasspathAsString());
+ }
+
if (jarjarRules != null) {
args.add("--config-jarjar");
args.add(jarjarRules.getAbsolutePath());
diff --git a/jack-tests/src/com/android/jack/test/toolchain/LegacyJillToolchain.java b/jack-tests/src/com/android/jack/test/toolchain/LegacyJillToolchain.java
index 1e3e37e..ae4f273 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/LegacyJillToolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/LegacyJillToolchain.java
@@ -44,15 +44,15 @@ public class LegacyJillToolchain extends JillBasedToolchain {
}
@Override
- public void srcToExe(@Nonnull String classpath, @Nonnull File out, boolean zipFile,
- @Nonnull File... sources) throws Exception {
+ public void srcToExe(@Nonnull File out, boolean zipFile, @Nonnull File... sources)
+ throws Exception {
try {
File jarFile = AbstractTestTools.createTempFile("legacyLib", ".jar");
File jarFileJarjar = AbstractTestTools.createTempFile("legacyLibJarjar", ".jar");
File jarFileProguard = AbstractTestTools.createTempFile("legacyLibProguard", ".jar");
- srcToLib(classpath, jarFile, true /* zipFiles = */, sources);
+ srcToLib(jarFile, true /* zipFiles = */, sources);
if (jarjarRules != null) {
processWithJarJar(jarjarRules, jarFile, jarFileJarjar);
@@ -61,7 +61,7 @@ public class LegacyJillToolchain extends JillBasedToolchain {
}
if (proguardFlags.size() > 0) {
- processWithProguard(classpath, proguardFlags, jarFileJarjar,
+ processWithProguard(getClasspathAsString(), proguardFlags, jarFileJarjar,
jarFileProguard);
} else {
jarFileProguard = jarFileJarjar;
@@ -78,8 +78,8 @@ public class LegacyJillToolchain extends JillBasedToolchain {
}
@Override
- public void srcToLib(@Nonnull String classpath, @Nonnull File out, boolean zipFiles,
- @Nonnull File... sources) throws Exception {
+ public void srcToLib(@Nonnull File out, boolean zipFiles, @Nonnull File... sources)
+ throws Exception {
if (withDebugInfos) {
// TODO(jmhenaff): warning log?
@@ -93,7 +93,7 @@ public class LegacyJillToolchain extends JillBasedToolchain {
classesDir = out;
}
- compileWithExternalRefCompiler(sources, classpath, classesDir);
+ compileWithExternalRefCompiler(sources, getClasspathAsString(), classesDir);
if (staticLibs.size() > 0) {
for (File staticLib : staticLibs) {
diff --git a/jack-tests/src/com/android/jack/test/toolchain/LegacyToolchain.java b/jack-tests/src/com/android/jack/test/toolchain/LegacyToolchain.java
index 07af214..8603980 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/LegacyToolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/LegacyToolchain.java
@@ -51,7 +51,7 @@ public class LegacyToolchain extends AndroidToolchain {
}
@Override
- public void srcToExe(@CheckForNull String classpath, @Nonnull File out,
+ public void srcToExe(@Nonnull File out,
boolean zipFile, @Nonnull File... sources) throws Exception {
try {
@@ -60,7 +60,7 @@ public class LegacyToolchain extends AndroidToolchain {
File jarFileJarjar = AbstractTestTools.createTempFile("legacyLibJarjar", ".jar");
File jarFileProguard = AbstractTestTools.createTempFile("legacyLibProguard", ".jar");
- srcToLib(classpath, jarFile, true /* zipFiles = */, sources);
+ srcToLib(jarFile, true /* zipFiles = */, sources);
if (jarjarRules != null) {
processWithJarJar(jarjarRules, jarFile, jarFileJarjar);
@@ -69,7 +69,7 @@ public class LegacyToolchain extends AndroidToolchain {
}
if (proguardFlags.size() > 0) {
- processWithProguard(classpath, proguardFlags, jarFileJarjar,
+ processWithProguard(getClasspathAsString(), proguardFlags, jarFileJarjar,
jarFileProguard);
} else {
jarFileProguard = jarFileJarjar;
@@ -83,7 +83,7 @@ public class LegacyToolchain extends AndroidToolchain {
}
@Override
- public void srcToLib(@CheckForNull String classpath, @Nonnull File out,
+ public void srcToLib(@Nonnull File out,
boolean zipFiles, @Nonnull File... sources) throws Exception {
try {
@@ -93,10 +93,11 @@ public class LegacyToolchain extends AndroidToolchain {
} else {
classesDir = out;
}
+
if (withDebugInfos) {
- compileWithEcj(sources, classpath, classesDir);
+ compileWithEcj(sources, getClasspathAsString(), classesDir);
} else {
- compileWithExternalRefCompiler(sources, classpath, classesDir);
+ compileWithExternalRefCompiler(sources, getClasspathAsString(), classesDir);
}
if (staticLibs.size() > 0) {
for (File staticLib : staticLibs) {
diff --git a/jack-tests/src/com/android/jack/test/toolchain/Toolchain.java b/jack-tests/src/com/android/jack/test/toolchain/Toolchain.java
index 2b26091..68a29f2 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/Toolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/Toolchain.java
@@ -16,6 +16,8 @@
package com.android.jack.test.toolchain;
+import com.google.common.collect.Lists;
+
import java.io.File;
import java.io.OutputStream;
import java.io.PrintStream;
@@ -34,6 +36,9 @@ public abstract class Toolchain implements IToolchain {
protected boolean withDebugInfos = false;
+ @Nonnull
+ protected List<File> classpath = new ArrayList<File>();
+
@CheckForNull
protected Class<? extends Processor> annotationProcessorClass;
@@ -68,11 +73,11 @@ public abstract class Toolchain implements IToolchain {
Toolchain() {}
@Override
- public abstract void srcToExe(@CheckForNull String classpath, @Nonnull File out,
+ public abstract void srcToExe(@Nonnull File out,
boolean zipFile, @Nonnull File... sources) throws Exception;
@Override
- public abstract void srcToLib(@CheckForNull String classpath, @Nonnull File out,
+ public abstract void srcToLib(@Nonnull File out,
boolean zipFiles, @Nonnull File... sources) throws Exception;
@Override
@@ -100,6 +105,18 @@ public abstract class Toolchain implements IToolchain {
@Override
@Nonnull
+ public Toolchain addToClasspath(@Nonnull File... classpath) {
+ this.classpath.addAll(Lists.newArrayList(classpath));
+ return this;
+ }
+
+ @Nonnull
+ protected String getClasspathAsString() {
+ return AbstractTestTools.getClasspathAsString(classpath.toArray(new File[classpath.size()]));
+ }
+
+ @Override
+ @Nonnull
public Toolchain setWithDebugInfos(boolean withDebugInfos) {
this.withDebugInfos = withDebugInfos;
return this;