diff options
author | Jean-Philippe Lesot <jplesot@google.com> | 2015-06-08 08:41:24 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2015-06-08 08:41:25 +0000 |
commit | 8db67e8da887d7d6c16a273232add1c7b8cb4c2e (patch) | |
tree | a694f1d2d47d66aa7d3fa0f59b1cf7709a501f9d /jack | |
parent | 680315b2356968f93fc04e64e7f2f5c782f96357 (diff) | |
parent | 59f50017709af1cfa1bcc6d3bd5e409f9436ede2 (diff) | |
download | toolchain_jack-8db67e8da887d7d6c16a273232add1c7b8cb4c2e.zip toolchain_jack-8db67e8da887d7d6c16a273232add1c7b8cb4c2e.tar.gz toolchain_jack-8db67e8da887d7d6c16a273232add1c7b8cb4c2e.tar.bz2 |
Merge "Fix bugs when using incremental with --output-jack" into ub-jack-brest
Diffstat (limited to 'jack')
4 files changed, 35 insertions, 71 deletions
diff --git a/jack/src/com/android/jack/incremental/CommonFilter.java b/jack/src/com/android/jack/incremental/CommonFilter.java index 381f6e3..ff1c192 100644 --- a/jack/src/com/android/jack/incremental/CommonFilter.java +++ b/jack/src/com/android/jack/incremental/CommonFilter.java @@ -52,6 +52,7 @@ import com.android.sched.util.location.FileLocation; import com.android.sched.util.log.LoggerFactory; import com.android.sched.vfs.Container; import com.android.sched.vfs.PrefixedFS; +import com.android.sched.vfs.ReadWriteZipFS; import com.android.sched.vfs.ReadZipFS; import com.android.sched.vfs.VFS; import com.android.sched.vfs.VPath; @@ -136,7 +137,27 @@ public abstract class CommonFilter { @Nonnull private static final Logger logger = LoggerFactory.getLogger(); + @Nonnull + protected final VFS incrementalVfs; + + @Nonnull + private final OutputJackLibrary outputJackLibrary; + public CommonFilter() { + if (ThreadConfig.get(Options.GENERATE_LIBRARY_FROM_INCREMENTAL_FOLDER).booleanValue()) { + VFS dirVFS = ThreadConfig.get(Options.LIBRARY_OUTPUT_DIR); + incrementalVfs = ThreadConfig.get(Options.LIBRARY_OUTPUT_ZIP); + ((ReadWriteZipFS) incrementalVfs).setWorkVFS(dirVFS); + } else { + if (ThreadConfig.get(Options.LIBRARY_OUTPUT_CONTAINER_TYPE) == Container.DIR) { + incrementalVfs = ThreadConfig.get(Options.LIBRARY_OUTPUT_DIR); + } else { + incrementalVfs = ThreadConfig.get(Options.LIBRARY_OUTPUT_ZIP); + } + } + + outputJackLibrary = JackLibraryFactory.getOutputLibrary(incrementalVfs, + Jack.getEmitterId(), Jack.getVersion().getVerboseVersion()); } @Nonnull @@ -177,21 +198,6 @@ public abstract class CommonFilter { } } - @Nonnull - protected OutputJackLibrary getOutputJackLibraryFromVfs() { - VFS vfs; - Container containerType = ThreadConfig.get(Options.LIBRARY_OUTPUT_CONTAINER_TYPE); - - if (containerType == Container.DIR) { - vfs = ThreadConfig.get(Options.LIBRARY_OUTPUT_DIR); - } else { - vfs = ThreadConfig.get(Options.LIBRARY_OUTPUT_ZIP); - } - - return (JackLibraryFactory.getOutputLibrary(vfs, Jack.getEmitterId(), Jack.getVersion() - .getVerboseVersion())); - } - @SuppressWarnings("unused") @Nonnull protected List<InputLibrary> getInputLibrariesFromFiles( @@ -293,4 +299,8 @@ public abstract class CommonFilter { } } + @Nonnull + public OutputJackLibrary getOutputJackLibrary() { + return outputJackLibrary; + } } diff --git a/jack/src/com/android/jack/incremental/IncrementalInputFilter.java b/jack/src/com/android/jack/incremental/IncrementalInputFilter.java index 98eb61c..c45e1fa 100644 --- a/jack/src/com/android/jack/incremental/IncrementalInputFilter.java +++ b/jack/src/com/android/jack/incremental/IncrementalInputFilter.java @@ -53,8 +53,6 @@ import com.android.sched.util.log.stats.Counter; import com.android.sched.util.log.stats.CounterImpl; import com.android.sched.util.log.stats.StatisticId; import com.android.sched.vfs.InputVFile; -import com.android.sched.vfs.ReadWriteZipFS; -import com.android.sched.vfs.VFS; import com.android.sched.vfs.VPath; import java.io.File; @@ -153,11 +151,9 @@ public class IncrementalInputFilter extends CommonFilter implements InputFilter @Nonnull private final File incrementalFolder; - @Nonnull - private final OutputJackLibrary outputJackLibrary; - public IncrementalInputFilter(@Nonnull Options options) { Config config = ThreadConfig.getConfig(); + incrementalFolder = new File(config.get(Options.LIBRARY_OUTPUT_DIR).getPath()); this.options = options; @@ -199,8 +195,6 @@ public class IncrementalInputFilter extends CommonFilter implements InputFilter session.getLibraryDependencies().addLibrariesOnClasspath(librariesOnClasspathFromCommandLine); filesToRecompile = getInternalFileNamesToCompile(); - outputJackLibrary = createOutputJackLibrary(); - if (config.get(INCREMENTAL_LOG).booleanValue()) { IncrementalLogWriter incLog; try { @@ -357,7 +351,7 @@ public class IncrementalInputFilter extends CommonFilter implements InputFilter @CheckForNull private InputJackLibrary getIncrementalInternalLibrary() { try { - return JackLibraryFactory.getInputLibrary(ThreadConfig.get(Options.LIBRARY_OUTPUT_DIR)); + return JackLibraryFactory.getInputLibrary(incrementalVfs); } catch (NotJackLibraryException e) { // No incremental internal library, it is the first compilation } catch (LibraryVersionException e) { @@ -463,33 +457,17 @@ public class IncrementalInputFilter extends CommonFilter implements InputFilter throw new JackAbortException(e); } - inputLibraries.add(0, incrementalInputLibrary); - - return inputLibraries; - } - - @Nonnull - private OutputJackLibrary createOutputJackLibrary() { - if (ThreadConfig.get(Options.GENERATE_LIBRARY_FROM_INCREMENTAL_FOLDER).booleanValue()) { - VFS dirVFS = ThreadConfig.get(Options.LIBRARY_OUTPUT_DIR); - ReadWriteZipFS zipVFS = (ReadWriteZipFS) ThreadConfig.get(Options.LIBRARY_OUTPUT_ZIP); - zipVFS.setWorkVFS(dirVFS); - return JackLibraryFactory.getOutputLibrary(zipVFS, Jack.getEmitterId(), - Jack.getVersion().getVerboseVersion()); + // Incremental folder already contains dex files of imported libraries, thus import only + // incremental folder. + inputLibraries.clear(); + inputLibraries.add(incrementalInputLibrary); + return inputLibraries; } else { - if (incrementalInputLibrary == null) { - return getOutputJackLibraryFromVfs(); - } else { - return (JackLibraryFactory.getOutputLibrary(ThreadConfig.get(Options.LIBRARY_OUTPUT_DIR), - Jack.getEmitterId(), Jack.getVersion().getVerboseVersion())); - } + // Incremental folder does not contains dex files, thus add it into imported libraries + inputLibraries.add(0, incrementalInputLibrary); } - } - @Override - @Nonnull - public OutputJackLibrary getOutputJackLibrary() { - return outputJackLibrary; + return inputLibraries; } } diff --git a/jack/src/com/android/jack/incremental/NoInputFilter.java b/jack/src/com/android/jack/incremental/NoInputFilter.java index 3813e89..284123e 100644 --- a/jack/src/com/android/jack/incremental/NoInputFilter.java +++ b/jack/src/com/android/jack/incremental/NoInputFilter.java @@ -23,7 +23,6 @@ import com.android.jack.analysis.dependency.library.LibraryDependencies; import com.android.jack.analysis.dependency.type.TypeDependencies; import com.android.jack.ir.ast.JSession; import com.android.jack.library.InputLibrary; -import com.android.jack.library.OutputJackLibrary; import com.android.sched.util.codec.ImplementationName; import com.android.sched.util.config.ThreadConfig; @@ -50,9 +49,6 @@ public class NoInputFilter extends CommonFilter implements InputFilter { @Nonnull private final List<? extends InputLibrary> librariesOnClasspathFromCommandLine; - @Nonnull - private final OutputJackLibrary outputJackLibrary; - public NoInputFilter(@Nonnull Options options) { this.options = options; this.fileNamesToCompile = getJavaFileNamesSpecifiedOnCommandLine(options); @@ -67,8 +63,6 @@ public class NoInputFilter extends CommonFilter implements InputFilter { LibraryDependencies libraryDependencies = session.getLibraryDependencies(); libraryDependencies.addImportedLibraries(importedLibrariesFromCommandLine); libraryDependencies.addLibrariesOnClasspath(librariesOnClasspathFromCommandLine); - - outputJackLibrary = getOutputJackLibraryFromVfs(); } @Override @@ -88,10 +82,4 @@ public class NoInputFilter extends CommonFilter implements InputFilter { public List<? extends InputLibrary> getImportedLibrary() { return importedLibrariesFromCommandLine; } - - @Override - @Nonnull - public OutputJackLibrary getOutputJackLibrary() { - return outputJackLibrary; - } } diff --git a/jack/tests/com/android/jack/frontend/OrderedInputFilter.java b/jack/tests/com/android/jack/frontend/OrderedInputFilter.java index 9b3ee59..51564d4 100644 --- a/jack/tests/com/android/jack/frontend/OrderedInputFilter.java +++ b/jack/tests/com/android/jack/frontend/OrderedInputFilter.java @@ -25,7 +25,6 @@ import com.android.jack.incremental.CommonFilter; import com.android.jack.incremental.InputFilter; import com.android.jack.ir.ast.JSession; import com.android.jack.library.InputLibrary; -import com.android.jack.library.OutputJackLibrary; import com.android.sched.util.codec.ImplementationName; import com.android.sched.util.config.Config; import com.android.sched.util.config.ThreadConfig; @@ -56,9 +55,6 @@ public class OrderedInputFilter extends CommonFilter implements InputFilter { @Nonnull private final List<? extends InputLibrary> librariesOnClasspathFromCommandLine; - @Nonnull - private final OutputJackLibrary outputJackLibrary; - public OrderedInputFilter(@Nonnull Options options) { this.options = options; this.fileNamesToCompile = getJavaFileNamesSpecifiedOnCommandLine(options); @@ -73,8 +69,6 @@ public class OrderedInputFilter extends CommonFilter implements InputFilter { LibraryDependencies libraryDependencies = session.getLibraryDependencies(); libraryDependencies.addImportedLibraries(importedLibrariesFromCommandLine); libraryDependencies.addLibrariesOnClasspath(librariesOnClasspathFromCommandLine); - - outputJackLibrary = getOutputJackLibraryFromVfs(); } @Override @@ -97,12 +91,6 @@ public class OrderedInputFilter extends CommonFilter implements InputFilter { @Override @Nonnull - public OutputJackLibrary getOutputJackLibrary() { - return outputJackLibrary; - } - - @Override - @Nonnull protected Set<String> getJavaFileNamesSpecifiedOnCommandLine(@Nonnull Options options) { Config config = options.getConfig(); final String extension = ".java"; |