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