diff options
Diffstat (limited to 'go/private/BUILD.bazel')
-rw-r--r-- | go/private/BUILD.bazel | 205 |
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__"], +) |