| """Custom rule to test the JavaPluginInfo provider""" | |
| load("//java/common:java_info.bzl", "JavaInfo") | |
| load( | |
| "//java/common:java_plugin_info.bzl", | |
| "JavaPluginInfo", | |
| ) | |
| def _impl(ctx): | |
| output_jar = ctx.actions.declare_file(ctx.label.name + "/lib.jar") | |
| ctx.actions.write(output_jar, "") | |
| dep = JavaInfo( | |
| output_jar = output_jar, | |
| compile_jar = None, | |
| deps = [d[JavaInfo] for d in ctx.attr.deps], | |
| ) | |
| data = depset(ctx.files.data) if ctx.attr.data_as_depset else ctx.files.data | |
| return [JavaPluginInfo( | |
| runtime_deps = [dep], | |
| processor_class = ctx.attr.processor_class, | |
| data = data, | |
| generates_api = ctx.attr.generates_api, | |
| )] | |
| custom_plugin = rule( | |
| implementation = _impl, | |
| attrs = { | |
| "deps": attr.label_list(), | |
| "processor_class": attr.string(), | |
| "data": attr.label_list(allow_files = True), | |
| "generates_api": attr.bool(default = False), | |
| "data_as_depset": attr.bool(default = False), | |
| }, | |
| ) |