--- /dev/null
+load("@rules_go//go:def.bzl", "go_cross_binary")
+
+def _go_cross_target(
+ base_target,
+ platform,
+):
+ go_cross_binary(
+ name = "{}_{}".format(base_target, platform),
+ platform = "@rules_go//go/toolchain:{}".format(platform),
+ target = ":{}".format(base_target),
+ )
+
+def go_cross_binaries(
+ base_target,
+ mac = False,
+ openbsd = False,
+ linux_arm = False,
+):
+ """
+ go_cross_binaries
+
+ Args:
+ base_target: base go_binary target
+ mac: generate targets for macOS
+ openbsd: generate targets for OpenBSD
+ linux_arm: generate targets for Linux arm64
+ """
+ if mac:
+ for arch in ["amd64", "arm64"]:
+ _go_cross_target(base_target, "darwin_{}".format(arch))
+
+ if openbsd:
+ _go_cross_target(base_target, "openbsd_amd64")
+
+ if linux_arm:
+ _go_cross_target(base_target, "linux_arm64")
\ No newline at end of file
load("@rules_go//go:def.bzl", "go_binary", "go_library")
+load("//bazel:cross.bzl", "go_cross_binaries")
load("//bazel:svc.bzl", "systemd_service")
go_library(
user = "daemon",
deps = ["apcupsd.service"],
)
+
+go_cross_binaries(
+ base_target = "apcups_exporter",
+ linux_arm = True,
+)
load("@rules_go//go:def.bzl", "go_binary", "go_library")
+load("//bazel:cross.bzl", "go_cross_binaries")
go_library(
name = "machines_agent_lib",
embed = [":machines_agent_lib"],
visibility = ["//visibility:public"],
)
+
+go_cross_binaries(
+ base_target = "machines_agent",
+ openbsd = True,
+)
load("@rules_go//go:def.bzl", "go_binary", "go_library")
+load("//bazel:cross.bzl", "go_cross_binaries")
go_library(
name = "sase_ws_proxy_client_lib",
embed = [":sase_ws_proxy_client_lib"],
visibility = ["//visibility:public"],
)
+
+go_cross_binaries(
+ base_target = "sase_ws_proxy_client",
+ mac = True,
+)