blob: 2c251a06cd7da8592709a293898e65d171f4fc68 [file] [log] [blame]
load("@bazel_skylib//rules:write_file.bzl", "write_file")
load("@io_bazel_rules_go//go:def.bzl", "go_sdk", "go_toolchain")
py_library(
name = "mirror_lib",
srcs = [
"mirror_lib.py",
],
data = [
"@com_github_bazelbuild_buildtools//buildifier",
],
target_compatible_with = ["@platforms//cpu:x86_64"],
deps = [
"@bazel_tools//tools/python/runfiles",
],
)
py_binary(
name = "tweak_gazelle_go_deps",
srcs = [
"tweak_gazelle_go_deps.py",
],
visibility = ["//visibility:public"],
deps = [
":mirror_lib",
],
)
py_binary(
name = "mirror_go_repos",
srcs = [
"mirror_go_repos.py",
],
data = [
"@go_sdk//:bin/go",
],
target_compatible_with = ["@platforms//cpu:x86_64"],
visibility = ["//visibility:public"],
deps = [
":mirror_lib",
],
)
# The remainder of this file exists to create a NOOP toolchain for Go on
# platforms that don't support Go. We can probably get rid of this once
# https://github.com/bazelbuild/bazel/issues/12897 is fixed.
#
# For platforms that do support Go, we use go_register_toolchain() in
# WORKSPACE.
write_file(
name = "noop_error_exit",
out = "noop_error_exit.sh",
content = [
"#!/bin/bash",
"echo 'This should never be executed. Something went wrong.' >&2",
"echo 'This NOOP Go toolchain should never be executed. Something went wrong.' >&2",
"echo 'Check that your target has `target_compatible_with` set to a platform that supports Go.' >&2",
"exit 1",
],
is_executable = True,
)
go_sdk(
name = "noop_sdk",
go = ":noop_error_exit",
goarch = "none",
goos = "none",
root_file = "NOOP_FILE_THAT_DOES_NOT_EXIST",
)
go_toolchain(
name = "noop_go_toolchain_impl",
builder = ":noop_error_exit",
cgo_link_flags = None,
goarch = "none",
goos = "none",
link_flags = None,
sdk = ":noop_sdk",
tags = ["manual"],
)
toolchain(
name = "noop_go_toolchain",
exec_compatible_with = [
"@platforms//os:linux",
],
target_compatible_with = [
"//tools/platforms/go:lacks_support",
],
toolchain = ":noop_go_toolchain_impl",
toolchain_type = "@io_bazel_rules_go//go:toolchain",
)