diff options
author | mikaelpeltier <mikaelpeltier@google.com> | 2014-12-15 17:55:06 +0100 |
---|---|---|
committer | mikaelpeltier <mikaelpeltier@google.com> | 2014-12-17 13:37:00 +0100 |
commit | a78d3e0da09e6d7206ebd33b31407d88f2008209 (patch) | |
tree | ab4701887d5a54c387d884d95a6f8576d0c1e0dd | |
parent | e1606650fd5ffff22f1a8daed77c6539f28755ce (diff) | |
download | toolchain_jack-a78d3e0da09e6d7206ebd33b31407d88f2008209.tar.gz toolchain_jack-a78d3e0da09e6d7206ebd33b31407d88f2008209.tar.bz2 toolchain_jack-a78d3e0da09e6d7206ebd33b31407d88f2008209.zip |
Add property jack.library.jayce
Change-Id: I0538f4adf0b92ae84afb981b7666cb2f78db7f71
-rw-r--r-- | jack/src/com/android/jack/Jack.java | 33 | ||||
-rw-r--r-- | jack/src/com/android/jack/Options.java | 14 | ||||
-rw-r--r-- | jack/src/com/android/jack/backend/jayce/JayceInLibraryProduct.java (renamed from jack/src/com/android/jack/backend/jayce/JayceFormatProduct.java) | 6 | ||||
-rw-r--r-- | jack/src/com/android/jack/backend/jayce/JayceInLibraryWriter.java (renamed from jack/src/com/android/jack/backend/jayce/JayceSingleTypeWriter.java) | 13 | ||||
-rw-r--r-- | jack/src/com/android/jack/scheduling/feature/JayceFileOutput.java | 29 | ||||
-rw-r--r-- | jack/tests/com/android/jack/TestTools.java | 4 |
6 files changed, 31 insertions, 68 deletions
diff --git a/jack/src/com/android/jack/Jack.java b/jack/src/com/android/jack/Jack.java index 9f3900da..d8de3b60 100644 --- a/jack/src/com/android/jack/Jack.java +++ b/jack/src/com/android/jack/Jack.java @@ -55,8 +55,8 @@ import com.android.jack.backend.dex.multidex.legacy.RuntimeAnnotationFinder; import com.android.jack.backend.dex.rop.CodeItemBuilder; import com.android.jack.backend.jayce.ImportConflictException; import com.android.jack.backend.jayce.JayceFileImporter; -import com.android.jack.backend.jayce.JayceFormatProduct; -import com.android.jack.backend.jayce.JayceSingleTypeWriter; +import com.android.jack.backend.jayce.JayceInLibraryProduct; +import com.android.jack.backend.jayce.JayceInLibraryWriter; import com.android.jack.cfg.CfgBuilder; import com.android.jack.cfg.CfgMarkerRemover; import com.android.jack.config.id.JavaVersionPropertyId.JavaVersion; @@ -121,7 +121,6 @@ import com.android.jack.scheduling.adapter.JMethodAdapter; import com.android.jack.scheduling.adapter.JPackageAdapter; import com.android.jack.scheduling.feature.CompiledTypeStats; import com.android.jack.scheduling.feature.DxLegacy; -import com.android.jack.scheduling.feature.JayceFileOutput; import com.android.jack.scheduling.feature.Resources; import com.android.jack.scheduling.feature.SourceVersion7; import com.android.jack.shrob.obfuscation.Mapping; @@ -566,19 +565,9 @@ public abstract class Jack { request.addFeature(MultiDexLegacy.class); } - if (config.get(Options.GENERATE_JACK_LIBRARY).booleanValue()) { - request.addFeature(JayceFileOutput.class); - } - request.addInitialTagsOrMarkers(getJavaSourceInitialTagSet()); request.addInitialTagsOrMarkers(getJackFormatInitialTagSet()); - if (options.ecjArguments != null) { - if (config.get(Options.GENERATE_JACK_LIBRARY).booleanValue()) { - request.addProduction(JayceFormatProduct.class); - } - } - if (ThreadConfig.get(Options.GENERATE_DEX_IN_LIBRARY).booleanValue()) { request.addProduction(DexInLibraryProduct.class); } @@ -588,8 +577,8 @@ public abstract class Jack { session.addGeneratedFileType(FileType.DEX); } - if (options.libraryOutDir != null || options.libraryOutZip != null) { - request.addProduction(JayceFormatProduct.class); + if (ThreadConfig.get(Options.GENERATE_JAYCE_IN_LIBRARY).booleanValue()) { + request.addProduction(JayceInLibraryProduct.class); } ProductionSet targetProduction = request.getTargetProductions(); @@ -612,12 +601,12 @@ public abstract class Jack { if (targetProduction.contains(DexFileProduct.class)) { planBuilder.append(ResourceWriter.class); } - if (targetProduction.contains(JayceFormatProduct.class)) { + if (targetProduction.contains(JayceInLibraryProduct.class)) { planBuilder.append(LibraryResourceWriter.class); } } - if (targetProduction.contains(JayceFormatProduct.class)) { + if (targetProduction.contains(JayceInLibraryProduct.class)) { planBuilder.append(LibraryMetaWriter.class); } @@ -635,13 +624,13 @@ public abstract class Jack { // ... but use a manual one if not supported plan = planBuilder.getPlan(); - assert !targetProduction.contains(JayceFormatProduct.class) + assert !targetProduction.contains(JayceInLibraryProduct.class) || targetProduction.contains(DexFileProduct.class) || (plan.computeFinalTagsOrMarkers( request.getInitialTags()).contains(JackFormatIr.class) && !targetProduction.contains(DexInLibraryProduct.class)) || (targetProduction.contains(DexInLibraryProduct.class) - && targetProduction.contains(JayceFormatProduct.class)); + && targetProduction.contains(JayceInLibraryProduct.class)); } PlanPrinterFactory.getPlanPrinter().printPlan(plan); @@ -1201,8 +1190,8 @@ public abstract class Jack { { SubPlanBuilder<JDefinedClassOrInterface> typePlan = planBuilder.appendSubPlan(JDefinedClassOrInterfaceAdapter.class); - if (features.contains(JayceFileOutput.class)) { - typePlan.append(JayceSingleTypeWriter.class); + if (productions.contains(JayceInLibraryProduct.class)) { + typePlan.append(JayceInLibraryWriter.class); typePlan.append(TypeDependenciesCollector.class); typePlan.append(FileDependenciesCollector.class); } @@ -1256,7 +1245,7 @@ public abstract class Jack { } } - if (features.contains(JayceFileOutput.class)) { + if (productions.contains(JayceInLibraryProduct.class)) { planBuilder.append(TypeDependenciesWriter.class); planBuilder.append(FileDependenciesWriter.class); } diff --git a/jack/src/com/android/jack/Options.java b/jack/src/com/android/jack/Options.java index ea165dca..fbe90527 100644 --- a/jack/src/com/android/jack/Options.java +++ b/jack/src/com/android/jack/Options.java @@ -116,8 +116,15 @@ public class Options { .addDefaultValue(Boolean.TRUE).withCategory(Private.get()); @Nonnull - public static final BooleanPropertyId GENERATE_JACK_LIBRARY = BooleanPropertyId.create( - "jack.library", "Generate jack library").addDefaultValue(Boolean.FALSE); + public static final BooleanPropertyId GENERATE_JAYCE_IN_LIBRARY = BooleanPropertyId.create( + "jack.library.jayce", "Generate Jayce files in library") + .addDefaultValue(Boolean.FALSE).withCategory(Private.get()); + + @Nonnull + public static final BooleanPropertyId GENERATE_JACK_LIBRARY = BooleanPropertyId + .create("jack.library", "Generate jack library") + .addDefaultValue(Boolean.FALSE).requiredIf(GENERATE_DEX_IN_LIBRARY.getValue().isTrue() + .or(GENERATE_JAYCE_IN_LIBRARY.getValue().isTrue())); @Nonnull @@ -615,11 +622,12 @@ public class Options { configBuilder.setString(LIBRARY_OUTPUT_ZIP, libraryOutZip.getAbsolutePath()); configBuilder.set(LIBRARY_OUTPUT_CONTAINER_TYPE, Container.ZIP); configBuilder.set(GENERATE_JACK_LIBRARY, true); + configBuilder.set(GENERATE_JAYCE_IN_LIBRARY, true); } else if (libraryOutDir != null) { configBuilder.setString(LIBRARY_OUTPUT_DIR, libraryOutDir.getAbsolutePath()); configBuilder.set(LIBRARY_OUTPUT_CONTAINER_TYPE, Container.DIR); configBuilder.set(GENERATE_JACK_LIBRARY, true); - configBuilder.set(GENERATE_DEX_IN_LIBRARY, true); + configBuilder.set(GENERATE_JAYCE_IN_LIBRARY, true); configBuilder.setString(Options.INTERNAL_LIBRARY_OUTPUT_DIR, libraryOutDir.getPath()); } diff --git a/jack/src/com/android/jack/backend/jayce/JayceFormatProduct.java b/jack/src/com/android/jack/backend/jayce/JayceInLibraryProduct.java index f667dd14..72c34ef5 100644 --- a/jack/src/com/android/jack/backend/jayce/JayceFormatProduct.java +++ b/jack/src/com/android/jack/backend/jayce/JayceInLibraryProduct.java @@ -20,8 +20,8 @@ import com.android.sched.item.Description; import com.android.sched.item.Production; /** - * Represents the production of Jayce format. + * {@link Production} of Jayce files in a library. */ -@Description("Jayce format production") -public class JayceFormatProduct implements Production { +@Description("Production of Jayce files in a library") +public class JayceInLibraryProduct implements Production { } diff --git a/jack/src/com/android/jack/backend/jayce/JayceSingleTypeWriter.java b/jack/src/com/android/jack/backend/jayce/JayceInLibraryWriter.java index b110bbd2..d1aa6a32 100644 --- a/jack/src/com/android/jack/backend/jayce/JayceSingleTypeWriter.java +++ b/jack/src/com/android/jack/backend/jayce/JayceInLibraryWriter.java @@ -25,14 +25,11 @@ import com.android.jack.jayce.JayceWriterFactory; import com.android.jack.library.FileType; import com.android.jack.library.LibraryIOException; import com.android.jack.library.OutputJackLibrary; -import com.android.jack.scheduling.feature.JayceFileOutput; import com.android.sched.item.Description; -import com.android.sched.item.Name; import com.android.sched.item.Synchronized; import com.android.sched.schedulable.Constraint; import com.android.sched.schedulable.Produce; import com.android.sched.schedulable.RunnableSchedulable; -import com.android.sched.schedulable.Support; import com.android.sched.vfs.OutputVFile; import com.android.sched.vfs.VPath; @@ -43,14 +40,12 @@ import java.io.OutputStream; import javax.annotation.Nonnull; /** - * Writer of Jayce files in a folder organized according to package names. + * Writer of Jayce files in a library organized according to package names. */ -@Description("Writer of Jayce files in a folder organized according to package names") -@Name("JayceSingleTypeWriter") +@Description("Writer of Jayce files in a library organized according to package names") @Constraint(need = {JackFormatIr.class}, no = {NonJackFormatIr.class}) -@Produce(JayceFormatProduct.class) -@Support(JayceFileOutput.class) -public class JayceSingleTypeWriter implements RunnableSchedulable<JDefinedClassOrInterface> { +@Produce(JayceInLibraryProduct.class) +public class JayceInLibraryWriter implements RunnableSchedulable<JDefinedClassOrInterface> { @Nonnull private final OutputJackLibrary outputJackLibrary; diff --git a/jack/src/com/android/jack/scheduling/feature/JayceFileOutput.java b/jack/src/com/android/jack/scheduling/feature/JayceFileOutput.java deleted file mode 100644 index 8a73d730..00000000 --- a/jack/src/com/android/jack/scheduling/feature/JayceFileOutput.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (C) 2014 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.scheduling.feature; - -import com.android.sched.item.Description; -import com.android.sched.item.Feature; -import com.android.sched.item.Name; - -/** - * Jayce file output - */ -@Description("Jayce file output") -@Name("JayceFileOutput") -public class JayceFileOutput implements Feature { -} diff --git a/jack/tests/com/android/jack/TestTools.java b/jack/tests/com/android/jack/TestTools.java index 3987b819..75df6110 100644 --- a/jack/tests/com/android/jack/TestTools.java +++ b/jack/tests/com/android/jack/TestTools.java @@ -20,7 +20,7 @@ import com.android.dx.command.dexer.Main.Arguments; import com.android.jack.Options.VerbosityLevel; import com.android.jack.backend.dex.DexFileWriter; import com.android.jack.backend.dex.DexInLibraryProduct; -import com.android.jack.backend.jayce.JayceFormatProduct; +import com.android.jack.backend.jayce.JayceInLibraryProduct; import com.android.jack.ir.ast.JDefinedClassOrInterface; import com.android.jack.ir.ast.JMethod; import com.android.jack.ir.ast.JSession; @@ -554,7 +554,7 @@ public class TestTools { request.addInitialTagsOrMarkers(Jack.getJavaSourceInitialTagSet()); request.addProduction(DexInLibraryProduct.class); if (ThreadConfig.get(Options.GENERATE_JACK_LIBRARY).booleanValue()) { - request.addProduction(JayceFormatProduct.class); + request.addProduction(JayceInLibraryProduct.class); } OutputJackLibrary outputLibrary = null; |