|
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