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 )