| load("@{rules_go_repo_name}//go/private/rules:binary.bzl", "go_tool_binary") |
| load("@{rules_go_repo_name}//go/private/rules:sdk.bzl", "package_list") |
| load("@{rules_go_repo_name}//go:def.bzl", "declare_toolchains", "go_sdk") |
| |
| package(default_visibility = ["//visibility:public"]) |
| |
| filegroup( |
| name = "libs", |
| srcs = glob( |
| ["pkg/{goos}_{goarch}/**/*.a"], |
| exclude = ["pkg/{goos}_{goarch}/**/cmd/**"], |
| ), |
| ) |
| |
| filegroup( |
| name = "headers", |
| srcs = glob(["pkg/include/*.h"]), |
| ) |
| |
| filegroup( |
| name = "srcs", |
| srcs = glob(["src/**"]), |
| ) |
| |
| filegroup( |
| name = "tools", |
| srcs = glob([ |
| "pkg/tool/**", |
| "bin/gofmt*", |
| ]), |
| ) |
| |
| go_sdk( |
| name = "go_sdk", |
| srcs = [":srcs"], |
| go = "bin/go{exe}", |
| goarch = "{goarch}", |
| goos = "{goos}", |
| headers = [":headers"], |
| libs = [":libs"], |
| package_list = ":package_list", |
| root_file = "ROOT", |
| tools = [":tools"], |
| ) |
| |
| go_tool_binary( |
| name = "builder", |
| srcs = ["@{rules_go_repo_name}//go/tools/builders:builder_srcs"], |
| sdk = ":go_sdk", |
| ) |
| |
| # TODO(jayconrod): Gazelle depends on this file directly. This dependency |
| # should be broken, and this rule should be folded into go_sdk. |
| package_list( |
| name = "package_list", |
| srcs = [":srcs"], |
| out = "packages.txt", |
| root_file = "ROOT", |
| ) |
| |
| declare_toolchains( |
| builder = ":builder", |
| host = "{goos}_{goarch}", |
| sdk = ":go_sdk", |
| ) |
| |
| filegroup( |
| name = "files", |
| srcs = glob([ |
| "bin/go*", |
| "src/**", |
| "pkg/**", |
| ]), |
| ) |
| |
| exports_files( |
| glob([ |
| "lib/time/zoneinfo.zip", |
| "misc/wasm/**", |
| ]), |
| visibility = ["//visibility:public"], |
| ) |