diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java | 16 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/RuleDefinitionEnvironment.java | 12 |
2 files changed, 28 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java index 42826523e1..2d13abd9ec 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java @@ -227,11 +227,19 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider { registeredSkylarkProviders = ImmutableBiMap.builder(); private Map<String, String> platformRegexps = new TreeMap<>(); + // TODO(pcloudy): Remove this field after Bazel rule definitions are not used internally. + private String nativeLauncherLabel; + public Builder setProductName(String productName) { this.productName = productName; return this; } + public Builder setNativeLauncherLabel(String label) { + this.nativeLauncherLabel = label; + return this; + } + public void addWorkspaceFilePrefix(String contents) { defaultWorkspaceFilePrefix.append(contents); } @@ -455,6 +463,14 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider { } @Override + public Label getLauncherLabel() { + if (nativeLauncherLabel == null) { + return null; + } + return getToolsLabel(nativeLauncherLabel); + } + + @Override public String getToolsRepository() { return toolsRepository; } diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleDefinitionEnvironment.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleDefinitionEnvironment.java index 5880e954dd..e388b86284 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/RuleDefinitionEnvironment.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleDefinitionEnvironment.java @@ -16,6 +16,8 @@ package com.google.devtools.build.lib.analysis; import com.google.devtools.build.lib.cmdline.Label; +import javax.annotation.Nullable; + /** * Encapsulates the services available for implementors of the {@link RuleDefinition} * interface. @@ -37,4 +39,14 @@ public interface RuleDefinitionEnvironment { * Returns the tools repository prefix. */ String getToolsRepository(); + + /** + * Returns the label for Bazel binary launcher. + * In bazel, it should be //tools/launcher:launcher, otherwise it should be null. + * + * TODO(pcloudy): Remove this after Bazel rule definitions are not used internally anymore. + * Related bug b/63658220 + */ + @Nullable + Label getLauncherLabel(); } |