aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar kmb <kmb@google.com>2017-09-05 20:38:38 +0200
committerGravatar Yun Peng <pcloudy@google.com>2017-09-06 10:10:12 +0200
commitdcc0865f99b2c402537c1133d2071db1d9eb4a5f (patch)
treeca11f3db5b7e91352a77014e6b0f65908a5d5a80 /src
parente0dfb3c3d70efc49c703be7e4c8e93c8a6b38d6b (diff)
make local worker mode configurable for dexbuilder
RELNOTES: none PiperOrigin-RevId: 167608048
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java17
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java4
2 files changed, 20 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
index 6def7078a2..036f606ecd 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
@@ -512,6 +512,15 @@ public class AndroidConfiguration extends BuildConfiguration.Fragment {
public List<String> dexoptsSupportedInDexMerger;
@Option(
+ name = "use_workers_with_dexbuilder",
+ defaultValue = "true",
+ documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
+ effectTags = {OptionEffectTag.UNKNOWN},
+ help = "Whether dexbuilder supports being run in local worker mode."
+ )
+ public boolean useWorkersWithDexbuilder;
+
+ @Option(
name = "experimental_android_rewrite_dexes_with_rex",
defaultValue = "false",
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
@@ -729,6 +738,7 @@ public class AndroidConfiguration extends BuildConfiguration.Fragment {
host.nonIncrementalPerTargetDexopts = nonIncrementalPerTargetDexopts;
host.dexoptsSupportedInIncrementalDexing = dexoptsSupportedInIncrementalDexing;
host.dexoptsSupportedInDexMerger = dexoptsSupportedInDexMerger;
+ host.useWorkersWithDexbuilder = useWorkersWithDexbuilder;
host.manifestMerger = manifestMerger;
host.androidAaptVersion = androidAaptVersion;
return host;
@@ -776,6 +786,7 @@ public class AndroidConfiguration extends BuildConfiguration.Fragment {
private final ImmutableList<String> dexoptsSupportedInIncrementalDexing;
private final ImmutableList<String> targetDexoptsThatPreventIncrementalDexing;
private final ImmutableList<String> dexoptsSupportedInDexMerger;
+ private final boolean useWorkersWithDexbuilder;
private final boolean desugarJava8;
private final boolean useRexToCompressDexFiles;
private final boolean allowAndroidLibraryDepsWithoutSrcs;
@@ -813,6 +824,7 @@ public class AndroidConfiguration extends BuildConfiguration.Fragment {
this.targetDexoptsThatPreventIncrementalDexing =
ImmutableList.copyOf(options.nonIncrementalPerTargetDexopts);
this.dexoptsSupportedInDexMerger = ImmutableList.copyOf(options.dexoptsSupportedInDexMerger);
+ this.useWorkersWithDexbuilder = options.useWorkersWithDexbuilder;
this.desugarJava8 = options.desugarJava8;
this.allowAndroidLibraryDepsWithoutSrcs = options.allowAndroidLibraryDepsWithoutSrcs;
this.useAndroidResourceShrinking = options.useAndroidResourceShrinking
@@ -897,6 +909,11 @@ public class AndroidConfiguration extends BuildConfiguration.Fragment {
return targetDexoptsThatPreventIncrementalDexing;
}
+ /** Whether to assume the dexbuilder tool supports local worker mode. */
+ public boolean useWorkersWithDexbuilder() {
+ return useWorkersWithDexbuilder;
+ }
+
public boolean desugarJava8() {
return desugarJava8;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java b/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java
index c8153b8d50..7abcc34319 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java
@@ -450,11 +450,13 @@ public final class DexArchiveAspect extends NativeAspectClass implements Configu
.addInput(paramFile)
.addOutput(dexArchive)
.setMnemonic("DexBuilder")
- .setExecutionInfo(ExecutionRequirements.WORKER_MODE_ENABLED)
.setProgressMessage(
"Dexing %s with applicable dexopts %s", jar.prettyPrint(), incrementalDexopts)
.setCommandLine(
CustomCommandLine.builder().addPrefixedExecPath("@", paramFile).build());
+ if (getAndroidConfig(ruleContext).useWorkersWithDexbuilder()) {
+ dexbuilder.setExecutionInfo(ExecutionRequirements.WORKER_MODE_ENABLED);
+ }
ruleContext.registerAction(dexbuilder.build(ruleContext));
return dexArchive;
}