1# Copyright 2014 The Bazel Authors. All rights reserved.
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15"""Public definitions for Go rules.
16
17All public Go rules, providers, and other definitions are imported and
18re-exported in this file. This allows the real location of definitions
19to change for easier maintenance.
20
21Definitions outside this file are private unless otherwise noted, and
22may change without notice.
23"""
24
25load(
26 "//go/private:context.bzl",
27 _go_context = "go_context",
28)
29load(
30 "//go/private:providers.bzl",
31 _GoArchive = "GoArchive",
32 _GoArchiveData = "GoArchiveData",
33 _GoLibrary = "GoLibrary",
34 _GoPath = "GoPath",
35 _GoSDK = "GoSDK",
36 _GoSource = "GoSource",
37)
38load(
39 "//go/private/rules:sdk.bzl",
40 _go_sdk = "go_sdk",
41)
42load(
43 "//go/private:go_toolchain.bzl",
44 _go_toolchain = "go_toolchain",
45)
46load(
47 "//go/private/rules:wrappers.bzl",
48 _go_binary_macro = "go_binary_macro",
49 _go_library_macro = "go_library_macro",
50 _go_test_macro = "go_test_macro",
51)
52load(
53 "//go/private/rules:source.bzl",
54 _go_source = "go_source",
55)
56load(
57 "//extras:gomock.bzl",
58 _gomock = "gomock",
59)
60load(
61 "//go/private/tools:path.bzl",
62 _go_path = "go_path",
63)
64load(
65 "//go/private/rules:library.bzl",
66 _go_tool_library = "go_tool_library",
67)
68load(
69 "//go/private/rules:nogo.bzl",
70 _nogo = "nogo_wrapper",
71)
72load(
73 "//go/private/rules:cross.bzl",
74 _go_cross_binary = "go_cross_binary",
75)
76
77_TOOLS_NOGO = [
78 "@org_golang_x_tools//go/analysis/passes/asmdecl:go_default_library",
79 "@org_golang_x_tools//go/analysis/passes/assign:go_default_library",
80 "@org_golang_x_tools//go/analysis/passes/atomic:go_default_library",
81 "@org_golang_x_tools//go/analysis/passes/atomicalign:go_default_library",
82 "@org_golang_x_tools//go/analysis/passes/bools:go_default_library",
83 "@org_golang_x_tools//go/analysis/passes/buildssa:go_default_library",
84 "@org_golang_x_tools//go/analysis/passes/buildtag:go_default_library",
85 # TODO(#2396): pass raw cgo sources to cgocall and re-enable.
86 # "@org_golang_x_tools//go/analysis/passes/cgocall:go_default_library",
87 "@org_golang_x_tools//go/analysis/passes/composite:go_default_library",
88 "@org_golang_x_tools//go/analysis/passes/copylock:go_default_library",
89 "@org_golang_x_tools//go/analysis/passes/ctrlflow:go_default_library",
90 "@org_golang_x_tools//go/analysis/passes/deepequalerrors:go_default_library",
91 "@org_golang_x_tools//go/analysis/passes/errorsas:go_default_library",
92 "@org_golang_x_tools//go/analysis/passes/findcall:go_default_library",
93 "@org_golang_x_tools//go/analysis/passes/httpresponse:go_default_library",
94 "@org_golang_x_tools//go/analysis/passes/ifaceassert:go_default_library",
95 "@org_golang_x_tools//go/analysis/passes/inspect:go_default_library",
96 "@org_golang_x_tools//go/analysis/passes/loopclosure:go_default_library",
97 "@org_golang_x_tools//go/analysis/passes/lostcancel:go_default_library",
98 "@org_golang_x_tools//go/analysis/passes/nilfunc:go_default_library",
99 "@org_golang_x_tools//go/analysis/passes/nilness:go_default_library",
100 "@org_golang_x_tools//go/analysis/passes/pkgfact:go_default_library",
101 "@org_golang_x_tools//go/analysis/passes/printf:go_default_library",
102 "@org_golang_x_tools//go/analysis/passes/shadow:go_default_library",
103 "@org_golang_x_tools//go/analysis/passes/shift:go_default_library",
104 "@org_golang_x_tools//go/analysis/passes/sortslice:go_default_library",
105 "@org_golang_x_tools//go/analysis/passes/stdmethods:go_default_library",
106 "@org_golang_x_tools//go/analysis/passes/stringintconv:go_default_library",
107 "@org_golang_x_tools//go/analysis/passes/structtag:go_default_library",
108 "@org_golang_x_tools//go/analysis/passes/testinggoroutine:go_default_library",
109 "@org_golang_x_tools//go/analysis/passes/tests:go_default_library",
110 "@org_golang_x_tools//go/analysis/passes/unmarshal:go_default_library",
111 "@org_golang_x_tools//go/analysis/passes/unreachable:go_default_library",
112 "@org_golang_x_tools//go/analysis/passes/unsafeptr:go_default_library",
113 "@org_golang_x_tools//go/analysis/passes/unusedresult:go_default_library",
114]
115
116# TOOLS_NOGO is a list of all analysis passes in
117# golang.org/x/tools/go/analysis/passes.
118# This is not backward compatible, so use caution when depending on this --
119# new analyses may discover issues in existing builds.
120TOOLS_NOGO = [str(Label(l)) for l in _TOOLS_NOGO]
121
122# Current version or next version to be tagged. Gazelle and other tools may
123# check this to determine compatibility.
124RULES_GO_VERSION = "0.46.0"
125
126go_context = _go_context
127gomock = _gomock
128go_sdk = _go_sdk
129go_tool_library = _go_tool_library
130go_toolchain = _go_toolchain
131nogo = _nogo
132
133# See go/providers.rst#GoLibrary for full documentation.
134GoLibrary = _GoLibrary
135
136# See go/providers.rst#GoSource for full documentation.
137GoSource = _GoSource
138
139# See go/providers.rst#GoPath for full documentation.
140GoPath = _GoPath
141
142# See go/providers.rst#GoArchive for full documentation.
143GoArchive = _GoArchive
144
145# See go/providers.rst#GoArchiveData for full documentation.
146GoArchiveData = _GoArchiveData
147
148# See go/providers.rst#GoSDK for full documentation.
149GoSDK = _GoSDK
150
151# See docs/go/core/rules.md#go_library for full documentation.
152go_library = _go_library_macro
153
154# See docs/go/core/rules.md#go_binary for full documentation.
155go_binary = _go_binary_macro
156
157# See docs/go/core/rules.md#go_test for full documentation.
158go_test = _go_test_macro
159
160# See docs/go/core/rules.md#go_test for full documentation.
161go_source = _go_source
162
163# See docs/go/core/rules.md#go_path for full documentation.
164go_path = _go_path
165
166# See docs/go/core/rules.md#go_cross_binary for full documentation.
167go_cross_binary = _go_cross_binary
168
169def go_vet_test(*_args, **_kwargs):
170 fail("The go_vet_test rule has been removed. Please migrate to nogo instead, which supports vet tests.")
171
172def go_rule(**_kwargs):
173 fail("The go_rule function has been removed. Use rule directly instead. See https://github.com/bazelbuild/rules_go/blob/master/go/toolchains.rst#writing-new-go-rules")
174
175def go_rules_dependencies():
176 _moved("go_rules_dependencies")
177
178def go_register_toolchains(**_kwargs):
179 _moved("go_register_toolchains")
180
181def go_download_sdk(**_kwargs):
182 _moved("go_download_sdk")
183
184def go_host_sdk(**_kwargs):
185 _moved("go_host_sdk")
186
187def go_local_sdk(**_kwargs):
188 _moved("go_local_sdk")
189
190def go_wrap_sdk(**_kwargs):
191 _moved("go_wrap_sdK")
192
193def _moved(name):
194 fail(name + " has moved. Please load from " +
195 " @io_bazel_rules_go//go:deps.bzl instead of def.bzl.")
View as plain text