summaryrefslogtreecommitdiffstats
path: root/jack/src
diff options
context:
space:
mode:
authorBenoit Lamarche <benoitlamarche@google.com>2014-11-18 18:08:03 +0100
committerBenoit Lamarche <benoitlamarche@google.com>2014-11-19 11:23:38 +0000
commit10ca3a1ac66cc3900286e09835f7274df517b9a2 (patch)
treea77132b5e0655b841d68013adf006e498dc64589 /jack/src
parent1cad027d0ed2d088ae616a9b4995577de57caac0 (diff)
downloadtoolchain_jack-10ca3a1ac66cc3900286e09835f7274df517b9a2.zip
toolchain_jack-10ca3a1ac66cc3900286e09835f7274df517b9a2.tar.gz
toolchain_jack-10ca3a1ac66cc3900286e09835f7274df517b9a2.tar.bz2
Always use dex plan
This simplifies things, and fixes a constraint issue when there are no source files, but there are both dex and library outputs. Change-Id: I90ef7fe589ffc9b7c3f2d52d66febf1ec584530a
Diffstat (limited to 'jack/src')
-rw-r--r--jack/src/com/android/jack/Jack.java48
1 files changed, 13 insertions, 35 deletions
diff --git a/jack/src/com/android/jack/Jack.java b/jack/src/com/android/jack/Jack.java
index e909bea..b1b5dec 100644
--- a/jack/src/com/android/jack/Jack.java
+++ b/jack/src/com/android/jack/Jack.java
@@ -531,15 +531,11 @@ public abstract class Jack {
request.addFeature(JayceFileOutput.class);
}
- if (options.ecjArguments == null) {
- request.addInitialTagsOrMarkers(getJackFormatInitialTagSet());
- if (config.get(Options.GENERATE_JACK_LIBRARY).booleanValue()) {
- request.addInitialTagsOrMarkers(getJavaSourceInitialTagSet());
- }
- } else {
- request.addInitialTagsOrMarkers(getJavaSourceInitialTagSet());
+ request.addInitialTagsOrMarkers(getJavaSourceInitialTagSet());
+ request.addInitialTagsOrMarkers(getJackFormatInitialTagSet());
+
+ if (options.ecjArguments != null) {
if (config.get(Options.GENERATE_JACK_LIBRARY).booleanValue()) {
- request.addInitialTagsOrMarkers(getJackFormatInitialTagSet());
request.addProduction(JayceFormatProduct.class);
}
if (ThreadConfig.get(JackIncremental.GENERATE_COMPILER_STATE).booleanValue()) {
@@ -551,12 +547,13 @@ public abstract class Jack {
request.addProduction(IntermediateDexProduct.class);
request.addProduction(DexFileProduct.class);
session.addGeneratedFileType(FileType.DEX);
- } else {
- assert options.libraryOutDir != null || options.libraryOutZip != null;
- request.addProduction(JayceFormatProduct.class);
+ }
+
+ if (options.libraryOutDir != null || options.libraryOutZip != null) {
if (ThreadConfig.get(Options.GENERATE_INTERMEDIATE_DEX).booleanValue()) {
request.addProduction(IntermediateDexProduct.class);
}
+ request.addProduction(JayceFormatProduct.class);
}
ProductionSet targetProduction = request.getTargetProductions();
@@ -570,31 +567,9 @@ public abstract class Jack {
planBuilder.append(PreProcessorApplier.class);
- if (targetProduction.contains(JayceFormatProduct.class)
- && !targetProduction.contains(DexFileProduct.class)
- && !targetProduction.contains(IntermediateDexProduct.class)) {
- if (options.ecjArguments == null) {
- fillJayceToJaycePlan(planBuilder);
- } else {
- fillJavaToJaycePlan(planBuilder);
- }
- {
- SubPlanBuilder<JDefinedClassOrInterface> typePlan =
- planBuilder.appendSubPlan(JDefinedClassOrInterfaceAdapter.class);
- typePlan.append(JayceSingleTypeWriter.class);
- }
- } else if (options.ecjArguments == null
- && !targetProduction.contains(JayceFormatProduct.class)) {
- assert targetProduction.contains(DexFileProduct.class);
- fillJayceToDexPlan(options, planBuilder);
+ fillDexPlan(options, planBuilder);
+ if (targetProduction.contains(DexFileProduct.class)) {
planBuilder.append(DexFileWriter.class);
- } else {
- assert targetProduction.contains(DexFileProduct.class)
- || targetProduction.contains(IntermediateDexProduct.class);
- fillDexPlan(options, planBuilder);
- if (targetProduction.contains(DexFileProduct.class)) {
- planBuilder.append(DexFileWriter.class);
- }
}
if (features.contains(Resources.class)) {
@@ -870,6 +845,7 @@ public abstract class Jack {
return dir;
}
+ @SuppressWarnings("unused")
private static void fillJayceToJaycePlan(@Nonnull PlanBuilder<JSession> planBuilder) {
// Add here transformations we want to apply before writing jayce file
FeatureSet features = planBuilder.getRequest().getFeatures();
@@ -1303,6 +1279,7 @@ public abstract class Jack {
}
}
+ @SuppressWarnings("unused")
private static void fillJavaToJaycePlan(@Nonnull PlanBuilder<JSession> planBuilder) {
Request request = planBuilder.getRequest();
FeatureSet features = request.getFeatures();
@@ -1527,6 +1504,7 @@ public abstract class Jack {
}
}
+ @SuppressWarnings("unused")
private static void fillJayceToDexPlan(
@Nonnull Options options, @Nonnull PlanBuilder<JSession> planBuilder) {
Request request = planBuilder.getRequest();