Inject the default runfiles prefix from the rule class provider.
--
MOS_MIGRATED_REVID=102341264
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 8f048f7..18d605d 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
@@ -80,6 +80,7 @@
public static class Builder implements RuleDefinitionEnvironment {
private final StringBuilder defaultWorkspaceFile = new StringBuilder();
private PathFragment preludePath;
+ private String runfilesPrefix;
private final List<ConfigurationFragmentFactory> configurationFragments = new ArrayList<>();
private final List<BuildInfoFactory> buildInfoFactories = new ArrayList<>();
private final List<Class<? extends FragmentOptions>> configurationOptions = new ArrayList<>();
@@ -110,6 +111,11 @@
return this;
}
+ public Builder setRunfilesPrefix(String runfilesPrefix) {
+ this.runfilesPrefix = runfilesPrefix;
+ return this;
+ }
+
public Builder setPrerequisiteValidator(PrerequisiteValidator prerequisiteValidator) {
this.prerequisiteValidator = prerequisiteValidator;
return this;
@@ -219,6 +225,7 @@
return new ConfiguredRuleClassProvider(
preludePath,
+ runfilesPrefix,
ImmutableMap.copyOf(ruleClassMap),
ImmutableMap.copyOf(ruleDefinitionMap),
ImmutableMap.copyOf(aspectFactoryMap),
@@ -265,6 +272,11 @@
private final PathFragment preludePath;
/**
+ * The default runfiles prefix.
+ */
+ private final String runfilesPrefix;
+
+ /**
* Maps rule class name to the metaclass instance for that rule.
*/
private final ImmutableMap<String, RuleClass> ruleClassMap;
@@ -304,6 +316,7 @@
public ConfiguredRuleClassProvider(
PathFragment preludePath,
+ String runfilesPrefix,
ImmutableMap<String, RuleClass> ruleClassMap,
ImmutableMap<String, Class<? extends RuleDefinition>> ruleDefinitionMap,
ImmutableMap<String, Class<? extends AspectFactory<?, ?, ?>>> aspectFactoryMap,
@@ -315,6 +328,7 @@
PrerequisiteValidator prerequisiteValidator,
ImmutableMap<String, SkylarkType> skylarkAccessibleJavaClasses) {
this.preludePath = preludePath;
+ this.runfilesPrefix = runfilesPrefix;
this.ruleClassMap = ruleClassMap;
this.ruleDefinitionMap = ruleDefinitionMap;
this.aspectFactoryMap = aspectFactoryMap;
@@ -340,6 +354,11 @@
}
@Override
+ public String getRunfilesPrefix() {
+ return runfilesPrefix;
+ }
+
+ @Override
public Map<String, RuleClass> getRuleClassMap() {
return ruleClassMap;
}