From d0f2adfc8f1d195851093657b6ca1b9f1818250d Mon Sep 17 00:00:00 2001 From: Dan Fuhry Date: Sat, 14 Mar 2026 21:57:09 -0400 Subject: [PATCH] add go_cross_binaries macro and start enabling some cmds on other platforms --- bazel/cross.bzl | 36 ++++++++++++++++++++++++++++ cmd/apcups_exporter/BUILD.bazel | 6 +++++ cmd/machines_agent/BUILD.bazel | 6 +++++ cmd/sase_ws_proxy_client/BUILD.bazel | 6 +++++ 4 files changed, 54 insertions(+) create mode 100644 bazel/cross.bzl diff --git a/bazel/cross.bzl b/bazel/cross.bzl new file mode 100644 index 0000000..1aa4b79 --- /dev/null +++ b/bazel/cross.bzl @@ -0,0 +1,36 @@ +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 diff --git a/cmd/apcups_exporter/BUILD.bazel b/cmd/apcups_exporter/BUILD.bazel index 6d7512f..30ef531 100644 --- a/cmd/apcups_exporter/BUILD.bazel +++ b/cmd/apcups_exporter/BUILD.bazel @@ -1,4 +1,5 @@ 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( @@ -45,3 +46,8 @@ systemd_service( user = "daemon", deps = ["apcupsd.service"], ) + +go_cross_binaries( + base_target = "apcups_exporter", + linux_arm = True, +) diff --git a/cmd/machines_agent/BUILD.bazel b/cmd/machines_agent/BUILD.bazel index 9cb4a85..7fed79b 100644 --- a/cmd/machines_agent/BUILD.bazel +++ b/cmd/machines_agent/BUILD.bazel @@ -1,4 +1,5 @@ load("@rules_go//go:def.bzl", "go_binary", "go_library") +load("//bazel:cross.bzl", "go_cross_binaries") go_library( name = "machines_agent_lib", @@ -18,3 +19,8 @@ go_binary( embed = [":machines_agent_lib"], visibility = ["//visibility:public"], ) + +go_cross_binaries( + base_target = "machines_agent", + openbsd = True, +) diff --git a/cmd/sase_ws_proxy_client/BUILD.bazel b/cmd/sase_ws_proxy_client/BUILD.bazel index bd2c944..a97c3f8 100644 --- a/cmd/sase_ws_proxy_client/BUILD.bazel +++ b/cmd/sase_ws_proxy_client/BUILD.bazel @@ -1,4 +1,5 @@ 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", @@ -16,3 +17,8 @@ go_binary( embed = [":sase_ws_proxy_client_lib"], visibility = ["//visibility:public"], ) + +go_cross_binaries( + base_target = "sase_ws_proxy_client", + mac = True, +) -- 2.52.0