@@ -533,14 +533,6 @@ public static class Options extends FragmentOptions {
533533 help = "dx flags supported in tool that groups classes for inclusion in final .dex files." )
534534 public List <String > dexoptsSupportedInDexSharder ;
535535
536- @ Option (
537- name = "use_workers_with_dexbuilder" ,
538- defaultValue = "true" ,
539- documentationCategory = OptionDocumentationCategory .UNDOCUMENTED ,
540- effectTags = {OptionEffectTag .EXECUTION },
541- help = "Whether dexbuilder supports being run in local worker mode." )
542- public boolean useWorkersWithDexbuilder ;
543-
544536 @ Option (
545537 name = "experimental_android_rewrite_dexes_with_rex" ,
546538 defaultValue = "false" ,
@@ -905,10 +897,11 @@ public static class Options extends FragmentOptions {
905897 },
906898 help = "Enable persistent Android dex and desugar actions by using workers." ,
907899 expansion = {
900+ "--internal_persistent_android_dex_desugar" ,
908901 "--strategy=Desugar=worker" ,
909902 "--strategy=DexBuilder=worker" ,
910903 })
911- public Void persistentDexDesugar ;
904+ public Void persistentAndroidDexDesugar ;
912905
913906 @ Option (
914907 name = "persistent_multiplex_android_dex_desugar" ,
@@ -921,10 +914,9 @@ public static class Options extends FragmentOptions {
921914 help = "Enable persistent multiplexed Android dex and desugar actions by using workers." ,
922915 expansion = {
923916 "--persistent_android_dex_desugar" ,
924- "--modify_execution_info=Desugar=+supports-multiplex-workers" ,
925- "--modify_execution_info=DexBuilder=+supports-multiplex-workers" ,
917+ "--internal_persistent_multiplex_android_dex_desugar" ,
926918 })
927- public Void persistentMultiplexDexDesugar ;
919+ public Void persistentMultiplexAndroidDexDesugar ;
928920
929921 @ Option (
930922 name = "persistent_multiplex_android_tools" ,
@@ -974,6 +966,36 @@ public static class Options extends FragmentOptions {
974966 help = "Tracking flag for when multiplexed busybox workers are enabled." )
975967 public boolean persistentMultiplexBusyboxTools ;
976968
969+ /**
970+ * We use this option to decide when to enable workers for busybox tools. This flag is also a
971+ * guard against enabling workers using nothing but --persistent_android_resource_processor.
972+ *
973+ * <p>Consequently, we use this option to decide between param files or regular command line
974+ * parameters. If we're not using workers or on Windows, there's no need to always use param
975+ * files for I/O performance reasons.
976+ */
977+ @ Option (
978+ name = "internal_persistent_android_dex_desugar" ,
979+ documentationCategory = OptionDocumentationCategory .UNDOCUMENTED ,
980+ effectTags = {
981+ OptionEffectTag .HOST_MACHINE_RESOURCE_OPTIMIZATIONS ,
982+ OptionEffectTag .EXECUTION ,
983+ },
984+ defaultValue = "false" ,
985+ help = "Tracking flag for when dexing and desugaring workers are enabled." )
986+ public boolean persistentDexDesugar ;
987+
988+ @ Option (
989+ name = "internal_persistent_multiplex_android_dex_desugar" ,
990+ documentationCategory = OptionDocumentationCategory .UNDOCUMENTED ,
991+ effectTags = {
992+ OptionEffectTag .HOST_MACHINE_RESOURCE_OPTIMIZATIONS ,
993+ OptionEffectTag .EXECUTION ,
994+ },
995+ defaultValue = "false" ,
996+ help = "Tracking flag for when multiplexed dexing and desugaring workers are enabled." )
997+ public boolean persistentMultiplexDexDesugar ;
998+
977999 @ Option (
9781000 name = "experimental_remove_r_classes_from_instrumentation_test_jar" ,
9791001 defaultValue = "true" ,
@@ -1100,7 +1122,6 @@ public FragmentOptions getHost() {
11001122 host .dexoptsSupportedInIncrementalDexing = dexoptsSupportedInIncrementalDexing ;
11011123 host .dexoptsSupportedInDexMerger = dexoptsSupportedInDexMerger ;
11021124 host .dexoptsSupportedInDexSharder = dexoptsSupportedInDexSharder ;
1103- host .useWorkersWithDexbuilder = useWorkersWithDexbuilder ;
11041125 host .manifestMerger = manifestMerger ;
11051126 host .manifestMergerOrder = manifestMergerOrder ;
11061127 host .allowAndroidLibraryDepsWithoutSrcs = allowAndroidLibraryDepsWithoutSrcs ;
@@ -1128,7 +1149,6 @@ public FragmentOptions getHost() {
11281149 private final ImmutableList <String > targetDexoptsThatPreventIncrementalDexing ;
11291150 private final ImmutableList <String > dexoptsSupportedInDexMerger ;
11301151 private final ImmutableList <String > dexoptsSupportedInDexSharder ;
1131- private final boolean useWorkersWithDexbuilder ;
11321152 private final boolean desugarJava8 ;
11331153 private final boolean desugarJava8Libs ;
11341154 private final boolean checkDesugarDeps ;
@@ -1155,6 +1175,8 @@ public FragmentOptions getHost() {
11551175 private final boolean dataBindingAndroidX ;
11561176 private final boolean persistentBusyboxTools ;
11571177 private final boolean persistentMultiplexBusyboxTools ;
1178+ private final boolean persistentDexDesugar ;
1179+ private final boolean persistentMultiplexDexDesugar ;
11581180 private final boolean filterRJarsFromAndroidTest ;
11591181 private final boolean removeRClassesFromInstrumentationTestJar ;
11601182 private final boolean alwaysFilterDuplicateClassesFromAndroidTest ;
@@ -1184,7 +1206,6 @@ public AndroidConfiguration(BuildOptions buildOptions) throws InvalidConfigurati
11841206 ImmutableList .copyOf (options .nonIncrementalPerTargetDexopts );
11851207 this .dexoptsSupportedInDexMerger = ImmutableList .copyOf (options .dexoptsSupportedInDexMerger );
11861208 this .dexoptsSupportedInDexSharder = ImmutableList .copyOf (options .dexoptsSupportedInDexSharder );
1187- this .useWorkersWithDexbuilder = options .useWorkersWithDexbuilder ;
11881209 this .desugarJava8 = options .desugarJava8 ;
11891210 this .desugarJava8Libs = options .desugarJava8Libs ;
11901211 this .checkDesugarDeps = options .checkDesugarDeps ;
@@ -1216,6 +1237,8 @@ public AndroidConfiguration(BuildOptions buildOptions) throws InvalidConfigurati
12161237 this .dataBindingAndroidX = options .dataBindingAndroidX ;
12171238 this .persistentBusyboxTools = options .persistentBusyboxTools ;
12181239 this .persistentMultiplexBusyboxTools = options .persistentMultiplexBusyboxTools ;
1240+ this .persistentDexDesugar = options .persistentDexDesugar ;
1241+ this .persistentMultiplexDexDesugar = options .persistentMultiplexDexDesugar ;
12191242 this .filterRJarsFromAndroidTest = options .filterRJarsFromAndroidTest ;
12201243 this .removeRClassesFromInstrumentationTestJar =
12211244 options .removeRClassesFromInstrumentationTestJar ;
@@ -1319,12 +1342,6 @@ public ImmutableList<String> getTargetDexoptsThatPreventIncrementalDexing() {
13191342 return targetDexoptsThatPreventIncrementalDexing ;
13201343 }
13211344
1322- /** Whether to assume the dexbuilder tool supports local worker mode. */
1323- @ Override
1324- public boolean useWorkersWithDexbuilder () {
1325- return useWorkersWithDexbuilder ;
1326- }
1327-
13281345 @ Override
13291346 public boolean desugarJava8 () {
13301347 return desugarJava8 ;
@@ -1473,6 +1490,16 @@ public boolean persistentMultiplexBusyboxTools() {
14731490 return persistentMultiplexBusyboxTools ;
14741491 }
14751492
1493+ @ Override
1494+ public boolean persistentDexDesugar () {
1495+ return persistentDexDesugar ;
1496+ }
1497+
1498+ @ Override
1499+ public boolean persistentMultiplexDexDesugar () {
1500+ return persistentMultiplexDexDesugar ;
1501+ }
1502+
14761503 @ Override
14771504 public boolean incompatibleUseToolchainResolution () {
14781505 return incompatibleUseToolchainResolution ;
0 commit comments