Inital commit

This commit is contained in:
eric
2026-03-12 18:58:43 +01:00
commit 8555b02752
36 changed files with 3312 additions and 0 deletions

View File

@@ -0,0 +1,48 @@
"""Toolchain definitions for Wails."""
WailsToolchainInfo = provider(
doc = "Caller-supplied Wails executable, Go executable, and runfiles.",
fields = {
"default_runfiles": "Runfiles for the Wails executable.",
"go_default_runfiles": "Runfiles for the Go executable.",
"go_executable": "Executable file for the Go tool.",
"executable": "Executable file for the Wails tool.",
"files_to_run": "FilesToRunProvider for the Wails tool.",
},
)
def _wails_toolchain_impl(ctx):
wails_default_info = ctx.attr.wails[DefaultInfo]
go_default_info = ctx.attr.go[DefaultInfo]
return [
platform_common.ToolchainInfo(
wails = WailsToolchainInfo(
default_runfiles = wails_default_info.default_runfiles,
go_default_runfiles = go_default_info.default_runfiles,
go_executable = ctx.file.go,
executable = ctx.executable.wails,
files_to_run = wails_default_info.files_to_run,
),
),
]
wails_toolchain = rule(
implementation = _wails_toolchain_impl,
attrs = {
"go": attr.label(
mandatory = True,
cfg = "exec",
allow_single_file = True,
doc = "Executable file used for hermetic `go run` invocations inside the Wails tool.",
),
"wails": attr.label(
mandatory = True,
cfg = "exec",
executable = True,
allow_files = True,
doc = "Executable target used to invoke Wails.",
),
},
doc = "Registers caller-supplied Wails and Go executables as a Bazel toolchain.",
)