github.com/bazelbuild/rules_go@v0.47.2-0.20240515105122-e7ddb9ea474e/go/def.bzl (about)

     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  
    17  All public Go rules, providers, and other definitions are imported and
    18  re-exported in this file. This allows the real location of definitions
    19  to change for easier maintenance.
    20  
    21  Definitions outside this file are private unless otherwise noted, and
    22  may change without notice.
    23  """
    24  
    25  load(
    26      "//extras:gomock.bzl",
    27      _gomock = "gomock",
    28  )
    29  load(
    30      "//go/private:context.bzl",
    31      _go_context = "go_context",
    32  )
    33  load(
    34      "//go/private:go_toolchain.bzl",
    35      _go_toolchain = "go_toolchain",
    36  )
    37  load(
    38      "//go/private:providers.bzl",
    39      _GoArchive = "GoArchive",
    40      _GoArchiveData = "GoArchiveData",
    41      _GoLibrary = "GoLibrary",
    42      _GoPath = "GoPath",
    43      _GoSDK = "GoSDK",
    44      _GoSource = "GoSource",
    45  )
    46  load(
    47      "//go/private/rules:cross.bzl",
    48      _go_cross_binary = "go_cross_binary",
    49  )
    50  load(
    51      "//go/private/rules:library.bzl",
    52      _go_tool_library = "go_tool_library",
    53  )
    54  load(
    55      "//go/private/rules:nogo.bzl",
    56      _nogo = "nogo_wrapper",
    57  )
    58  load(
    59      "//go/private/rules:sdk.bzl",
    60      _go_sdk = "go_sdk",
    61  )
    62  load(
    63      "//go/private/rules:source.bzl",
    64      _go_source = "go_source",
    65  )
    66  load(
    67      "//go/private/rules:wrappers.bzl",
    68      _go_binary_macro = "go_binary_macro",
    69      _go_library_macro = "go_library_macro",
    70      _go_test_macro = "go_test_macro",
    71  )
    72  load(
    73      "//go/private/tools:path.bzl",
    74      _go_path = "go_path",
    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.
   120  TOOLS_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.
   124  RULES_GO_VERSION = "0.47.1"
   125  
   126  go_context = _go_context
   127  gomock = _gomock
   128  go_sdk = _go_sdk
   129  go_tool_library = _go_tool_library
   130  go_toolchain = _go_toolchain
   131  nogo = _nogo
   132  
   133  # See go/providers.rst#GoLibrary for full documentation.
   134  GoLibrary = _GoLibrary
   135  
   136  # See go/providers.rst#GoSource for full documentation.
   137  GoSource = _GoSource
   138  
   139  # See go/providers.rst#GoPath for full documentation.
   140  GoPath = _GoPath
   141  
   142  # See go/providers.rst#GoArchive for full documentation.
   143  GoArchive = _GoArchive
   144  
   145  # See go/providers.rst#GoArchiveData for full documentation.
   146  GoArchiveData = _GoArchiveData
   147  
   148  # See go/providers.rst#GoSDK for full documentation.
   149  GoSDK = _GoSDK
   150  
   151  # See docs/go/core/rules.md#go_library for full documentation.
   152  go_library = _go_library_macro
   153  
   154  # See docs/go/core/rules.md#go_binary for full documentation.
   155  go_binary = _go_binary_macro
   156  
   157  # See docs/go/core/rules.md#go_test for full documentation.
   158  go_test = _go_test_macro
   159  
   160  # See docs/go/core/rules.md#go_test for full documentation.
   161  go_source = _go_source
   162  
   163  # See docs/go/core/rules.md#go_path for full documentation.
   164  go_path = _go_path
   165  
   166  # See docs/go/core/rules.md#go_cross_binary for full documentation.
   167  go_cross_binary = _go_cross_binary
   168  
   169  def 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  
   172  def 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  
   175  def go_rules_dependencies():
   176      _moved("go_rules_dependencies")
   177  
   178  def go_register_toolchains(**_kwargs):
   179      _moved("go_register_toolchains")
   180  
   181  def go_download_sdk(**_kwargs):
   182      _moved("go_download_sdk")
   183  
   184  def go_host_sdk(**_kwargs):
   185      _moved("go_host_sdk")
   186  
   187  def go_local_sdk(**_kwargs):
   188      _moved("go_local_sdk")
   189  
   190  def go_wrap_sdk(**_kwargs):
   191      _moved("go_wrap_sdK")
   192  
   193  def _moved(name):
   194      fail(name + " has moved. Please load from " +
   195           " @io_bazel_rules_go//go:deps.bzl instead of def.bzl.")