github.com/stackb/rules_proto@v0.0.0-20240221195024-5428336c51f1/docs/go.md (about) 1 --- 2 layout: default 3 title: go 4 permalink: examples/go 5 parent: Examples 6 --- 7 8 9 # go example 10 11 `bazel test //example/golden:go_test` 12 13 14 ## `BUILD.bazel` (after gazelle) 15 16 ~~~python 17 load("@rules_proto//proto:defs.bzl", "proto_library") 18 load("@build_stack_rules_proto//rules/go:proto_go_library.bzl", "proto_go_library") 19 load("@build_stack_rules_proto//rules:proto_compile.bzl", "proto_compile") 20 21 # gazelle:proto_plugin protoc-gen-go implementation golang:protobuf:protoc-gen-go 22 # gazelle:proto_rule proto_compile implementation stackb:rules_proto:proto_compile 23 # gazelle:proto_rule proto_go_library implementation stackb:rules_proto:proto_go_library 24 # gazelle:proto_rule proto_go_library deps @org_golang_google_protobuf//reflect/protoreflect 25 # gazelle:proto_rule proto_go_library deps @org_golang_google_protobuf//runtime/protoimpl 26 # gazelle:proto_rule proto_go_library resolve google/protobuf/([a-z]+).proto @org_golang_google_protobuf//types/known/${1}pb 27 # gazelle:proto_rule proto_go_library visibility //visibility:public 28 # gazelle:proto_language go plugin protoc-gen-go 29 # gazelle:proto_language go rule proto_compile 30 # gazelle:proto_language go rule proto_go_library 31 32 proto_library( 33 name = "pb_proto", 34 srcs = ["example.proto"], 35 visibility = ["//visibility:public"], 36 ) 37 38 proto_compile( 39 name = "pb_go_compile", 40 outputs = ["example.pb.go"], 41 plugins = ["@build_stack_rules_proto//plugin/golang/protobuf:protoc-gen-go"], 42 proto = "pb_proto", 43 ) 44 45 proto_go_library( 46 name = "pb_go_proto", 47 srcs = ["example.pb.go"], 48 importpath = "./", 49 visibility = ["//visibility:public"], 50 deps = [ 51 "@org_golang_google_protobuf//reflect/protoreflect", 52 "@org_golang_google_protobuf//runtime/protoimpl", 53 ], 54 ) 55 ~~~ 56 57 58 ## `BUILD.bazel` (before gazelle) 59 60 ~~~python 61 # gazelle:proto_plugin protoc-gen-go implementation golang:protobuf:protoc-gen-go 62 # gazelle:proto_rule proto_compile implementation stackb:rules_proto:proto_compile 63 # gazelle:proto_rule proto_go_library implementation stackb:rules_proto:proto_go_library 64 # gazelle:proto_rule proto_go_library deps @org_golang_google_protobuf//reflect/protoreflect 65 # gazelle:proto_rule proto_go_library deps @org_golang_google_protobuf//runtime/protoimpl 66 # gazelle:proto_rule proto_go_library resolve google/protobuf/([a-z]+).proto @org_golang_google_protobuf//types/known/${1}pb 67 # gazelle:proto_rule proto_go_library visibility //visibility:public 68 # gazelle:proto_language go plugin protoc-gen-go 69 # gazelle:proto_language go rule proto_compile 70 # gazelle:proto_language go rule proto_go_library 71 ~~~ 72 73 74 ## `WORKSPACE` 75 76 ~~~python 77 ~~~ 78