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__"], ) 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", ], ) 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__"], )