Skip to content

Commit

Permalink
Update android_binary to always use the bytecode optimizer's mnemonic.
Browse files Browse the repository at this point in the history
Currently, single-action optimization will always use the Proguard mnemonic and
progress message. However, if we're using --experimental_bytecode_optimizers,
we're likely substituting --proguard_top with a similar optimizer, so we should
update the mnemonic and progress message accordingly.

PiperOrigin-RevId: 371437421
  • Loading branch information
Googler authored and copybara-github committed May 1, 2021
1 parent 24b7366 commit c381a27
Showing 1 changed file with 7 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -347,8 +347,12 @@ public static ProguardOutput createOptimizationActions(
libraryJars = NestedSetBuilder.create(Order.STABLE_ORDER, filteredLibraryJar);
}

JavaConfiguration javaConfiguration =
ruleContext.getConfiguration().getFragment(JavaConfiguration.class);
JavaConfiguration.NamedLabel optimizer = javaConfiguration.getBytecodeOptimizer();
String mnemonic = optimizer.name();
if (optimizationPasses == null) {
// Run proguard as a single step.
// Run the optimizer as a single step.
SpawnAction.Builder proguardAction = new SpawnAction.Builder();
CustomCommandLine.Builder commandLine = CustomCommandLine.builder();
defaultAction(
Expand All @@ -367,17 +371,13 @@ public static ProguardOutput createOptimizationActions(
output.getUsage(),
output.getConstantStringObfuscatedMapping(),
output.getConfig(),
"Proguard");
mnemonic);
proguardAction
.setProgressMessage("Trimming binary with Proguard: %s", ruleContext.getLabel())
.setProgressMessage("Trimming binary with %s: %s", mnemonic, ruleContext.getLabel())
.addOutput(proguardOutputJar);
proguardAction.addCommandLine(commandLine.build());
ruleContext.registerAction(proguardAction.build(ruleContext));
} else {
JavaConfiguration javaConfiguration =
ruleContext.getConfiguration().getFragment(JavaConfiguration.class);
JavaConfiguration.NamedLabel optimizer = javaConfiguration.getBytecodeOptimizer();
String mnemonic = optimizer.name();
Optional<Label> optimizerTarget = optimizer.label();
FilesToRunProvider executable = null;
if (optimizerTarget.isPresent()) {
Expand Down

0 comments on commit c381a27

Please sign in to comment.