Update `cc_file_list_aspect` to handle targets with missing `hdrs/textual_hdrs`

Our stale file regeneration logic broke with Bazel 6.4.0, and I suspect it was
caused by this change: https://github.com/bazelbuild/bazel/pull/19534 Our logic
assumed that any target with a `CcInfo` provider must have `hdrs` and
`textual_hdrs` attributes, but it seems that this is no longer true for
`cc_proto_library` starting with Bazel 6.4.0. The fix is just to use `getattr`
and treat the item as an empty list if it's missing.

PiperOrigin-RevId: 575473886
win2019-23.x
Adam Cozzette 1 year ago committed by Mike Kruskal
parent 18a17d3776
commit f587370e62
  1. 4
      pkg/cc_dist_library.bzl

@ -170,12 +170,12 @@ def _cc_file_list_aspect_impl(target, ctx):
return [CcFileList( return [CcFileList(
hdrs = _get_transitive_sources( hdrs = _get_transitive_sources(
_flatten_target_files(rule_attr.hdrs).to_list(), _flatten_target_files(getattr(rule_attr, "hdrs", [])).to_list(),
"hdrs", "hdrs",
rule_attr.deps, rule_attr.deps,
), ),
textual_hdrs = _get_transitive_sources( textual_hdrs = _get_transitive_sources(
_flatten_target_files(rule_attr.textual_hdrs).to_list(), _flatten_target_files(getattr(rule_attr, "textual_hdrs", [])).to_list(),
"textual_hdrs", "textual_hdrs",
rule_attr.deps, rule_attr.deps,
), ),

Loading…
Cancel
Save