aboutsummaryrefslogtreecommitdiff
path: root/go/private/BUILD.bazel
diff options
context:
space:
mode:
Diffstat (limited to 'go/private/BUILD.bazel')
-rw-r--r--go/private/BUILD.bazel205
1 files changed, 205 insertions, 0 deletions
diff --git a/go/private/BUILD.bazel b/go/private/BUILD.bazel
new file mode 100644
index 00000000..16907b53
--- /dev/null
+++ b/go/private/BUILD.bazel
@@ -0,0 +1,205 @@
+load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
+load("@bazel_skylib//rules:common_settings.bzl", "bool_setting")
+
+filegroup(
+ name = "all_rules",
+ srcs = [
+ "//go/private/actions:all_rules",
+ "//go/private/rules:all_rules",
+ "//go/private/skylib/lib:all_rules",
+ "//go/private/tools:all_rules",
+ ] + glob(["**/*.bzl"]),
+ visibility = ["//visibility:public"],
+)
+
+filegroup(
+ name = "all_files",
+ testonly = True,
+ srcs = [
+ "//go/private/actions:all_files",
+ "//go/private/rules:all_files",
+ "//go/private/skylib/lib:all_files",
+ "//go/private/tools:all_files",
+ ] + glob(["**"]),
+ visibility = ["//visibility:public"],
+)
+
+config_setting(
+ name = "stamp",
+ values = {"stamp": "true"},
+ visibility = ["//:__pkg__"],
+)
+
+config_setting(
+ name = "is_strip_always",
+ values = {"strip": "always"},
+ visibility = ["//:__pkg__"],
+)
+
+config_setting(
+ name = "is_strip_sometimes_fastbuild",
+ values = {
+ "strip": "sometimes",
+ "compilation_mode": "fastbuild",
+ },
+ visibility = ["//:__pkg__"],
+)
+
+bzl_library(
+ name = "context",
+ srcs = ["context.bzl"],
+ visibility = [
+ "//docs:__subpackages__",
+ "//extras:__pkg__", # Manually added
+ "//go:__subpackages__",
+ ],
+ deps = [
+ ":common",
+ ":mode",
+ ":providers",
+ "//go/platform:apple",
+ "//go/private:go_toolchain",
+ "//go/private/rules:transition",
+ "@bazel_skylib//lib:paths",
+ "@bazel_skylib//rules:common_settings",
+ "@bazel_tools//tools/build_defs/cc:action_names.bzl",
+ "@bazel_tools//tools/cpp:toolchain_utils.bzl",
+ ],
+)
+
+bzl_library(
+ name = "go_toolchain",
+ srcs = ["go_toolchain.bzl"],
+ visibility = [
+ "//extras:__pkg__", # Manually added
+ "//go:__subpackages__",
+ ],
+ deps = [
+ "//go/private:platforms",
+ "//go/private:providers",
+ "//go/private/actions:archive",
+ "//go/private/actions:binary",
+ "//go/private/actions:link",
+ "//go/private/actions:stdlib",
+ "@bazel_skylib//lib:selects",
+ ],
+)
+
+bzl_library(
+ name = "repositories",
+ srcs = ["repositories.bzl"],
+ visibility = ["//go:__subpackages__"],
+ # Don't list dependency on @bazel_tools//tools/build_defs/repo:http.bzl
+ deps = [
+ ":common",
+ ":nogo",
+ "//go/private/skylib/lib:versions",
+ "//proto:gogo",
+ ], # keep
+)
+
+bzl_library(
+ name = "sdk",
+ srcs = ["sdk.bzl"],
+ visibility = ["//go:__subpackages__"],
+ deps = [
+ "//go/private:common",
+ "//go/private:nogo",
+ "//go/private:platforms",
+ "//go/private/skylib/lib:versions",
+ ],
+)
+
+bzl_library(
+ name = "common",
+ srcs = ["common.bzl"],
+ visibility = ["//go:__subpackages__"],
+)
+
+bzl_library(
+ name = "mode",
+ srcs = ["mode.bzl"],
+ visibility = ["//go:__subpackages__"],
+)
+
+bzl_library(
+ name = "nogo",
+ srcs = ["nogo.bzl"],
+ visibility = ["//go:__subpackages__"],
+)
+
+bzl_library(
+ name = "platforms",
+ srcs = ["platforms.bzl"],
+ visibility = ["//go:__subpackages__"],
+)
+
+bzl_library(
+ name = "providers",
+ srcs = ["providers.bzl"],
+ visibility = [
+ "//extras:__pkg__",
+ "//go:__subpackages__",
+ "//proto:__pkg__", # keep
+ ],
+)
+
+bzl_library(
+ name = "rpath",
+ srcs = ["rpath.bzl"],
+ visibility = [
+ "//docs:__subpackages__",
+ "//go:__subpackages__",
+ ],
+)
+
+# Usually false. This is only true when we are building nogo itself in which
+# because that rule uses an incoming transition to switch this to true.
+bool_setting(
+ name = "bootstrap_nogo",
+ build_setting_default = False,
+ visibility = ["//visibility:public"],
+)
+
+# Usually true. The entire toolchain gets nogo to use in builds via the
+# go_context_data rule, which has an incoming transition that flips this flag
+# to true. This will only be false in host mode (which disallows any
+# transitions) or accessing nogo without going through go_context_data (which
+# does not happen in rules_go and does not seem to be useful).
+bool_setting(
+ name = "request_nogo",
+ build_setting_default = False,
+ visibility = ["//visibility:public"],
+)
+
+# Controls whether nogo alias will reference a noop or the configured nogo.
+# This *MUST* default to the noop to allow for tools to be built in the
+# deprecated "host" mode. Host mode cannot perform configuration transitions
+# so it cannot avoid circular dependencies. Therefore the default must work
+# without performing any transitions. The tradeoff is that nogo analysis is not
+# performed for any target built in host mode - this is not as bad as it seems
+# as most tools can (and should) use "exec" configuration instead of host which
+# does support transitions.
+config_setting(
+ name = "nogo_active",
+ flag_values = {
+ ":bootstrap_nogo": "False",
+ ":request_nogo": "True",
+ },
+ visibility = ["//visibility:public"],
+)
+
+bool_setting(
+ name = "always_true",
+ build_setting_default = True,
+ visibility = ["//visibility:public"],
+)
+
+# Only used by //:go_config.
+config_setting(
+ name = "is_compilation_mode_dbg",
+ values = {
+ "compilation_mode": "dbg",
+ },
+ visibility = ["//:__pkg__"],
+)