@@ -396,7 +396,8 @@ void executeBuild(
396396 createActionLogDirectory ();
397397 }
398398
399- handleConvenienceSymlinks (analysisResult );
399+ handleConvenienceSymlinks (
400+ analysisResult .getTargetsToBuild (), analysisResult .getConfiguration ());
400401
401402 BuildRequestOptions options = request .getBuildOptions ();
402403 ActionCache actionCache = null ;
@@ -702,13 +703,15 @@ private static BuildConfigurationValue getConfiguration(
702703 * Otherwise, manage the convenience symlinks and then post a {@link
703704 * ConvenienceSymlinksIdentifiedEvent} build event.
704705 */
705- public void handleConvenienceSymlinks (AnalysisResult analysisResult ) {
706+ public void handleConvenienceSymlinks (
707+ ImmutableSet <ConfiguredTarget > targetsToBuild , BuildConfigurationValue configuration ) {
706708 try (SilentCloseable c =
707709 Profiler .instance ().profile ("ExecutionTool.handleConvenienceSymlinks" )) {
708710 ImmutableList <ConvenienceSymlink > convenienceSymlinks = ImmutableList .of ();
709711 if (request .getBuildOptions ().experimentalConvenienceSymlinks
710712 != ConvenienceSymlinksMode .IGNORE ) {
711- convenienceSymlinks = createConvenienceSymlinks (request .getBuildOptions (), analysisResult );
713+ convenienceSymlinks =
714+ createConvenienceSymlinks (request .getBuildOptions (), targetsToBuild , configuration );
712715 }
713716 if (request .getBuildOptions ().experimentalConvenienceSymlinksBepEvent ) {
714717 env .getEventBus ().post (new ConvenienceSymlinksIdentifiedEvent (convenienceSymlinks ));
@@ -730,22 +733,23 @@ public void handleConvenienceSymlinks(AnalysisResult analysisResult) {
730733 * in fact gets removed if it was already present from a previous invocation.
731734 */
732735 private ImmutableList <ConvenienceSymlink > createConvenienceSymlinks (
733- BuildRequestOptions buildRequestOptions , AnalysisResult analysisResult ) {
736+ BuildRequestOptions buildRequestOptions ,
737+ ImmutableSet <ConfiguredTarget > targetsToBuild ,
738+ BuildConfigurationValue configuration ) {
734739 SkyframeExecutor executor = env .getSkyframeExecutor ();
735740 Reporter reporter = env .getReporter ();
736741
737742 // Gather configurations to consider.
738743 Set <BuildConfigurationValue > targetConfigurations =
739- buildRequestOptions .useTopLevelTargetsForSymlinks ()
740- && !analysisResult .getTargetsToBuild ().isEmpty ()
741- ? analysisResult .getTargetsToBuild ().stream ()
744+ buildRequestOptions .useTopLevelTargetsForSymlinks () && !targetsToBuild .isEmpty ()
745+ ? targetsToBuild .stream ()
742746 .map (ConfiguredTarget ::getActual )
743747 .map (ConfiguredTarget ::getConfigurationKey )
744748 .filter (Objects ::nonNull )
745749 .distinct ()
746750 .map ((key ) -> executor .getConfiguration (reporter , key ))
747751 .collect (toImmutableSet ())
748- : ImmutableSet .of (analysisResult . getConfiguration () );
752+ : ImmutableSet .of (configuration );
749753
750754 String productName = runtime .getProductName ();
751755 try (SilentCloseable c =
0 commit comments