aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis
diff options
context:
space:
mode:
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.java16
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/RuleDefinitionEnvironment.java12
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();
}