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