constellation/bazel/ci/go_bin_for_host.bzl
renovate[bot] 54878ddc56
deps: update bazel (modules) (major) (#3540)
* deps: update bazel (modules)

* deps: tidy all modules

* Copy private go_bin_for_host rule from `rules_go` to `/bazel/ci`

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: Daniel Weiße <dw@edgeless.systems>
2024-12-10 15:19:46 +01:00

30 lines
894 B
Python

"""
Go toolchain for the host platformS
Inspired by https://github.com/bazel-contrib/rules_go/blob/6e4fdcfeb1a333b54ab39ae3413d4ded46d8958d/go/private/rules/go_bin_for_host.bzl
"""
load("@local_config_platform//:constraints.bzl", "HOST_CONSTRAINTS")
GO_TOOLCHAIN = "@io_bazel_rules_go//go:toolchain"
def _ensure_target_cfg(ctx):
if "-exec" in ctx.bin_dir.path or "/host/" in ctx.bin_dir.path:
fail("exec not found")
def _go_bin_for_host_impl(ctx):
_ensure_target_cfg(ctx)
sdk = ctx.toolchains[GO_TOOLCHAIN].sdk
sdk_files = ctx.runfiles([sdk.go] + sdk.headers + sdk.libs + sdk.srcs + sdk.tools)
return [
DefaultInfo(
files = depset([sdk.go]),
runfiles = sdk_files,
),
]
go_bin_for_host = rule(
implementation = _go_bin_for_host_impl,
toolchains = [GO_TOOLCHAIN],
exec_compatible_with = HOST_CONSTRAINTS,
)