diff options
Diffstat (limited to 'src/main/java/com/google')
3 files changed, 10 insertions, 12 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java index dd47b4484d..d70f57bc1d 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java @@ -1072,6 +1072,7 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory { // No need to shuffle, just run proguarded Jar through dexbuilder DexArchiveAspect.createDexArchiveAction( ruleContext, + "$dexbuilder_after_proguard", proguardedJar, DexArchiveAspect.topLevelDexbuilderDexopts(dexopts), dexArchives.get(0)); @@ -1401,6 +1402,7 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory { Artifact dexArchive = DexArchiveAspect.createDexArchiveAction( ruleContext, + "$dexbuilder", derivedJarFunction.apply(jar), incrementalDexopts, ruleContext.getDerivedArtifact( @@ -1495,6 +1497,7 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory { checkState(!shuffleOutputs.get(i).equals(shards.get(i))); DexArchiveAspect.createDexArchiveAction( ruleContext, + "$dexbuilder_after_proguard", shuffleOutputs.get(i), DexArchiveAspect.topLevelDexbuilderDexopts(dexopts), shards.get(i)); diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java index d53b811f21..a7270d6899 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java @@ -791,6 +791,11 @@ public final class AndroidRuleClasses { .exec() .value(env.getToolsLabel("//tools/android:dexbuilder"))) .add( + attr("$dexbuilder_after_proguard", LABEL) + .cfg(HostTransition.INSTANCE) + .exec() + .value(env.getToolsLabel("//tools/android:dexbuilder_after_proguard"))) + .add( attr("$dexsharder", LABEL) .cfg(HostTransition.INSTANCE) .exec() 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 d455d01fbb..adc6bea3d7 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 @@ -416,23 +416,13 @@ public final class DexArchiveAspect extends NativeAspectClass implements Configu } /** - * Creates a dex archive using an executable prerequisite called {@code "$dexbuilder"}. Rules - * calling this method must declare the appropriate prerequisite, similar to how {@link - * #getDefinition} does it for {@link DexArchiveAspect} under a different name. + * Creates a dexbuilder action with the given input, output, and flags. Flags must have been + * filtered and normalized to a set that the dexbuilder tool can understand. * * @return the artifact given as {@code result}, which can simplify calling code */ // Package-private method for use in AndroidBinary static Artifact createDexArchiveAction( - RuleContext ruleContext, Artifact jar, Set<String> tokenizedDexopts, Artifact result) { - return createDexArchiveAction(ruleContext, "$dexbuilder", jar, tokenizedDexopts, result); - } - - /** - * Creates a dexbuilder action with the given input, output, and flags. Flags must have been - * filtered and normalized to a set that the dexbuilder tool can understand. - */ - private static Artifact createDexArchiveAction( RuleContext ruleContext, String dexbuilderPrereq, Artifact jar, |