summaryrefslogtreecommitdiffstats
path: root/jack
diff options
context:
space:
mode:
authormikaelpeltier <mikaelpeltier@google.com>2015-04-29 10:20:25 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2015-04-29 10:20:26 +0000
commit4f2c58382277f0382e19963642edca9f1bd7a373 (patch)
treeeb86f372701b773a7581e82e13bc97170a6c21dc /jack
parentf45c8cd2149bc5f124bfab6953b7db22d619b47c (diff)
parent3c94d5c0ee85508ddc39f9ef6d362fa2b842c37f (diff)
downloadtoolchain_jack-4f2c58382277f0382e19963642edca9f1bd7a373.tar.gz
toolchain_jack-4f2c58382277f0382e19963642edca9f1bd7a373.tar.bz2
toolchain_jack-4f2c58382277f0382e19963642edca9f1bd7a373.zip
Merge "Jayce and dex files must be put into output library" into ub-jack
Diffstat (limited to 'jack')
-rw-r--r--jack/src/com/android/jack/Jack.java29
-rw-r--r--jack/src/com/android/jack/incremental/GenerateLibraryFromIncrementalFolder.java27
2 files changed, 43 insertions, 13 deletions
diff --git a/jack/src/com/android/jack/Jack.java b/jack/src/com/android/jack/Jack.java
index b25fc4cc..f6018c41 100644
--- a/jack/src/com/android/jack/Jack.java
+++ b/jack/src/com/android/jack/Jack.java
@@ -69,6 +69,7 @@ import com.android.jack.frontend.VirtualMethodsMarker;
import com.android.jack.frontend.java.JackBatchCompiler;
import com.android.jack.frontend.java.JackBatchCompiler.TransportExceptionAroundEcjError;
import com.android.jack.frontend.java.JackBatchCompiler.TransportJUEAroundEcjError;
+import com.android.jack.incremental.GenerateLibraryFromIncrementalFolder;
import com.android.jack.incremental.Incremental;
import com.android.jack.ir.JackFormatIr;
import com.android.jack.ir.JavaSourceIr;
@@ -518,6 +519,9 @@ public abstract class Jack {
if (config.get(Options.INCREMENTAL_MODE).booleanValue()) {
request.addFeature(Incremental.class);
}
+ if (config.get(Options.GENERATE_LIBRARY_FROM_INCREMENTAL_FOLDER).booleanValue()) {
+ request.addFeature(GenerateLibraryFromIncrementalFolder.class);
+ }
request.addInitialTagsOrMarkers(getJavaSourceInitialTagSet());
request.addInitialTagsOrMarkers(getJackFormatInitialTagSet());
@@ -867,7 +871,6 @@ public abstract class Jack {
FeatureSet features = planBuilder.getRequest().getFeatures();
ProductionSet productions = planBuilder.getRequest().getTargetProductions();
boolean hasSanityChecks = features.contains(SanityChecks.class);
- Config config = ThreadConfig.getConfig();
// TODO(jack-team): Remove this hack
boolean preDexing = !getSession().getImportedLibraries().isEmpty();
@@ -1012,13 +1015,13 @@ public abstract class Jack {
}
{
SubPlanBuilder<JDefinedClassOrInterface> typePlan;
- // In incremental library mode, Jayce files must be copied into output library
- if (features.contains(Incremental.class)
- && ((!config.get(Options.GENERATE_JACK_LIBRARY).booleanValue())
- || config.get(Options.LIBRARY_OUTPUT_CONTAINER_TYPE) != Container.ZIP)) {
- typePlan = planBuilder.appendSubPlan(ExcludeTypeFromLibWithBinaryAdapter.class);
- } else {
+ // Jayce files must be copied into output library in incremental library mode or in non
+ // incremental mode
+ if (features.contains(GenerateLibraryFromIncrementalFolder.class)
+ || !features.contains(Incremental.class)) {
typePlan = planBuilder.appendSubPlan(JDefinedClassOrInterfaceAdapter.class);
+ } else {
+ typePlan = planBuilder.appendSubPlan(ExcludeTypeFromLibWithBinaryAdapter.class);
}
if (productions.contains(JayceInLibraryProduct.class)) {
typePlan.append(JayceInLibraryWriter.class);
@@ -1167,13 +1170,13 @@ public abstract class Jack {
{
SubPlanBuilder<JDefinedClassOrInterface> typePlan;
- // In incremental library mode, dex files must be copied into output library
- if (features.contains(Incremental.class)
- && ((!config.get(Options.GENERATE_JACK_LIBRARY).booleanValue())
- || config.get(Options.LIBRARY_OUTPUT_CONTAINER_TYPE) != Container.ZIP)) {
- typePlan = planBuilder.appendSubPlan(ExcludeTypeFromLibWithBinaryAdapter.class);
- } else {
+ // Jayce files must be copied into output library in incremental library mode or in non
+ // incremental mode
+ if (features.contains(GenerateLibraryFromIncrementalFolder.class)
+ || !features.contains(Incremental.class)) {
typePlan = planBuilder.appendSubPlan(JDefinedClassOrInterfaceAdapter.class);
+ } else {
+ typePlan = planBuilder.appendSubPlan(ExcludeTypeFromLibWithBinaryAdapter.class);
}
if (productions.contains(DexInLibraryProduct.class)) {
typePlan.append(DexInLibraryWriter.class);
diff --git a/jack/src/com/android/jack/incremental/GenerateLibraryFromIncrementalFolder.java b/jack/src/com/android/jack/incremental/GenerateLibraryFromIncrementalFolder.java
new file mode 100644
index 00000000..276c77a6
--- /dev/null
+++ b/jack/src/com/android/jack/incremental/GenerateLibraryFromIncrementalFolder.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.jack.incremental;
+
+import com.android.sched.item.Description;
+import com.android.sched.item.Feature;
+
+/**
+ * A {@link Feature} specifying that a library is generated with incremental support.
+ */
+@Description("Generate library with incremental support")
+public class GenerateLibraryFromIncrementalFolder implements Feature {
+}