diff options
author | 2016-07-27 22:44:16 +0000 | |
---|---|---|
committer | 2016-07-28 18:36:30 -0400 | |
commit | 94c86135d05a1844263c59f3ce6b1c1917e0f4c8 (patch) | |
tree | 61a459484b9b9d3ac5395a09c2f160cdf135d80c /src/main/java/com/google/devtools/build/lib/rules/java | |
parent | 8643954b818547339e8055d0aa4867c1286ebca1 (diff) |
Rollback of commit 0fe34924b5e5282b5e2895761f11ad77bccebdba.
*** Reason for rollback ***
Causes a dependency cycle for java targets:
[]
*** Original change description ***
Enable the Java launcher by default
--
MOS_MIGRATED_REVID=128638289
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java | 15 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java | 17 |
2 files changed, 23 insertions, 9 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java index 65049fef5f..0c787bc713 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java @@ -282,15 +282,12 @@ public class JavaOptions extends FragmentOptions { ) public Label hostJavaLauncher; - @Option( - name = "java_launcher", - defaultValue = "null", - converter = LabelConverter.class, - category = "semantics", - help = - "The Java launcher to use when building Java binaries. " - + "The \"launcher\" attribute overrides this flag. " - ) + @Option(name = "java_launcher", + defaultValue = "null", + converter = LabelConverter.class, + category = "semantics", + help = "If enabled, a specific Java launcher is used. " + + "The \"launcher\" attribute overrides this flag. ") public Label javaLauncher; @Option(name = "proguard_top", 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 c2b5875f49..2e1435e0a1 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; @@ -142,6 +143,22 @@ public interface JavaSemantics { } }; + /** + * Implementation for the :java_launcher attribute. Note that the Java launcher is disabled by + * default, so it returns null for the configuration-independent default value. + */ + LateBoundLabel<BuildConfiguration> JAVA_LAUNCHER = + new LateBoundLabel<BuildConfiguration>(JavaConfiguration.class) { + @Override + 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.isAttributeValueExplicitlySpecified("launcher")) { + return attributes.get("launcher", LABEL); + } + return configuration.getFragment(JavaConfiguration.class).getJavaLauncherLabel(); + } + }; + LateBoundLabelList<BuildConfiguration> JAVA_PLUGINS = new LateBoundLabelList<BuildConfiguration>() { @Override |