diff options
author | ulfjack <ulfjack@google.com> | 2017-09-26 08:45:31 -0400 |
---|---|---|
committer | John Cater <jcater@google.com> | 2017-09-26 09:30:38 -0400 |
commit | d27ed80762380c0fe9da9fc512c5d40a86acc59f (patch) | |
tree | e2978183274078cbb5c71d59ace31a2bcfb56835 /src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsFunction.java | |
parent | 411039319c1c67f2b9c8a7ada9e0a11d9bd4023f (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.java | 26 |
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 { |