1*9bb1b549SSpandan Dasload("@bazel_skylib//:bzl_library.bzl", "bzl_library") 2*9bb1b549SSpandan Dasload("@bazel_skylib//rules:common_settings.bzl", "bool_setting") 3*9bb1b549SSpandan Das 4*9bb1b549SSpandan Dasfilegroup( 5*9bb1b549SSpandan Das name = "all_rules", 6*9bb1b549SSpandan Das srcs = [ 7*9bb1b549SSpandan Das "//go/private/actions:all_rules", 8*9bb1b549SSpandan Das "//go/private/rules:all_rules", 9*9bb1b549SSpandan Das "//go/private/skylib/lib:all_rules", 10*9bb1b549SSpandan Das "//go/private/tools:all_rules", 11*9bb1b549SSpandan Das ] + glob(["**/*.bzl"]), 12*9bb1b549SSpandan Das visibility = ["//visibility:public"], 13*9bb1b549SSpandan Das) 14*9bb1b549SSpandan Das 15*9bb1b549SSpandan Dasfilegroup( 16*9bb1b549SSpandan Das name = "all_files", 17*9bb1b549SSpandan Das testonly = True, 18*9bb1b549SSpandan Das srcs = [ 19*9bb1b549SSpandan Das "//go/private/actions:all_files", 20*9bb1b549SSpandan Das "//go/private/rules:all_files", 21*9bb1b549SSpandan Das "//go/private/skylib/lib:all_files", 22*9bb1b549SSpandan Das "//go/private/tools:all_files", 23*9bb1b549SSpandan Das ] + glob(["**"]), 24*9bb1b549SSpandan Das visibility = ["//visibility:public"], 25*9bb1b549SSpandan Das) 26*9bb1b549SSpandan Das 27*9bb1b549SSpandan Dasconfig_setting( 28*9bb1b549SSpandan Das name = "stamp", 29*9bb1b549SSpandan Das values = {"stamp": "true"}, 30*9bb1b549SSpandan Das visibility = ["//:__pkg__"], 31*9bb1b549SSpandan Das) 32*9bb1b549SSpandan Das 33*9bb1b549SSpandan Dasconfig_setting( 34*9bb1b549SSpandan Das name = "is_strip_always", 35*9bb1b549SSpandan Das values = {"strip": "always"}, 36*9bb1b549SSpandan Das visibility = ["//:__pkg__"], 37*9bb1b549SSpandan Das) 38*9bb1b549SSpandan Das 39*9bb1b549SSpandan Dasconfig_setting( 40*9bb1b549SSpandan Das name = "is_strip_sometimes_fastbuild", 41*9bb1b549SSpandan Das values = { 42*9bb1b549SSpandan Das "strip": "sometimes", 43*9bb1b549SSpandan Das "compilation_mode": "fastbuild", 44*9bb1b549SSpandan Das }, 45*9bb1b549SSpandan Das visibility = ["//:__pkg__"], 46*9bb1b549SSpandan Das) 47*9bb1b549SSpandan Das 48*9bb1b549SSpandan Dasbzl_library( 49*9bb1b549SSpandan Das name = "context", 50*9bb1b549SSpandan Das srcs = ["context.bzl"], 51*9bb1b549SSpandan Das visibility = [ 52*9bb1b549SSpandan Das "//docs:__subpackages__", 53*9bb1b549SSpandan Das "//extras:__pkg__", # Manually added 54*9bb1b549SSpandan Das "//go:__subpackages__", 55*9bb1b549SSpandan Das ], 56*9bb1b549SSpandan Das deps = [ 57*9bb1b549SSpandan Das ":common", 58*9bb1b549SSpandan Das ":mode", 59*9bb1b549SSpandan Das ":providers", 60*9bb1b549SSpandan Das "//go/platform:apple", 61*9bb1b549SSpandan Das "//go/private:go_toolchain", 62*9bb1b549SSpandan Das "//go/private/rules:transition", 63*9bb1b549SSpandan Das "@bazel_skylib//lib:paths", 64*9bb1b549SSpandan Das "@bazel_skylib//rules:common_settings", 65*9bb1b549SSpandan Das "@bazel_tools//tools/build_defs/cc:action_names.bzl", 66*9bb1b549SSpandan Das "@bazel_tools//tools/cpp:toolchain_utils.bzl", 67*9bb1b549SSpandan Das ], 68*9bb1b549SSpandan Das) 69*9bb1b549SSpandan Das 70*9bb1b549SSpandan Dasbzl_library( 71*9bb1b549SSpandan Das name = "go_toolchain", 72*9bb1b549SSpandan Das srcs = ["go_toolchain.bzl"], 73*9bb1b549SSpandan Das visibility = [ 74*9bb1b549SSpandan Das "//extras:__pkg__", # Manually added 75*9bb1b549SSpandan Das "//go:__subpackages__", 76*9bb1b549SSpandan Das ], 77*9bb1b549SSpandan Das deps = [ 78*9bb1b549SSpandan Das "//go/private:platforms", 79*9bb1b549SSpandan Das "//go/private:providers", 80*9bb1b549SSpandan Das "//go/private/actions:archive", 81*9bb1b549SSpandan Das "//go/private/actions:binary", 82*9bb1b549SSpandan Das "//go/private/actions:link", 83*9bb1b549SSpandan Das "//go/private/actions:stdlib", 84*9bb1b549SSpandan Das "@bazel_skylib//lib:selects", 85*9bb1b549SSpandan Das ], 86*9bb1b549SSpandan Das) 87*9bb1b549SSpandan Das 88*9bb1b549SSpandan Dasbzl_library( 89*9bb1b549SSpandan Das name = "repositories", 90*9bb1b549SSpandan Das srcs = ["repositories.bzl"], 91*9bb1b549SSpandan Das visibility = ["//go:__subpackages__"], 92*9bb1b549SSpandan Das # Don't list dependency on @bazel_tools//tools/build_defs/repo:http.bzl 93*9bb1b549SSpandan Das deps = [ 94*9bb1b549SSpandan Das ":common", 95*9bb1b549SSpandan Das ":nogo", 96*9bb1b549SSpandan Das "//go/private/skylib/lib:versions", 97*9bb1b549SSpandan Das "//proto:gogo", 98*9bb1b549SSpandan Das ], # keep 99*9bb1b549SSpandan Das) 100*9bb1b549SSpandan Das 101*9bb1b549SSpandan Dasbzl_library( 102*9bb1b549SSpandan Das name = "sdk", 103*9bb1b549SSpandan Das srcs = ["sdk.bzl"], 104*9bb1b549SSpandan Das visibility = ["//go:__subpackages__"], 105*9bb1b549SSpandan Das deps = [ 106*9bb1b549SSpandan Das "//go/private:common", 107*9bb1b549SSpandan Das "//go/private:nogo", 108*9bb1b549SSpandan Das "//go/private:platforms", 109*9bb1b549SSpandan Das "//go/private/skylib/lib:versions", 110*9bb1b549SSpandan Das ], 111*9bb1b549SSpandan Das) 112*9bb1b549SSpandan Das 113*9bb1b549SSpandan Dasbzl_library( 114*9bb1b549SSpandan Das name = "common", 115*9bb1b549SSpandan Das srcs = ["common.bzl"], 116*9bb1b549SSpandan Das visibility = ["//go:__subpackages__"], 117*9bb1b549SSpandan Das) 118*9bb1b549SSpandan Das 119*9bb1b549SSpandan Dasbzl_library( 120*9bb1b549SSpandan Das name = "mode", 121*9bb1b549SSpandan Das srcs = ["mode.bzl"], 122*9bb1b549SSpandan Das visibility = ["//go:__subpackages__"], 123*9bb1b549SSpandan Das) 124*9bb1b549SSpandan Das 125*9bb1b549SSpandan Dasbzl_library( 126*9bb1b549SSpandan Das name = "nogo", 127*9bb1b549SSpandan Das srcs = ["nogo.bzl"], 128*9bb1b549SSpandan Das visibility = ["//go:__subpackages__"], 129*9bb1b549SSpandan Das) 130*9bb1b549SSpandan Das 131*9bb1b549SSpandan Dasbzl_library( 132*9bb1b549SSpandan Das name = "platforms", 133*9bb1b549SSpandan Das srcs = ["platforms.bzl"], 134*9bb1b549SSpandan Das visibility = ["//go:__subpackages__"], 135*9bb1b549SSpandan Das) 136*9bb1b549SSpandan Das 137*9bb1b549SSpandan Dasbzl_library( 138*9bb1b549SSpandan Das name = "providers", 139*9bb1b549SSpandan Das srcs = ["providers.bzl"], 140*9bb1b549SSpandan Das visibility = [ 141*9bb1b549SSpandan Das "//extras:__pkg__", 142*9bb1b549SSpandan Das "//go:__subpackages__", 143*9bb1b549SSpandan Das "//proto:__pkg__", # keep 144*9bb1b549SSpandan Das ], 145*9bb1b549SSpandan Das) 146*9bb1b549SSpandan Das 147*9bb1b549SSpandan Dasbzl_library( 148*9bb1b549SSpandan Das name = "rpath", 149*9bb1b549SSpandan Das srcs = ["rpath.bzl"], 150*9bb1b549SSpandan Das visibility = [ 151*9bb1b549SSpandan Das "//docs:__subpackages__", 152*9bb1b549SSpandan Das "//go:__subpackages__", 153*9bb1b549SSpandan Das ], 154*9bb1b549SSpandan Das) 155*9bb1b549SSpandan Das 156*9bb1b549SSpandan Das# Usually false. This is only true when we are building nogo itself in which 157*9bb1b549SSpandan Das# because that rule uses an incoming transition to switch this to true. 158*9bb1b549SSpandan Dasbool_setting( 159*9bb1b549SSpandan Das name = "bootstrap_nogo", 160*9bb1b549SSpandan Das build_setting_default = False, 161*9bb1b549SSpandan Das visibility = ["//visibility:public"], 162*9bb1b549SSpandan Das) 163*9bb1b549SSpandan Das 164*9bb1b549SSpandan Das# Usually true. The entire toolchain gets nogo to use in builds via the 165*9bb1b549SSpandan Das# go_context_data rule, which has an incoming transition that flips this flag 166*9bb1b549SSpandan Das# to true. This will only be false in host mode (which disallows any 167*9bb1b549SSpandan Das# transitions) or accessing nogo without going through go_context_data (which 168*9bb1b549SSpandan Das# does not happen in rules_go and does not seem to be useful). 169*9bb1b549SSpandan Dasbool_setting( 170*9bb1b549SSpandan Das name = "request_nogo", 171*9bb1b549SSpandan Das build_setting_default = False, 172*9bb1b549SSpandan Das visibility = ["//visibility:public"], 173*9bb1b549SSpandan Das) 174*9bb1b549SSpandan Das 175*9bb1b549SSpandan Das# Controls whether nogo alias will reference a noop or the configured nogo. 176*9bb1b549SSpandan Das# This *MUST* default to the noop to allow for tools to be built in the 177*9bb1b549SSpandan Das# deprecated "host" mode. Host mode cannot perform configuration transitions 178*9bb1b549SSpandan Das# so it cannot avoid circular dependencies. Therefore the default must work 179*9bb1b549SSpandan Das# without performing any transitions. The tradeoff is that nogo analysis is not 180*9bb1b549SSpandan Das# performed for any target built in host mode - this is not as bad as it seems 181*9bb1b549SSpandan Das# as most tools can (and should) use "exec" configuration instead of host which 182*9bb1b549SSpandan Das# does support transitions. 183*9bb1b549SSpandan Dasconfig_setting( 184*9bb1b549SSpandan Das name = "nogo_active", 185*9bb1b549SSpandan Das flag_values = { 186*9bb1b549SSpandan Das ":bootstrap_nogo": "False", 187*9bb1b549SSpandan Das ":request_nogo": "True", 188*9bb1b549SSpandan Das }, 189*9bb1b549SSpandan Das visibility = ["//visibility:public"], 190*9bb1b549SSpandan Das) 191*9bb1b549SSpandan Das 192*9bb1b549SSpandan Dasbool_setting( 193*9bb1b549SSpandan Das name = "always_true", 194*9bb1b549SSpandan Das build_setting_default = True, 195*9bb1b549SSpandan Das visibility = ["//visibility:public"], 196*9bb1b549SSpandan Das) 197*9bb1b549SSpandan Das 198*9bb1b549SSpandan Das# Only used by //:go_config. 199*9bb1b549SSpandan Dasconfig_setting( 200*9bb1b549SSpandan Das name = "is_compilation_mode_dbg", 201*9bb1b549SSpandan Das values = { 202*9bb1b549SSpandan Das "compilation_mode": "dbg", 203*9bb1b549SSpandan Das }, 204*9bb1b549SSpandan Das visibility = ["//:__pkg__"], 205*9bb1b549SSpandan Das) 206