|
70 | 70 | import com.google.devtools.build.lib.events.StoredEventHandler; |
71 | 71 | import com.google.devtools.build.lib.packages.Attribute; |
72 | 72 | import com.google.devtools.build.lib.packages.BuildType; |
73 | | -import com.google.devtools.build.lib.packages.ExecGroup; |
74 | 73 | import com.google.devtools.build.lib.packages.NoSuchPackageException; |
75 | 74 | import com.google.devtools.build.lib.packages.NoSuchTargetException; |
76 | 75 | import com.google.devtools.build.lib.packages.PackageSpecification; |
|
81 | 80 | import com.google.devtools.build.lib.skyframe.AspectValueKey.AspectKey; |
82 | 81 | import com.google.devtools.build.lib.skyframe.BuildConfigurationValue; |
83 | 82 | import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData; |
| 83 | +import com.google.devtools.build.lib.skyframe.ConfiguredTargetFunction; |
84 | 84 | import com.google.devtools.build.lib.skyframe.ConfiguredTargetKey; |
85 | 85 | import com.google.devtools.build.lib.skyframe.SkyFunctionEnvironmentForTesting; |
86 | 86 | import com.google.devtools.build.lib.skyframe.SkyframeBuildView; |
87 | 87 | import com.google.devtools.build.lib.skyframe.SkyframeExecutor; |
88 | 88 | import com.google.devtools.build.lib.skyframe.TargetPatternPhaseValue; |
89 | | -import com.google.devtools.build.lib.skyframe.ToolchainContextKey; |
90 | 89 | import com.google.devtools.build.lib.skyframe.ToolchainException; |
91 | 90 | import com.google.devtools.build.lib.skyframe.UnloadedToolchainContext; |
92 | 91 | import com.google.devtools.build.lib.util.OrderedSetMultimap; |
93 | 92 | import com.google.devtools.build.skyframe.SkyKey; |
94 | | -import com.google.devtools.build.skyframe.ValueOrException; |
95 | 93 | import java.util.Collection; |
96 | | -import java.util.HashMap; |
97 | 94 | import java.util.LinkedHashMap; |
98 | 95 | import java.util.LinkedHashSet; |
99 | 96 | import java.util.List; |
@@ -511,51 +508,17 @@ public RuleContext getRuleContextForTesting( |
511 | 508 | Event.error("Failed to get target when trying to get rule context for testing")); |
512 | 509 | throw new IllegalStateException(e); |
513 | 510 | } |
514 | | - ImmutableSet<Label> requiredToolchains = |
515 | | - target.getAssociatedRule().getRuleClassObject().getRequiredToolchains(); |
516 | | - ImmutableMap<String, ExecGroup> execGroups = |
517 | | - target.getAssociatedRule().getRuleClassObject().getExecGroups(); |
| 511 | + |
518 | 512 | SkyFunctionEnvironmentForTesting skyfunctionEnvironment = |
519 | 513 | skyframeExecutor.getSkyFunctionEnvironmentForTesting(eventHandler); |
520 | 514 |
|
521 | | - Map<String, ToolchainContextKey> toolchainContextKeys = new HashMap<>(); |
522 | | - BuildConfigurationValue.Key configurationKey = BuildConfigurationValue.key(targetConfig); |
523 | | - for (Map.Entry<String, ExecGroup> execGroup : execGroups.entrySet()) { |
524 | | - toolchainContextKeys.put( |
525 | | - execGroup.getKey(), |
526 | | - ToolchainContextKey.key() |
527 | | - .configurationKey(configurationKey) |
528 | | - .requiredToolchainTypeLabels(execGroup.getValue().requiredToolchains()) |
529 | | - .build()); |
530 | | - } |
531 | | - String targetUnloadedToolchainContextKey = "target-unloaded-toolchain-context"; |
532 | | - toolchainContextKeys.put( |
533 | | - targetUnloadedToolchainContextKey, |
534 | | - ToolchainContextKey.key() |
535 | | - .configurationKey(configurationKey) |
536 | | - .requiredToolchainTypeLabels(requiredToolchains) |
537 | | - .build()); |
538 | | - |
539 | | - Map<SkyKey, ValueOrException<ToolchainException>> values = |
540 | | - skyfunctionEnvironment.getValuesOrThrow( |
541 | | - toolchainContextKeys.values(), ToolchainException.class); |
542 | | - |
543 | | - ToolchainCollection.Builder<UnloadedToolchainContext> unloadedToolchainContexts = |
544 | | - ToolchainCollection.builder(); |
545 | | - for (Map.Entry<String, ToolchainContextKey> unloadedToolchainContextKey : |
546 | | - toolchainContextKeys.entrySet()) { |
547 | | - UnloadedToolchainContext unloadedToolchainContext = |
548 | | - (UnloadedToolchainContext) values.get(unloadedToolchainContextKey.getValue()).get(); |
549 | | - String execGroup = unloadedToolchainContextKey.getKey(); |
550 | | - if (execGroup.equals(targetUnloadedToolchainContextKey)) { |
551 | | - unloadedToolchainContexts.addDefaultContext(unloadedToolchainContext); |
552 | | - } else { |
553 | | - unloadedToolchainContexts.addContext(execGroup, unloadedToolchainContext); |
554 | | - } |
555 | | - } |
556 | | - |
557 | 515 | ToolchainCollection<UnloadedToolchainContext> unloadedToolchainCollection = |
558 | | - unloadedToolchainContexts.build(); |
| 516 | + ConfiguredTargetFunction.computeUnloadedToolchainContexts( |
| 517 | + skyfunctionEnvironment, |
| 518 | + ruleClassProvider, |
| 519 | + skyframeExecutor.getDefaultBuildOptions(), |
| 520 | + new TargetAndConfiguration(target.getAssociatedRule(), targetConfig), |
| 521 | + null); |
559 | 522 |
|
560 | 523 | OrderedSetMultimap<DependencyKind, ConfiguredTargetAndData> prerequisiteMap = |
561 | 524 | getPrerequisiteMapForTesting( |
|
0 commit comments