blob: 9ceaf82678e19e522b9443e82554ef6707e1dd97 [file] [log] [blame]
"""Helper rules to test private API usage"""
load("//java/common:java_common.bzl", "java_common")
load("//java/common:java_info.bzl", "JavaInfo")
load("//java/common:java_semantics.bzl", "semantics")
_PRIVATE_ATTR_ATTRS = {
"private_attr_name": attr.string(mandatory = True),
}
def _private_compile_api_impl(ctx):
out = ctx.actions.declare_file(ctx.label.name + ".jar")
java_common.compile(
ctx = ctx,
output = out,
java_toolchain = semantics.find_java_toolchain(ctx),
**{ctx.attr.private_attr_name: "does_not_matter"}
)
return []
private_compile_api_usage = rule(
_private_compile_api_impl,
attrs = _PRIVATE_ATTR_ATTRS,
fragments = ["java"],
toolchains = [semantics.JAVA_TOOLCHAIN_TYPE],
)
def _private_merge_api_impl(ctx):
out = ctx.actions.declare_file(ctx.label.name + ".jar")
info = JavaInfo(output_jar = out, compile_jar = out)
java_common.merge(
providers = [info],
**{ctx.attr.private_attr_name: "does_not_matter"}
)
return []
private_merge_api_usage = rule(
_private_merge_api_impl,
attrs = _PRIVATE_ATTR_ATTRS,
fragments = ["java"],
)
def _private_run_ijar_api_impl(ctx):
java_common.run_ijar(
ctx.actions,
java_toolchain = semantics.find_java_toolchain(ctx),
jar = ctx.actions.declare_file(ctx.label.name + "_ijar.jar"),
**{ctx.attr.private_attr_name: "does_not_matter"}
)
return []
private_run_ijar_api_usage = rule(
_private_run_ijar_api_impl,
attrs = _PRIVATE_ATTR_ATTRS,
fragments = ["java"],
toolchains = [semantics.JAVA_TOOLCHAIN_TYPE],
)