aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsFunction.java
diff options
context:
space:
mode:
authorGravatar ulfjack <ulfjack@google.com>2017-09-26 08:45:31 -0400
committerGravatar John Cater <jcater@google.com>2017-09-26 09:30:38 -0400
commitd27ed80762380c0fe9da9fc512c5d40a86acc59f (patch)
treee2978183274078cbb5c71d59ace31a2bcfb56835 /src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsFunction.java
parent411039319c1c67f2b9c8a7ada9e0a11d9bd4023f (diff)
Move ExternalPackageUtil to a new lib.repository package and simplify it
Move the nested Exception classes to top-level classes, remove unused functionality and move functionality only used in one place to that place. PiperOrigin-RevId: 170041246
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsFunction.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsFunction.java26
1 files changed, 22 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsFunction.java
index b7d64927bb..d8f7b1b46c 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsFunction.java
@@ -14,14 +14,14 @@
package com.google.devtools.build.lib.skyframe;
+import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.PlatformConfiguration;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.analysis.platform.DeclaredToolchainInfo;
import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.rules.ExternalPackageUtil;
-import com.google.devtools.build.lib.rules.ExternalPackageUtil.ExternalPackageException;
+import com.google.devtools.build.lib.packages.Package;
import com.google.devtools.build.lib.skyframe.ConfiguredTargetFunction.ConfiguredValueCreationException;
import com.google.devtools.build.skyframe.LegacySkyKey;
import com.google.devtools.build.skyframe.SkyFunction;
@@ -70,14 +70,32 @@ public class RegisteredToolchainsFunction implements SkyFunction {
}
private Iterable<? extends Label> getWorkspaceToolchains(Environment env)
- throws ExternalPackageException, InterruptedException {
- List<Label> labels = ExternalPackageUtil.getRegisteredToolchainLabels(env);
+ throws InterruptedException {
+ List<Label> labels = getRegisteredToolchainLabels(env);
if (labels == null) {
return ImmutableList.of();
}
return labels;
}
+ /**
+ * Loads the external package and then returns the registered toolchain labels.
+ *
+ * @param env the environment to use for lookups
+ */
+ @Nullable @VisibleForTesting
+ public static List<Label> getRegisteredToolchainLabels(Environment env)
+ throws InterruptedException {
+ PackageValue externalPackageValue =
+ (PackageValue) env.getValue(PackageValue.key(Label.EXTERNAL_PACKAGE_IDENTIFIER));
+ if (externalPackageValue == null) {
+ return null;
+ }
+
+ Package externalPackage = externalPackageValue.getPackage();
+ return externalPackage.getRegisteredToolchainLabels();
+ }
+
private ImmutableList<DeclaredToolchainInfo> configureRegisteredToolchains(
Environment env, BuildConfiguration configuration, List<Label> labels)
throws InterruptedException, RegisteredToolchainsFunctionException {