aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java11
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();
}
};