diff options
Diffstat (limited to 'jack-tests/src/com/android/jack/test/toolchain')
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; |