github.com/stackb/rules_proto@v0.0.0-20240221195024-5428336c51f1/example/golden/testdata/starlark_java/lib/rules.star (about)

     1  """starlark rules definitions"""
     2  
     3  def _make_java_library_rule(rctx, pctx):
     4      r = gazelle.Rule(
     5          kind = "java_library",
     6          name = pctx.proto_library.base_name + "_java_library",
     7          attrs = {
     8              "srcs": [pctx.proto_library.base_name + ".srcjar"],
     9              "deps": rctx.deps,
    10              "visibility": rctx.visibility,
    11          },
    12      )
    13      return r
    14  
    15  def _provide_java_library(rctx, pctx):
    16      return struct(
    17          name = "java_library",
    18          rule = lambda: _make_java_library_rule(rctx, pctx),
    19          experimental_resolve_attr = "deps",
    20      )
    21  
    22  protoc.Rule(
    23      name = "java_library",
    24      load_info = lambda: gazelle.LoadInfo(name = "@rules_java//java:defs.bzl", symbols = ["java_library"]),
    25      kind_info = lambda: gazelle.KindInfo(mergeable_attrs = {"srcs": True}, resolve_attrs = {"deps": True}),
    26      provide_rule = _provide_java_library,
    27  )
    28  
    29  # --------------------------------------------------
    30  
    31  def _make_java_wrapper_rule(_rctx, pctx):
    32      r = gazelle.Rule(
    33          kind = "java_wrapper",
    34          name = pctx.proto_library.base_name + "_java_wrap",
    35          attrs = {
    36              "javalib": pctx.proto_library.base_name + "_java_library",
    37              "deps": [],
    38          },
    39      )
    40      return r
    41  
    42  def _provide_java_wrapper(rctx, pctx):
    43      return struct(
    44          name = "java_wrapper",
    45          rule = lambda: _make_java_wrapper_rule(rctx, pctx),
    46          experimental_resolve_attr = "deps",
    47      )
    48  
    49  protoc.Rule(
    50      name = "java_wrapper",
    51      load_info = lambda: gazelle.LoadInfo(name = "//:defs.bzl", symbols = ["java_wrapper"]),
    52      kind_info = lambda: gazelle.KindInfo(mergeable_attrs = {"javalib": True}, resolve_attrs = {"deps": True}),
    53      provide_rule = _provide_java_wrapper,
    54  )