blob: d3eef7a82b8ea5129e3ecc8e328a7b7e9842bea9 [file]
"""Utility rules"""
def _transition_platform_impl(_, attr):
return {"//command_line_option:platforms": str(attr.platform)}
_transition_platform = transition(
implementation = _transition_platform_impl,
inputs = [],
outputs = ["//command_line_option:platforms"],
)
def _platform_transition_filegroup_impl(ctx):
files = depset(transitive = [src[DefaultInfo].files for src in ctx.attr.srcs])
runfiles = ctx.runfiles().merge_all([src[DefaultInfo].default_runfiles for src in ctx.attr.srcs])
return [DefaultInfo(
files = files,
runfiles = runfiles,
)]
platform_transition_filegroup = rule(
doc = "Transitions a target to the provided platform.",
implementation = _platform_transition_filegroup_impl,
attrs = {
"platform": attr.label(
doc = "The platform to transition to.",
mandatory = True,
),
"srcs": attr.label_list(
doc = "The targets to transition",
allow_files = True,
cfg = _transition_platform,
),
"_allowlist_function_transition": attr.label(
default = "@bazel_tools//tools/allowlists/function_transition_allowlist",
),
},
)