xref: /aosp_15_r20/external/bazelbuild-rules_go/go/private/BUILD.bazel (revision 9bb1b549b6a84214c53be0924760be030e66b93a)
1*9bb1b549SSpandan Dasload("@bazel_skylib//:bzl_library.bzl", "bzl_library")
2*9bb1b549SSpandan Dasload("@bazel_skylib//rules:common_settings.bzl", "bool_setting")
3*9bb1b549SSpandan Das
4*9bb1b549SSpandan Dasfilegroup(
5*9bb1b549SSpandan Das    name = "all_rules",
6*9bb1b549SSpandan Das    srcs = [
7*9bb1b549SSpandan Das        "//go/private/actions:all_rules",
8*9bb1b549SSpandan Das        "//go/private/rules:all_rules",
9*9bb1b549SSpandan Das        "//go/private/skylib/lib:all_rules",
10*9bb1b549SSpandan Das        "//go/private/tools:all_rules",
11*9bb1b549SSpandan Das    ] + glob(["**/*.bzl"]),
12*9bb1b549SSpandan Das    visibility = ["//visibility:public"],
13*9bb1b549SSpandan Das)
14*9bb1b549SSpandan Das
15*9bb1b549SSpandan Dasfilegroup(
16*9bb1b549SSpandan Das    name = "all_files",
17*9bb1b549SSpandan Das    testonly = True,
18*9bb1b549SSpandan Das    srcs = [
19*9bb1b549SSpandan Das        "//go/private/actions:all_files",
20*9bb1b549SSpandan Das        "//go/private/rules:all_files",
21*9bb1b549SSpandan Das        "//go/private/skylib/lib:all_files",
22*9bb1b549SSpandan Das        "//go/private/tools:all_files",
23*9bb1b549SSpandan Das    ] + glob(["**"]),
24*9bb1b549SSpandan Das    visibility = ["//visibility:public"],
25*9bb1b549SSpandan Das)
26*9bb1b549SSpandan Das
27*9bb1b549SSpandan Dasconfig_setting(
28*9bb1b549SSpandan Das    name = "stamp",
29*9bb1b549SSpandan Das    values = {"stamp": "true"},
30*9bb1b549SSpandan Das    visibility = ["//:__pkg__"],
31*9bb1b549SSpandan Das)
32*9bb1b549SSpandan Das
33*9bb1b549SSpandan Dasconfig_setting(
34*9bb1b549SSpandan Das    name = "is_strip_always",
35*9bb1b549SSpandan Das    values = {"strip": "always"},
36*9bb1b549SSpandan Das    visibility = ["//:__pkg__"],
37*9bb1b549SSpandan Das)
38*9bb1b549SSpandan Das
39*9bb1b549SSpandan Dasconfig_setting(
40*9bb1b549SSpandan Das    name = "is_strip_sometimes_fastbuild",
41*9bb1b549SSpandan Das    values = {
42*9bb1b549SSpandan Das        "strip": "sometimes",
43*9bb1b549SSpandan Das        "compilation_mode": "fastbuild",
44*9bb1b549SSpandan Das    },
45*9bb1b549SSpandan Das    visibility = ["//:__pkg__"],
46*9bb1b549SSpandan Das)
47*9bb1b549SSpandan Das
48*9bb1b549SSpandan Dasbzl_library(
49*9bb1b549SSpandan Das    name = "context",
50*9bb1b549SSpandan Das    srcs = ["context.bzl"],
51*9bb1b549SSpandan Das    visibility = [
52*9bb1b549SSpandan Das        "//docs:__subpackages__",
53*9bb1b549SSpandan Das        "//extras:__pkg__",  # Manually added
54*9bb1b549SSpandan Das        "//go:__subpackages__",
55*9bb1b549SSpandan Das    ],
56*9bb1b549SSpandan Das    deps = [
57*9bb1b549SSpandan Das        ":common",
58*9bb1b549SSpandan Das        ":mode",
59*9bb1b549SSpandan Das        ":providers",
60*9bb1b549SSpandan Das        "//go/platform:apple",
61*9bb1b549SSpandan Das        "//go/private:go_toolchain",
62*9bb1b549SSpandan Das        "//go/private/rules:transition",
63*9bb1b549SSpandan Das        "@bazel_skylib//lib:paths",
64*9bb1b549SSpandan Das        "@bazel_skylib//rules:common_settings",
65*9bb1b549SSpandan Das        "@bazel_tools//tools/build_defs/cc:action_names.bzl",
66*9bb1b549SSpandan Das        "@bazel_tools//tools/cpp:toolchain_utils.bzl",
67*9bb1b549SSpandan Das    ],
68*9bb1b549SSpandan Das)
69*9bb1b549SSpandan Das
70*9bb1b549SSpandan Dasbzl_library(
71*9bb1b549SSpandan Das    name = "go_toolchain",
72*9bb1b549SSpandan Das    srcs = ["go_toolchain.bzl"],
73*9bb1b549SSpandan Das    visibility = [
74*9bb1b549SSpandan Das        "//extras:__pkg__",  # Manually added
75*9bb1b549SSpandan Das        "//go:__subpackages__",
76*9bb1b549SSpandan Das    ],
77*9bb1b549SSpandan Das    deps = [
78*9bb1b549SSpandan Das        "//go/private:platforms",
79*9bb1b549SSpandan Das        "//go/private:providers",
80*9bb1b549SSpandan Das        "//go/private/actions:archive",
81*9bb1b549SSpandan Das        "//go/private/actions:binary",
82*9bb1b549SSpandan Das        "//go/private/actions:link",
83*9bb1b549SSpandan Das        "//go/private/actions:stdlib",
84*9bb1b549SSpandan Das        "@bazel_skylib//lib:selects",
85*9bb1b549SSpandan Das    ],
86*9bb1b549SSpandan Das)
87*9bb1b549SSpandan Das
88*9bb1b549SSpandan Dasbzl_library(
89*9bb1b549SSpandan Das    name = "repositories",
90*9bb1b549SSpandan Das    srcs = ["repositories.bzl"],
91*9bb1b549SSpandan Das    visibility = ["//go:__subpackages__"],
92*9bb1b549SSpandan Das    # Don't list dependency on @bazel_tools//tools/build_defs/repo:http.bzl
93*9bb1b549SSpandan Das    deps = [
94*9bb1b549SSpandan Das        ":common",
95*9bb1b549SSpandan Das        ":nogo",
96*9bb1b549SSpandan Das        "//go/private/skylib/lib:versions",
97*9bb1b549SSpandan Das        "//proto:gogo",
98*9bb1b549SSpandan Das    ],  # keep
99*9bb1b549SSpandan Das)
100*9bb1b549SSpandan Das
101*9bb1b549SSpandan Dasbzl_library(
102*9bb1b549SSpandan Das    name = "sdk",
103*9bb1b549SSpandan Das    srcs = ["sdk.bzl"],
104*9bb1b549SSpandan Das    visibility = ["//go:__subpackages__"],
105*9bb1b549SSpandan Das    deps = [
106*9bb1b549SSpandan Das        "//go/private:common",
107*9bb1b549SSpandan Das        "//go/private:nogo",
108*9bb1b549SSpandan Das        "//go/private:platforms",
109*9bb1b549SSpandan Das        "//go/private/skylib/lib:versions",
110*9bb1b549SSpandan Das    ],
111*9bb1b549SSpandan Das)
112*9bb1b549SSpandan Das
113*9bb1b549SSpandan Dasbzl_library(
114*9bb1b549SSpandan Das    name = "common",
115*9bb1b549SSpandan Das    srcs = ["common.bzl"],
116*9bb1b549SSpandan Das    visibility = ["//go:__subpackages__"],
117*9bb1b549SSpandan Das)
118*9bb1b549SSpandan Das
119*9bb1b549SSpandan Dasbzl_library(
120*9bb1b549SSpandan Das    name = "mode",
121*9bb1b549SSpandan Das    srcs = ["mode.bzl"],
122*9bb1b549SSpandan Das    visibility = ["//go:__subpackages__"],
123*9bb1b549SSpandan Das)
124*9bb1b549SSpandan Das
125*9bb1b549SSpandan Dasbzl_library(
126*9bb1b549SSpandan Das    name = "nogo",
127*9bb1b549SSpandan Das    srcs = ["nogo.bzl"],
128*9bb1b549SSpandan Das    visibility = ["//go:__subpackages__"],
129*9bb1b549SSpandan Das)
130*9bb1b549SSpandan Das
131*9bb1b549SSpandan Dasbzl_library(
132*9bb1b549SSpandan Das    name = "platforms",
133*9bb1b549SSpandan Das    srcs = ["platforms.bzl"],
134*9bb1b549SSpandan Das    visibility = ["//go:__subpackages__"],
135*9bb1b549SSpandan Das)
136*9bb1b549SSpandan Das
137*9bb1b549SSpandan Dasbzl_library(
138*9bb1b549SSpandan Das    name = "providers",
139*9bb1b549SSpandan Das    srcs = ["providers.bzl"],
140*9bb1b549SSpandan Das    visibility = [
141*9bb1b549SSpandan Das        "//extras:__pkg__",
142*9bb1b549SSpandan Das        "//go:__subpackages__",
143*9bb1b549SSpandan Das        "//proto:__pkg__",  # keep
144*9bb1b549SSpandan Das    ],
145*9bb1b549SSpandan Das)
146*9bb1b549SSpandan Das
147*9bb1b549SSpandan Dasbzl_library(
148*9bb1b549SSpandan Das    name = "rpath",
149*9bb1b549SSpandan Das    srcs = ["rpath.bzl"],
150*9bb1b549SSpandan Das    visibility = [
151*9bb1b549SSpandan Das        "//docs:__subpackages__",
152*9bb1b549SSpandan Das        "//go:__subpackages__",
153*9bb1b549SSpandan Das    ],
154*9bb1b549SSpandan Das)
155*9bb1b549SSpandan Das
156*9bb1b549SSpandan Das# Usually false. This is only true when we are building nogo itself in which
157*9bb1b549SSpandan Das# because that rule uses an incoming transition to switch this to true.
158*9bb1b549SSpandan Dasbool_setting(
159*9bb1b549SSpandan Das    name = "bootstrap_nogo",
160*9bb1b549SSpandan Das    build_setting_default = False,
161*9bb1b549SSpandan Das    visibility = ["//visibility:public"],
162*9bb1b549SSpandan Das)
163*9bb1b549SSpandan Das
164*9bb1b549SSpandan Das# Usually true. The entire toolchain gets nogo to use in builds via the
165*9bb1b549SSpandan Das# go_context_data rule, which has an incoming transition that flips this flag
166*9bb1b549SSpandan Das# to true. This will only be false in host mode (which disallows any
167*9bb1b549SSpandan Das# transitions) or accessing nogo without going through go_context_data (which
168*9bb1b549SSpandan Das# does not happen in rules_go and does not seem to be useful).
169*9bb1b549SSpandan Dasbool_setting(
170*9bb1b549SSpandan Das    name = "request_nogo",
171*9bb1b549SSpandan Das    build_setting_default = False,
172*9bb1b549SSpandan Das    visibility = ["//visibility:public"],
173*9bb1b549SSpandan Das)
174*9bb1b549SSpandan Das
175*9bb1b549SSpandan Das# Controls whether nogo alias will reference a noop or the configured nogo.
176*9bb1b549SSpandan Das# This *MUST* default to the noop to allow for tools to be built in the
177*9bb1b549SSpandan Das# deprecated "host" mode. Host mode cannot perform configuration transitions
178*9bb1b549SSpandan Das# so it cannot avoid circular dependencies. Therefore the default must work
179*9bb1b549SSpandan Das# without performing any transitions. The tradeoff is that nogo analysis is not
180*9bb1b549SSpandan Das# performed for any target built in host mode - this is not as bad as it seems
181*9bb1b549SSpandan Das# as most tools can (and should) use "exec" configuration instead of host which
182*9bb1b549SSpandan Das# does support transitions.
183*9bb1b549SSpandan Dasconfig_setting(
184*9bb1b549SSpandan Das    name = "nogo_active",
185*9bb1b549SSpandan Das    flag_values = {
186*9bb1b549SSpandan Das        ":bootstrap_nogo": "False",
187*9bb1b549SSpandan Das        ":request_nogo": "True",
188*9bb1b549SSpandan Das    },
189*9bb1b549SSpandan Das    visibility = ["//visibility:public"],
190*9bb1b549SSpandan Das)
191*9bb1b549SSpandan Das
192*9bb1b549SSpandan Dasbool_setting(
193*9bb1b549SSpandan Das    name = "always_true",
194*9bb1b549SSpandan Das    build_setting_default = True,
195*9bb1b549SSpandan Das    visibility = ["//visibility:public"],
196*9bb1b549SSpandan Das)
197*9bb1b549SSpandan Das
198*9bb1b549SSpandan Das# Only used by //:go_config.
199*9bb1b549SSpandan Dasconfig_setting(
200*9bb1b549SSpandan Das    name = "is_compilation_mode_dbg",
201*9bb1b549SSpandan Das    values = {
202*9bb1b549SSpandan Das        "compilation_mode": "dbg",
203*9bb1b549SSpandan Das    },
204*9bb1b549SSpandan Das    visibility = ["//:__pkg__"],
205*9bb1b549SSpandan Das)
206