Add dummy methods necessary for cc_proto_library to the semantics file.
PiperOrigin-RevId: 446930912
diff --git a/src/main/starlark/builtins_bzl/common/cc/cc_proto_library.bzl b/src/main/starlark/builtins_bzl/common/cc/cc_proto_library.bzl
index 29f86bd..c675939b 100644
--- a/src/main/starlark/builtins_bzl/common/cc/cc_proto_library.bzl
+++ b/src/main/starlark/builtins_bzl/common/cc/cc_proto_library.bzl
@@ -44,8 +44,19 @@
return [cc_files_provider, files_provider, cc_info_provider]
+def _aspect_impl():
+ pass
+
+_cc_proto_aspect = aspect(
+ implementation = _aspect_impl,
+ attr_aspects = ["deps"],
+ fragments = semantics.get_proto_fragments(),
+ required_providers = [ProtoInfo],
+ provides = [CcInfo],
+ attrs = semantics.get_proto_attrs(),
+)
+
def _create_cc_proto_library_rule():
- aspects = semantics.get_proto_aspects()
return rule(
output_to_genfiles = True,
implementation = _rule_impl,
@@ -54,7 +65,7 @@
# aspects = [_cc_proto_aspect], todo(dbabkin): return aspet after fix b/123988498
# TODO(cmita): use Starlark aspect after b/145508948, or when proto_library
# doesn't need to propagate
- aspects = aspects,
+ aspects = [_cc_proto_aspect],
allow_rules = ["proto_library"],
providers = [ProtoInfo, CcInfo], # todo(dbabkin): remove CcInfo after fix b/123988498
),
diff --git a/src/main/starlark/builtins_bzl/common/cc/semantics.bzl b/src/main/starlark/builtins_bzl/common/cc/semantics.bzl
index 4124e21..c9d3cb8 100644
--- a/src/main/starlark/builtins_bzl/common/cc/semantics.bzl
+++ b/src/main/starlark/builtins_bzl/common/cc/semantics.bzl
@@ -18,6 +18,12 @@
cc_common = _builtins.toplevel.cc_common
+def _get_proto_attrs():
+ return {}
+
+def _get_proto_fragments():
+ return []
+
def _get_proto_aspects():
return []
@@ -194,4 +200,6 @@
get_proto_cc_files = _get_proto_cc_files,
get_cc_files_provider = _get_cc_files_provider,
get_proto_aspects = _get_proto_aspects,
+ get_proto_fragments = _get_proto_fragments,
+ get_proto_attrs = _get_proto_attrs,
)