Add register_toolchains function to the WORKSPACE for registering toolchains to use.
Part of #2219.
Change-Id: Id6dfe6ec102f609bb19461242a098bf977be29ae
PiperOrigin-RevId: 161527986
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Package.java b/src/main/java/com/google/devtools/build/lib/packages/Package.java
index e5a5598..4ec65dd 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Package.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Package.java
@@ -193,6 +193,8 @@
private ImmutableList<Event> events;
private ImmutableList<Postable> posts;
+ private ImmutableList<Label> registeredToolchainLabels;
+
/**
* Package initialization, part 1 of 3: instantiates a new package with the
* given name.
@@ -317,6 +319,7 @@
this.features = ImmutableSortedSet.copyOf(builder.features);
this.events = ImmutableList.copyOf(builder.events);
this.posts = ImmutableList.copyOf(builder.posts);
+ this.registeredToolchainLabels = ImmutableList.copyOf(builder.registeredToolchainLabels);
}
/**
@@ -643,6 +646,10 @@
return defaultRestrictedTo;
}
+ public ImmutableList<Label> getRegisteredToolchainLabels() {
+ return registeredToolchainLabels;
+ }
+
@Override
public String toString() {
return "Package(" + name + ")="
@@ -694,6 +701,7 @@
* {@link com.google.devtools.build.lib.skyframe.PackageFunction}.
*/
public static class Builder {
+
public static interface Helper {
/**
* Returns a fresh {@link Package} instance that a {@link Builder} will internally mutate
@@ -756,6 +764,8 @@
protected ExternalPackageBuilder externalPackageData = new ExternalPackageBuilder();
+ protected List<Label> registeredToolchainLabels = new ArrayList<>();
+
/**
* True iff the "package" function has already been called in this package.
*/
@@ -1270,6 +1280,10 @@
addRuleUnchecked(rule);
}
+ void addRegisteredToolchainLabels(List<Label> toolchains) {
+ this.registeredToolchainLabels.addAll(toolchains);
+ }
+
private Builder beforeBuild(boolean discoverAssumedInputFiles) throws InterruptedException {
Preconditions.checkNotNull(pkg);
Preconditions.checkNotNull(filename);