| """Internal rule implementation for upb_*_proto_library() rules.""" |
| def upb_proto_rule_impl(ctx, cc_info_provider, srcs_provider): |
| """An implementation for upb_*proto_library() rules. |
| ctx: The rule `ctx` argument |
| cc_info_provider: The provider containing a wrapped CcInfo that will be exposed to users who |
| srcs_provider: The provider containing the generated source files. This will be used to make |
| the DefaultInfo return the source files. |
| if len(ctx.attr.deps) != 1: |
| fail("only one deps dependency allowed.") |
| srcs = dep[srcs_provider].srcs |
| cc_info = dep[cc_info_provider].cc_info |
| lib = cc_info.linking_context.linker_inputs.to_list()[0].libraries[0] |
| DefaultInfo(files = depset(files + srcs.hdrs + srcs.srcs)), |