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