Skip to content

Commit abfc7d4

Browse files
authored
go: support remote cross-compilation (#307)
If no go_download_sdk is declared, go_register_toolchains automatically declares one for the host platform. But it fails toolchains resolution if the execution platform is different than the host platform.
1 parent e427a11 commit abfc7d4

File tree

1 file changed

+26
-3
lines changed

1 file changed

+26
-3
lines changed

WORKSPACE

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -141,12 +141,15 @@ load("@rules_proto_grpc//java:repositories.bzl", rules_proto_grpc_java_repos = "
141141

142142
rules_proto_grpc_java_repos()
143143

144-
load("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies", "rules_proto_toolchains")
145144
load("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies", "rules_proto_toolchains")
146145
load("@rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps")
146+
147147
rules_jvm_external_deps()
148+
148149
load("@rules_jvm_external//:setup.bzl", "rules_jvm_external_setup")
150+
149151
rules_jvm_external_setup()
152+
150153
load("@rules_jvm_external//:defs.bzl", "maven_install")
151154

152155
rules_proto_dependencies()
@@ -209,7 +212,7 @@ scalatest_repositories()
209212

210213
scalatest_toolchain()
211214

212-
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
215+
load("@io_bazel_rules_go//go:deps.bzl", "go_download_sdk", "go_register_toolchains", "go_rules_dependencies")
213216
load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies")
214217
load(":deps.bzl", "go_dependencies")
215218

@@ -218,7 +221,27 @@ go_dependencies()
218221

219222
go_rules_dependencies()
220223

221-
go_register_toolchains(version = "1.21.6")
224+
GO_PLATFORMS = [
225+
("darwin", "amd64"),
226+
("darwin", "arm64"),
227+
("linux", "amd64"),
228+
("linux", "arm64"),
229+
("windows", "amd64"),
230+
]
231+
232+
GO_VERSION = "1.21.6"
233+
234+
[
235+
go_download_sdk(
236+
name = "go_{}_{}".format(goos, goarch),
237+
goarch = goarch,
238+
goos = goos,
239+
version = GO_VERSION,
240+
)
241+
for goos, goarch in GO_PLATFORMS
242+
]
243+
244+
go_register_toolchains()
222245

223246
gazelle_dependencies()
224247

0 commit comments

Comments
 (0)