xref: /aosp_15_r20/external/bazelbuild-rules_go/go/private/BUILD.sdk.bazel (revision 9bb1b549b6a84214c53be0924760be030e66b93a)
1load("@io_bazel_rules_go//go/private/rules:binary.bzl", "go_tool_binary")
2load("@io_bazel_rules_go//go/private/rules:sdk.bzl", "package_list")
3load("@io_bazel_rules_go//go/private/rules:transition.bzl", "non_go_reset_target")
4load("@io_bazel_rules_go//go/private:go_toolchain.bzl", "declare_go_toolchains")
5load("@io_bazel_rules_go//go:def.bzl", "go_sdk")
6
7package(default_visibility = ["//visibility:public"])
8
9filegroup(
10    name = "libs",
11    srcs = glob(
12        ["pkg/{goos}_{goarch}/**/*.a"],
13        allow_empty = True,
14        exclude = ["pkg/{goos}_{goarch}/**/cmd/**"],
15    ),
16)
17
18filegroup(
19    name = "headers",
20    srcs = glob(["pkg/include/*.h"]),
21)
22
23filegroup(
24    name = "srcs",
25    srcs = glob(["src/**"]),
26)
27
28filegroup(
29    name = "tools",
30    srcs = glob([
31        "pkg/tool/**",
32        "bin/gofmt*",
33    ]),
34)
35
36go_sdk(
37    name = "go_sdk",
38    srcs = [":srcs"],
39    experiments = {experiments},
40    go = "bin/go{exe}",
41    goarch = "{goarch}",
42    goos = "{goos}",
43    headers = [":headers"],
44    libs = [":libs"],
45    package_list = ":package_list",
46    root_file = "ROOT",
47    tools = [":tools"],
48    version = "{version}",
49)
50
51go_tool_binary(
52    name = "builder",
53    srcs = ["@io_bazel_rules_go//go/tools/builders:builder_srcs"],
54    sdk = ":go_sdk",
55)
56
57non_go_reset_target(
58    name = "builder_reset",
59    dep = ":builder",
60)
61
62# TODO(jayconrod): Gazelle depends on this file directly. This dependency
63# should be broken, and this rule should be folded into go_sdk.
64package_list(
65    name = "package_list",
66    srcs = [":srcs"],
67    out = "packages.txt",
68    root_file = "ROOT",
69)
70
71declare_go_toolchains(
72    builder = ":builder_reset",
73    host_goos = "{goos}",
74    sdk = ":go_sdk",
75)
76
77filegroup(
78    name = "files",
79    srcs = glob([
80        "bin/go*",
81        "src/**",
82        "pkg/**",
83    ]),
84)
85
86exports_files(
87    glob([
88        "lib/time/zoneinfo.zip",
89        "misc/wasm/**",
90    ]),
91    visibility = ["//visibility:public"],
92)
93