diff options
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java index 70ee87aefb..c30ddac0cf 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java @@ -14,6 +14,7 @@ package com.google.devtools.build.lib.rules.java; +import static com.google.devtools.build.lib.packages.BuildType.LABEL; import static com.google.devtools.build.lib.packages.ImplicitOutputsFunction.fromTemplates; import com.google.common.collect.ImmutableList; @@ -153,8 +154,14 @@ public interface JavaSemantics { LateBoundLabel<BuildConfiguration> JAVA_LAUNCHER = new LateBoundLabel<BuildConfiguration>(JavaConfiguration.class) { @Override - public Label resolve(Rule rule, AttributeMap attributes, - BuildConfiguration configuration) { + public Label resolve(Rule rule, AttributeMap attributes, BuildConfiguration configuration) { + // don't read --java_launcher if this target overrides via a launcher attribute + if (attributes != null && attributes.has("launcher", LABEL)) { + Label launcher = attributes.get("launcher", LABEL); + if (launcher != null) { + return launcher; + } + } return configuration.getFragment(JavaConfiguration.class).getJavaLauncherLabel(); } }; |