Skip @bazel_tools// labels from ninja

Since these bazel labels are removed from depsets anyways,
there is little reason to convert they to ninja build statements

Test: m nothing (with bazel af426041)
Bug: 301638491
Change-Id: Ie920477231d147d0b5b7dbcd1c59ed9985a80abb
This commit is contained in:
usta
2023-09-25 17:34:15 -04:00
committed by Usta (Tsering) Shrestha
parent a0d741edef
commit c45478190f
2 changed files with 77 additions and 23 deletions

View File

@@ -372,18 +372,20 @@ func AqueryBuildStatements(aqueryJsonProto []byte, eventHandler *metrics.EventHa
defer eventHandler.End("build_statements")
wg := sync.WaitGroup{}
var errOnce sync.Once
id2targets := make(map[uint32]string, len(aqueryProto.Targets))
for _, t := range aqueryProto.Targets {
id2targets[t.GetId()] = t.GetLabel()
}
for i, actionEntry := range aqueryProto.Actions {
wg.Add(1)
go func(i int, actionEntry *analysis_v2_proto.Action) {
if buildStatement, aErr := aqueryHandler.actionToBuildStatement(actionEntry); aErr != nil {
if strings.HasPrefix(id2targets[actionEntry.TargetId], "@bazel_tools//") {
// bazel_tools are removed depsets in `populateDepsetMaps()` so skipping
// conversion to build statements as well
buildStatements[i] = nil
} else if buildStatement, aErr := aqueryHandler.actionToBuildStatement(actionEntry); aErr != nil {
errOnce.Do(func() {
for _, t := range aqueryProto.Targets {
if t.GetId() == actionEntry.GetTargetId() {
aErr = fmt.Errorf("%s: [%s] [%s]", aErr.Error(), actionEntry.GetMnemonic(), t.GetLabel())
break
}
}
aErr = fmt.Errorf("%s: [%s] [%s]", aErr.Error(), actionEntry.GetMnemonic(), id2targets[actionEntry.TargetId])
err = aErr
})
} else {