1load("@io_bazel_rules_go//go/private/rules:binary.bzl", "go_tool_binary") 2load("@io_bazel_rules_go//go/private/rules:sdk.bzl", "package_list") 3load("@io_bazel_rules_go//go/private/rules:transition.bzl", "non_go_reset_target") 4load("@io_bazel_rules_go//go/private:go_toolchain.bzl", "declare_go_toolchains") 5load("@io_bazel_rules_go//go:def.bzl", "go_sdk") 6 7package(default_visibility = ["//visibility:public"]) 8 9filegroup( 10 name = "libs", 11 srcs = glob( 12 ["pkg/{goos}_{goarch}/**/*.a"], 13 allow_empty = True, 14 exclude = ["pkg/{goos}_{goarch}/**/cmd/**"], 15 ), 16) 17 18filegroup( 19 name = "headers", 20 srcs = glob(["pkg/include/*.h"]), 21) 22 23filegroup( 24 name = "srcs", 25 srcs = glob(["src/**"]), 26) 27 28filegroup( 29 name = "tools", 30 srcs = glob([ 31 "pkg/tool/**", 32 "bin/gofmt*", 33 ]), 34) 35 36go_sdk( 37 name = "go_sdk", 38 srcs = [":srcs"], 39 experiments = {experiments}, 40 go = "bin/go{exe}", 41 goarch = "{goarch}", 42 goos = "{goos}", 43 headers = [":headers"], 44 libs = [":libs"], 45 package_list = ":package_list", 46 root_file = "ROOT", 47 tools = [":tools"], 48 version = "{version}", 49) 50 51go_tool_binary( 52 name = "builder", 53 srcs = ["@io_bazel_rules_go//go/tools/builders:builder_srcs"], 54 sdk = ":go_sdk", 55) 56 57non_go_reset_target( 58 name = "builder_reset", 59 dep = ":builder", 60) 61 62# TODO(jayconrod): Gazelle depends on this file directly. This dependency 63# should be broken, and this rule should be folded into go_sdk. 64package_list( 65 name = "package_list", 66 srcs = [":srcs"], 67 out = "packages.txt", 68 root_file = "ROOT", 69) 70 71declare_go_toolchains( 72 builder = ":builder_reset", 73 host_goos = "{goos}", 74 sdk = ":go_sdk", 75) 76 77filegroup( 78 name = "files", 79 srcs = glob([ 80 "bin/go*", 81 "src/**", 82 "pkg/**", 83 ]), 84) 85 86exports_files( 87 glob([ 88 "lib/time/zoneinfo.zip", 89 "misc/wasm/**", 90 ]), 91 visibility = ["//visibility:public"], 92) 93