aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java39
1 files changed, 28 insertions, 11 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 6c29411930..aee043ad5e 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
@@ -83,7 +83,8 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
* Builder for {@link ConfiguredRuleClassProvider}.
*/
public static class Builder implements RuleDefinitionEnvironment {
- private final StringBuilder defaultWorkspaceFile = new StringBuilder();
+ private final StringBuilder defaultWorkspaceFilePrefix = new StringBuilder();
+ private final StringBuilder defaultWorkspaceFileSuffix = new StringBuilder();
private Label preludeLabel;
private String runfilesPrefix;
private String toolsRepository;
@@ -109,8 +110,12 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
ImmutableList.<Class<?>>builder().addAll(SkylarkModules.MODULES);
private final List<Class<? extends FragmentOptions>> buildOptions = Lists.newArrayList();
- public void addWorkspaceFile(String contents) {
- defaultWorkspaceFile.append(contents);
+ public void addWorkspaceFilePrefix(String contents) {
+ defaultWorkspaceFilePrefix.append(contents);
+ }
+
+ public void addWorkspaceFileSuffix(String contents) {
+ defaultWorkspaceFileSuffix.append(contents);
}
public Builder setPrelude(String preludeLabelString) {
@@ -264,7 +269,8 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
ImmutableMap.copyOf(ruleClassMap),
ImmutableMap.copyOf(ruleDefinitionMap),
ImmutableMap.copyOf(aspectFactoryMap),
- defaultWorkspaceFile.toString(),
+ defaultWorkspaceFilePrefix.toString(),
+ defaultWorkspaceFileSuffix.toString(),
ImmutableList.copyOf(buildInfoFactories),
ImmutableList.copyOf(configurationOptions),
ImmutableList.copyOf(configurationFragments),
@@ -304,10 +310,15 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
});
/**
- * A list of relative paths to the WORKSPACE files needed to provide external dependencies for
- * the rule classes.
+ * Default content that should be added at the beginning of the WORKSPACE file.
+ */
+ private final String defaultWorkspaceFilePrefix;
+
+ /**
+ * Default content that should be added at the end of the WORKSPACE file.
*/
- String defaultWorkspaceFile;
+ private final String defaultWorkspaceFileSuffix;
+
/**
* Label for the prelude file.
@@ -375,7 +386,8 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
ImmutableMap<String, RuleClass> ruleClassMap,
ImmutableMap<String, Class<? extends RuleDefinition>> ruleDefinitionMap,
ImmutableMap<String, Class<? extends NativeAspectFactory>> aspectFactoryMap,
- String defaultWorkspaceFile,
+ String defaultWorkspaceFilePrefix,
+ String defaultWorkspaceFileSuffix,
ImmutableList<BuildInfoFactory> buildInfoFactories,
ImmutableList<Class<? extends FragmentOptions>> configurationOptions,
ImmutableList<ConfigurationFragmentFactory> configurationFragments,
@@ -391,7 +403,8 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
this.ruleClassMap = ruleClassMap;
this.ruleDefinitionMap = ruleDefinitionMap;
this.aspectFactoryMap = aspectFactoryMap;
- this.defaultWorkspaceFile = defaultWorkspaceFile;
+ this.defaultWorkspaceFilePrefix = defaultWorkspaceFilePrefix;
+ this.defaultWorkspaceFileSuffix = defaultWorkspaceFileSuffix;
this.buildInfoFactories = buildInfoFactories;
this.configurationOptions = configurationOptions;
this.configurationFragments = configurationFragments;
@@ -540,9 +553,13 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
eventHandler, astFileContentHashCode, importMap);
}
+ @Override
+ public String getDefaultWorkspacePrefix() {
+ return defaultWorkspaceFilePrefix;
+ }
@Override
- public String getDefaultWorkspaceFile() {
- return defaultWorkspaceFile;
+ public String getDefaultWorkspaceSuffix() {
+ return defaultWorkspaceFileSuffix;
}
}