@@ -84,13 +84,29 @@ resolved_toolchain = rule(
8484 implementation = _resolved_toolchain_impl,
8585 toolchains = ["@tar.bzl//tar/toolchain:type"],
8686)
87+
88+ def _resolved_target_toolchain_impl(ctx):
89+ toolchain_info = ctx.toolchains["@tar.bzl//tar/toolchain:target_type"]
90+ return [
91+ toolchain_info,
92+ toolchain_info.default,
93+ toolchain_info.tarinfo,
94+ toolchain_info.template_variables,
95+ ]
96+
97+ resolved_target_toolchain = rule(
98+ implementation = _resolved_target_toolchain_impl,
99+ toolchains = ["@tar.bzl//tar/toolchain:target_type"],
100+ )
87101"""
88102 rctx .file ("defs.bzl" , starlark_content )
89103
90104 build_content = """# @generated by @tar.bzl//tar/toolchain:toolchain.bzl
91- load(":defs.bzl", "resolved_toolchain")
105+ load(":defs.bzl", "resolved_toolchain", "resolved_target_toolchain" )
92106
93- resolved_toolchain(name = "resolved_toolchain", visibility = ["//visibility:public"])"""
107+ resolved_toolchain(name = "resolved_toolchain", visibility = ["//visibility:public"])
108+
109+ resolved_target_toolchain(name = "resolved_target_toolchain", visibility = ["//visibility:public"])"""
94110
95111 for [platform , meta ] in BSDTAR_PLATFORMS .items ():
96112 build_content += """
@@ -100,6 +116,13 @@ toolchain(
100116 toolchain = "@{user_repository_name}_{platform}//:bsdtar_toolchain",
101117 toolchain_type = "@tar.bzl//tar/toolchain:type",
102118)
119+
120+ toolchain(
121+ name = "{platform}_target_toolchain",
122+ target_compatible_with = {compatible_with},
123+ toolchain = "@{user_repository_name}_{platform}//:bsdtar_toolchain",
124+ toolchain_type = "@tar.bzl//tar/toolchain:target_type",
125+ )
103126""" .format (
104127 platform = platform ,
105128 user_repository_name = rctx .attr .user_repository_name ,
0 commit comments