mirror of
https://github.com/netbirdio/gvisor.git
synced 2026-05-22 17:12:49 -07:00
Refactor shared starlark files.
PiperOrigin-RevId: 337581114
This commit is contained in:
committed by
gVisor bot
parent
4ddb58f6ef
commit
9a3d8973c4
@@ -0,0 +1,43 @@
|
||||
"""C++ rules."""
|
||||
|
||||
load("@bazel_tools//tools/cpp:cc_flags_supplier.bzl", _cc_flags_supplier = "cc_flags_supplier")
|
||||
load("@rules_cc//cc:defs.bzl", _cc_binary = "cc_binary", _cc_library = "cc_library", _cc_proto_library = "cc_proto_library", _cc_test = "cc_test")
|
||||
load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", _cc_grpc_library = "cc_grpc_library")
|
||||
|
||||
cc_library = _cc_library
|
||||
cc_flags_supplier = _cc_flags_supplier
|
||||
cc_proto_library = _cc_proto_library
|
||||
cc_test = _cc_test
|
||||
cc_toolchain = "@bazel_tools//tools/cpp:current_cc_toolchain"
|
||||
gtest = "@com_google_googletest//:gtest"
|
||||
gbenchmark = "@com_google_benchmark//:benchmark"
|
||||
grpcpp = "@com_github_grpc_grpc//:grpc++"
|
||||
vdso_linker_option = "-fuse-ld=gold "
|
||||
|
||||
def cc_grpc_library(name, **kwargs):
|
||||
_cc_grpc_library(name = name, grpc_only = True, **kwargs)
|
||||
|
||||
def cc_binary(name, static = False, **kwargs):
|
||||
"""Run cc_binary.
|
||||
|
||||
Args:
|
||||
name: name of the target.
|
||||
static: make a static binary if True
|
||||
**kwargs: the rest of the args.
|
||||
"""
|
||||
if static:
|
||||
# How to statically link a c++ program that uses threads, like for gRPC:
|
||||
# https://gcc.gnu.org/legacy-ml/gcc-help/2010-05/msg00029.html
|
||||
if "linkopts" not in kwargs:
|
||||
kwargs["linkopts"] = []
|
||||
kwargs["linkopts"] += [
|
||||
"-static",
|
||||
"-lstdc++",
|
||||
"-Wl,--whole-archive",
|
||||
"-lpthread",
|
||||
"-Wl,--no-whole-archive",
|
||||
]
|
||||
_cc_binary(
|
||||
name = name,
|
||||
**kwargs
|
||||
)
|
||||
+1
-183
@@ -1,35 +1,13 @@
|
||||
"""Bazel implementations of standard rules."""
|
||||
"""Meta and miscellaneous rules."""
|
||||
|
||||
load("@bazel_gazelle//:def.bzl", _gazelle = "gazelle")
|
||||
load("@bazel_skylib//rules:build_test.bzl", _build_test = "build_test")
|
||||
load("@bazel_skylib//:bzl_library.bzl", _bzl_library = "bzl_library")
|
||||
load("@bazel_tools//tools/cpp:cc_flags_supplier.bzl", _cc_flags_supplier = "cc_flags_supplier")
|
||||
load("@io_bazel_rules_go//go:def.bzl", "GoLibrary", _go_binary = "go_binary", _go_context = "go_context", _go_embed_data = "go_embed_data", _go_library = "go_library", _go_path = "go_path", _go_test = "go_test")
|
||||
load("@io_bazel_rules_go//proto:def.bzl", _go_grpc_library = "go_grpc_library", _go_proto_library = "go_proto_library")
|
||||
load("@rules_cc//cc:defs.bzl", _cc_binary = "cc_binary", _cc_library = "cc_library", _cc_proto_library = "cc_proto_library", _cc_test = "cc_test")
|
||||
load("@rules_pkg//:pkg.bzl", _pkg_deb = "pkg_deb", _pkg_tar = "pkg_tar")
|
||||
load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", _cc_grpc_library = "cc_grpc_library")
|
||||
|
||||
build_test = _build_test
|
||||
bzl_library = _bzl_library
|
||||
cc_library = _cc_library
|
||||
cc_flags_supplier = _cc_flags_supplier
|
||||
cc_proto_library = _cc_proto_library
|
||||
cc_test = _cc_test
|
||||
cc_toolchain = "@bazel_tools//tools/cpp:current_cc_toolchain"
|
||||
gazelle = _gazelle
|
||||
go_embed_data = _go_embed_data
|
||||
go_path = _go_path
|
||||
gtest = "@com_google_googletest//:gtest"
|
||||
grpcpp = "@com_github_grpc_grpc//:grpc++"
|
||||
gbenchmark = "@com_google_benchmark//:benchmark"
|
||||
loopback = "//tools/bazeldefs:loopback"
|
||||
pkg_deb = _pkg_deb
|
||||
pkg_tar = _pkg_tar
|
||||
py_binary = native.py_binary
|
||||
rbe_platform = native.platform
|
||||
rbe_toolchain = native.toolchain
|
||||
vdso_linker_option = "-fuse-ld=gold "
|
||||
|
||||
def short_path(path):
|
||||
return path
|
||||
@@ -40,160 +18,6 @@ def proto_library(name, has_services = None, **kwargs):
|
||||
**kwargs
|
||||
)
|
||||
|
||||
def cc_grpc_library(name, **kwargs):
|
||||
_cc_grpc_library(name = name, grpc_only = True, **kwargs)
|
||||
|
||||
def _go_proto_or_grpc_library(go_library_func, name, **kwargs):
|
||||
deps = [
|
||||
dep.replace("_proto", "_go_proto")
|
||||
for dep in (kwargs.pop("deps", []) or [])
|
||||
]
|
||||
go_library_func(
|
||||
name = name + "_go_proto",
|
||||
importpath = "gvisor.dev/gvisor/" + native.package_name() + "/" + name + "_go_proto",
|
||||
proto = ":" + name + "_proto",
|
||||
deps = deps,
|
||||
**kwargs
|
||||
)
|
||||
|
||||
def go_proto_library(name, **kwargs):
|
||||
_go_proto_or_grpc_library(_go_proto_library, name, **kwargs)
|
||||
|
||||
def go_grpc_and_proto_libraries(name, **kwargs):
|
||||
_go_proto_or_grpc_library(_go_grpc_library, name, **kwargs)
|
||||
|
||||
def cc_binary(name, static = False, **kwargs):
|
||||
"""Run cc_binary.
|
||||
|
||||
Args:
|
||||
name: name of the target.
|
||||
static: make a static binary if True
|
||||
**kwargs: the rest of the args.
|
||||
"""
|
||||
if static:
|
||||
# How to statically link a c++ program that uses threads, like for gRPC:
|
||||
# https://gcc.gnu.org/legacy-ml/gcc-help/2010-05/msg00029.html
|
||||
if "linkopts" not in kwargs:
|
||||
kwargs["linkopts"] = []
|
||||
kwargs["linkopts"] += [
|
||||
"-static",
|
||||
"-lstdc++",
|
||||
"-Wl,--whole-archive",
|
||||
"-lpthread",
|
||||
"-Wl,--no-whole-archive",
|
||||
]
|
||||
_cc_binary(
|
||||
name = name,
|
||||
**kwargs
|
||||
)
|
||||
|
||||
def go_binary(name, static = False, pure = False, x_defs = None, **kwargs):
|
||||
"""Build a go binary.
|
||||
|
||||
Args:
|
||||
name: name of the target.
|
||||
static: build a static binary.
|
||||
pure: build without cgo.
|
||||
x_defs: additional definitions.
|
||||
**kwargs: rest of the arguments are passed to _go_binary.
|
||||
"""
|
||||
if static:
|
||||
kwargs["static"] = "on"
|
||||
if pure:
|
||||
kwargs["pure"] = "on"
|
||||
_go_binary(
|
||||
name = name,
|
||||
x_defs = x_defs,
|
||||
**kwargs
|
||||
)
|
||||
|
||||
def go_importpath(target):
|
||||
"""Returns the importpath for the target."""
|
||||
return target[GoLibrary].importpath
|
||||
|
||||
def go_library(name, **kwargs):
|
||||
_go_library(
|
||||
name = name,
|
||||
importpath = "gvisor.dev/gvisor/" + native.package_name(),
|
||||
**kwargs
|
||||
)
|
||||
|
||||
def go_test(name, pure = False, library = None, **kwargs):
|
||||
"""Build a go test.
|
||||
|
||||
Args:
|
||||
name: name of the output binary.
|
||||
pure: should it be built without cgo.
|
||||
library: the library to embed.
|
||||
**kwargs: rest of the arguments to pass to _go_test.
|
||||
"""
|
||||
if pure:
|
||||
kwargs["pure"] = "on"
|
||||
if library:
|
||||
kwargs["embed"] = [library]
|
||||
_go_test(
|
||||
name = name,
|
||||
**kwargs
|
||||
)
|
||||
|
||||
def go_rule(rule, implementation, **kwargs):
|
||||
"""Wraps a rule definition with Go attributes.
|
||||
|
||||
Args:
|
||||
rule: rule function (typically rule or aspect).
|
||||
implementation: implementation function.
|
||||
**kwargs: other arguments to pass to rule.
|
||||
|
||||
Returns:
|
||||
The result of invoking the rule.
|
||||
"""
|
||||
attrs = kwargs.pop("attrs", dict())
|
||||
attrs["_go_context_data"] = attr.label(default = "@io_bazel_rules_go//:go_context_data")
|
||||
attrs["_stdlib"] = attr.label(default = "@io_bazel_rules_go//:stdlib")
|
||||
toolchains = kwargs.get("toolchains", []) + ["@io_bazel_rules_go//go:toolchain"]
|
||||
return rule(implementation, attrs = attrs, toolchains = toolchains, **kwargs)
|
||||
|
||||
def go_test_library(target):
|
||||
if hasattr(target.attr, "embed") and len(target.attr.embed) > 0:
|
||||
return target.attr.embed[0]
|
||||
return None
|
||||
|
||||
def go_context(ctx, goos = None, goarch = None, std = False):
|
||||
"""Extracts a standard Go context struct.
|
||||
|
||||
Args:
|
||||
ctx: the starlark context (required).
|
||||
goos: the GOOS value.
|
||||
goarch: the GOARCH value.
|
||||
std: ignored.
|
||||
|
||||
Returns:
|
||||
A context Go struct with pointers to Go toolchain components.
|
||||
"""
|
||||
|
||||
# We don't change anything for the standard library analysis. All Go files
|
||||
# are available in all instances. Note that this includes the standard
|
||||
# library sources, which are analyzed by nogo.
|
||||
go_ctx = _go_context(ctx)
|
||||
if goos == None:
|
||||
goos = go_ctx.sdk.goos
|
||||
elif goos != go_ctx.sdk.goos:
|
||||
fail("Internal GOOS (%s) doesn't match GoSdk GOOS (%s)." % (goos, go_ctx.sdk.goos))
|
||||
if goarch == None:
|
||||
goarch = go_ctx.sdk.goarch
|
||||
elif goarch != go_ctx.sdk.goarch:
|
||||
fail("Internal GOARCH (%s) doesn't match GoSdk GOARCH (%s)." % (goarch, go_ctx.sdk.goarch))
|
||||
return struct(
|
||||
go = go_ctx.go,
|
||||
env = go_ctx.env,
|
||||
nogo_args = [],
|
||||
stdlib_srcs = go_ctx.sdk.srcs,
|
||||
runfiles = depset([go_ctx.go] + go_ctx.sdk.srcs + go_ctx.sdk.tools + go_ctx.stdlib.libs),
|
||||
goos = go_ctx.sdk.goos,
|
||||
goarch = go_ctx.sdk.goarch,
|
||||
tags = go_ctx.tags,
|
||||
)
|
||||
|
||||
def select_arch(amd64 = "amd64", arm64 = "arm64", default = None, **kwargs):
|
||||
values = {
|
||||
"@bazel_tools//src/conditions:linux_x86_64": amd64,
|
||||
@@ -206,12 +30,6 @@ def select_arch(amd64 = "amd64", arm64 = "arm64", default = None, **kwargs):
|
||||
def select_system(linux = ["__linux__"], **kwargs):
|
||||
return linux # Only Linux supported.
|
||||
|
||||
def select_goarch():
|
||||
return select_arch(arm64 = "arm64", amd64 = "amd64")
|
||||
|
||||
def select_goos():
|
||||
return select_system(linux = "linux")
|
||||
|
||||
def default_installer():
|
||||
return None
|
||||
|
||||
|
||||
@@ -0,0 +1,142 @@
|
||||
"""Go rules."""
|
||||
|
||||
load("@bazel_gazelle//:def.bzl", _gazelle = "gazelle")
|
||||
load("@io_bazel_rules_go//go:def.bzl", "GoLibrary", _go_binary = "go_binary", _go_context = "go_context", _go_embed_data = "go_embed_data", _go_library = "go_library", _go_path = "go_path", _go_test = "go_test")
|
||||
load("@io_bazel_rules_go//proto:def.bzl", _go_grpc_library = "go_grpc_library", _go_proto_library = "go_proto_library")
|
||||
load("//tools/bazeldefs:defs.bzl", "select_arch", "select_system")
|
||||
|
||||
gazelle = _gazelle
|
||||
go_embed_data = _go_embed_data
|
||||
go_path = _go_path
|
||||
|
||||
def _go_proto_or_grpc_library(go_library_func, name, **kwargs):
|
||||
deps = [
|
||||
dep.replace("_proto", "_go_proto")
|
||||
for dep in (kwargs.pop("deps", []) or [])
|
||||
]
|
||||
go_library_func(
|
||||
name = name + "_go_proto",
|
||||
importpath = "gvisor.dev/gvisor/" + native.package_name() + "/" + name + "_go_proto",
|
||||
proto = ":" + name + "_proto",
|
||||
deps = deps,
|
||||
**kwargs
|
||||
)
|
||||
|
||||
def go_proto_library(name, **kwargs):
|
||||
_go_proto_or_grpc_library(_go_proto_library, name, **kwargs)
|
||||
|
||||
def go_grpc_and_proto_libraries(name, **kwargs):
|
||||
_go_proto_or_grpc_library(_go_grpc_library, name, **kwargs)
|
||||
|
||||
def go_binary(name, static = False, pure = False, x_defs = None, **kwargs):
|
||||
"""Build a go binary.
|
||||
|
||||
Args:
|
||||
name: name of the target.
|
||||
static: build a static binary.
|
||||
pure: build without cgo.
|
||||
x_defs: additional definitions.
|
||||
**kwargs: rest of the arguments are passed to _go_binary.
|
||||
"""
|
||||
if static:
|
||||
kwargs["static"] = "on"
|
||||
if pure:
|
||||
kwargs["pure"] = "on"
|
||||
_go_binary(
|
||||
name = name,
|
||||
x_defs = x_defs,
|
||||
**kwargs
|
||||
)
|
||||
|
||||
def go_importpath(target):
|
||||
"""Returns the importpath for the target."""
|
||||
return target[GoLibrary].importpath
|
||||
|
||||
def go_library(name, **kwargs):
|
||||
_go_library(
|
||||
name = name,
|
||||
importpath = "gvisor.dev/gvisor/" + native.package_name(),
|
||||
**kwargs
|
||||
)
|
||||
|
||||
def go_test(name, pure = False, library = None, **kwargs):
|
||||
"""Build a go test.
|
||||
|
||||
Args:
|
||||
name: name of the output binary.
|
||||
pure: should it be built without cgo.
|
||||
library: the library to embed.
|
||||
**kwargs: rest of the arguments to pass to _go_test.
|
||||
"""
|
||||
if pure:
|
||||
kwargs["pure"] = "on"
|
||||
if library:
|
||||
kwargs["embed"] = [library]
|
||||
_go_test(
|
||||
name = name,
|
||||
**kwargs
|
||||
)
|
||||
|
||||
def go_rule(rule, implementation, **kwargs):
|
||||
"""Wraps a rule definition with Go attributes.
|
||||
|
||||
Args:
|
||||
rule: rule function (typically rule or aspect).
|
||||
implementation: implementation function.
|
||||
**kwargs: other arguments to pass to rule.
|
||||
|
||||
Returns:
|
||||
The result of invoking the rule.
|
||||
"""
|
||||
attrs = kwargs.pop("attrs", dict())
|
||||
attrs["_go_context_data"] = attr.label(default = "@io_bazel_rules_go//:go_context_data")
|
||||
attrs["_stdlib"] = attr.label(default = "@io_bazel_rules_go//:stdlib")
|
||||
toolchains = kwargs.get("toolchains", []) + ["@io_bazel_rules_go//go:toolchain"]
|
||||
return rule(implementation, attrs = attrs, toolchains = toolchains, **kwargs)
|
||||
|
||||
def go_test_library(target):
|
||||
if hasattr(target.attr, "embed") and len(target.attr.embed) > 0:
|
||||
return target.attr.embed[0]
|
||||
return None
|
||||
|
||||
def go_context(ctx, goos = None, goarch = None, std = False):
|
||||
"""Extracts a standard Go context struct.
|
||||
|
||||
Args:
|
||||
ctx: the starlark context (required).
|
||||
goos: the GOOS value.
|
||||
goarch: the GOARCH value.
|
||||
std: ignored.
|
||||
|
||||
Returns:
|
||||
A context Go struct with pointers to Go toolchain components.
|
||||
"""
|
||||
|
||||
# We don't change anything for the standard library analysis. All Go files
|
||||
# are available in all instances. Note that this includes the standard
|
||||
# library sources, which are analyzed by nogo.
|
||||
go_ctx = _go_context(ctx)
|
||||
if goos == None:
|
||||
goos = go_ctx.sdk.goos
|
||||
elif goos != go_ctx.sdk.goos:
|
||||
fail("Internal GOOS (%s) doesn't match GoSdk GOOS (%s)." % (goos, go_ctx.sdk.goos))
|
||||
if goarch == None:
|
||||
goarch = go_ctx.sdk.goarch
|
||||
elif goarch != go_ctx.sdk.goarch:
|
||||
fail("Internal GOARCH (%s) doesn't match GoSdk GOARCH (%s)." % (goarch, go_ctx.sdk.goarch))
|
||||
return struct(
|
||||
go = go_ctx.go,
|
||||
env = go_ctx.env,
|
||||
nogo_args = [],
|
||||
stdlib_srcs = go_ctx.sdk.srcs,
|
||||
runfiles = depset([go_ctx.go] + go_ctx.sdk.srcs + go_ctx.sdk.tools + go_ctx.stdlib.libs),
|
||||
goos = go_ctx.sdk.goos,
|
||||
goarch = go_ctx.sdk.goarch,
|
||||
tags = go_ctx.tags,
|
||||
)
|
||||
|
||||
def select_goarch():
|
||||
return select_arch(arm64 = "arm64", amd64 = "amd64")
|
||||
|
||||
def select_goos():
|
||||
return select_system(linux = "linux")
|
||||
@@ -0,0 +1,6 @@
|
||||
"""Packaging rules."""
|
||||
|
||||
load("@rules_pkg//:pkg.bzl", _pkg_deb = "pkg_deb", _pkg_tar = "pkg_tar")
|
||||
|
||||
pkg_deb = _pkg_deb
|
||||
pkg_tar = _pkg_tar
|
||||
+26
-18
@@ -7,41 +7,49 @@ change for Google-internal and bazel-compatible rules.
|
||||
|
||||
load("//tools/go_stateify:defs.bzl", "go_stateify")
|
||||
load("//tools/go_marshal:defs.bzl", "go_marshal", "marshal_deps", "marshal_test_deps")
|
||||
load("//tools/bazeldefs:defs.bzl", _build_test = "build_test", _bzl_library = "bzl_library", _cc_binary = "cc_binary", _cc_flags_supplier = "cc_flags_supplier", _cc_grpc_library = "cc_grpc_library", _cc_library = "cc_library", _cc_proto_library = "cc_proto_library", _cc_test = "cc_test", _cc_toolchain = "cc_toolchain", _coreutil = "coreutil", _default_installer = "default_installer", _default_net_util = "default_net_util", _gazelle = "gazelle", _gbenchmark = "gbenchmark", _go_binary = "go_binary", _go_embed_data = "go_embed_data", _go_grpc_and_proto_libraries = "go_grpc_and_proto_libraries", _go_library = "go_library", _go_path = "go_path", _go_proto_library = "go_proto_library", _go_test = "go_test", _grpcpp = "grpcpp", _gtest = "gtest", _loopback = "loopback", _pkg_deb = "pkg_deb", _pkg_tar = "pkg_tar", _proto_library = "proto_library", _py_binary = "py_binary", _rbe_platform = "rbe_platform", _rbe_toolchain = "rbe_toolchain", _select_arch = "select_arch", _select_goarch = "select_goarch", _select_goos = "select_goos", _select_system = "select_system", _short_path = "short_path", _vdso_linker_option = "vdso_linker_option")
|
||||
load("//tools/nogo:defs.bzl", "nogo_test")
|
||||
load("//tools/bazeldefs:defs.bzl", _build_test = "build_test", _bzl_library = "bzl_library", _coreutil = "coreutil", _default_installer = "default_installer", _default_net_util = "default_net_util", _loopback = "loopback", _proto_library = "proto_library", _rbe_platform = "rbe_platform", _rbe_toolchain = "rbe_toolchain", _select_arch = "select_arch", _select_system = "select_system", _short_path = "short_path")
|
||||
load("//tools/bazeldefs:cc.bzl", _cc_binary = "cc_binary", _cc_flags_supplier = "cc_flags_supplier", _cc_grpc_library = "cc_grpc_library", _cc_library = "cc_library", _cc_proto_library = "cc_proto_library", _cc_test = "cc_test", _cc_toolchain = "cc_toolchain", _gbenchmark = "gbenchmark", _grpcpp = "grpcpp", _gtest = "gtest", _vdso_linker_option = "vdso_linker_option")
|
||||
load("//tools/bazeldefs:go.bzl", _gazelle = "gazelle", _go_binary = "go_binary", _go_embed_data = "go_embed_data", _go_grpc_and_proto_libraries = "go_grpc_and_proto_libraries", _go_library = "go_library", _go_path = "go_path", _go_proto_library = "go_proto_library", _go_test = "go_test", _select_goarch = "select_goarch", _select_goos = "select_goos")
|
||||
load("//tools/bazeldefs:pkg.bzl", _pkg_deb = "pkg_deb", _pkg_tar = "pkg_tar")
|
||||
load("//tools/bazeldefs:platforms.bzl", _default_platform = "default_platform", _platforms = "platforms")
|
||||
load("//tools/bazeldefs:tags.bzl", "go_suffixes")
|
||||
load("//tools/nogo:defs.bzl", "nogo_test")
|
||||
|
||||
# Delegate directly.
|
||||
# Core rules.
|
||||
build_test = _build_test
|
||||
bzl_library = _bzl_library
|
||||
default_installer = _default_installer
|
||||
default_net_util = _default_net_util
|
||||
loopback = _loopback
|
||||
select_arch = _select_arch
|
||||
select_system = _select_system
|
||||
short_path = _short_path
|
||||
rbe_platform = _rbe_platform
|
||||
rbe_toolchain = _rbe_toolchain
|
||||
coreutil = _coreutil
|
||||
|
||||
# C++ rules.
|
||||
cc_binary = _cc_binary
|
||||
cc_flags_supplier = _cc_flags_supplier
|
||||
cc_grpc_library = _cc_grpc_library
|
||||
cc_library = _cc_library
|
||||
cc_test = _cc_test
|
||||
cc_toolchain = _cc_toolchain
|
||||
default_installer = _default_installer
|
||||
default_net_util = _default_net_util
|
||||
gbenchmark = _gbenchmark
|
||||
gtest = _gtest
|
||||
grpcpp = _grpcpp
|
||||
vdso_linker_option = _vdso_linker_option
|
||||
|
||||
# Go rules.
|
||||
gazelle = _gazelle
|
||||
go_embed_data = _go_embed_data
|
||||
go_path = _go_path
|
||||
gtest = _gtest
|
||||
grpcpp = _grpcpp
|
||||
loopback = _loopback
|
||||
pkg_deb = _pkg_deb
|
||||
pkg_tar = _pkg_tar
|
||||
py_binary = _py_binary
|
||||
select_arch = _select_arch
|
||||
select_system = _select_system
|
||||
select_goos = _select_goos
|
||||
select_goarch = _select_goarch
|
||||
short_path = _short_path
|
||||
rbe_platform = _rbe_platform
|
||||
rbe_toolchain = _rbe_toolchain
|
||||
vdso_linker_option = _vdso_linker_option
|
||||
coreutil = _coreutil
|
||||
|
||||
# Packaging rules.
|
||||
pkg_deb = _pkg_deb
|
||||
pkg_tar = _pkg_tar
|
||||
|
||||
# Platform options.
|
||||
default_platform = _default_platform
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
"""Nogo rules."""
|
||||
|
||||
load("//tools/bazeldefs:defs.bzl", "go_context", "go_importpath", "go_rule", "go_test_library")
|
||||
load("//tools/bazeldefs:go.bzl", "go_context", "go_importpath", "go_rule", "go_test_library")
|
||||
|
||||
NogoTargetInfo = provider(
|
||||
"information about the Go target",
|
||||
|
||||
Reference in New Issue
Block a user