github.com/grpc-ecosystem/grpc-gateway/v2@v2.19.1/examples/internal/proto/examplepb/BUILD.bazel (about)

     1  load("@rules_proto//proto:defs.bzl", "proto_library")
     2  load("@io_bazel_rules_go//go:def.bzl", "go_library")
     3  load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")
     4  load("@grpc_ecosystem_grpc_gateway//protoc-gen-openapiv2:defs.bzl", "protoc_gen_openapiv2")
     5  
     6  package(default_visibility = ["//visibility:public"])
     7  
     8  # TODO(yannic): Add examples/tests that use import_prefix/strip_import_prefix.
     9  
    10  # gazelle:exclude a_bit_of_everything.pb.gw.go
    11  # gazelle:exclude a_bit_of_everything_grpc.pb.go
    12  # gazelle:exclude echo_service.pb.gw.go
    13  # gazelle:exclude echo_service_grpc.pb.go
    14  # gazelle:exclude flow_combination.pb.gw.go
    15  # gazelle:exclude flow_combination_grpc.pb.go
    16  # gazelle:exclude generate_unbound_methods.pb.gw.go
    17  # gazelle:exclude generate_unbound_methods_grpc.pb.go
    18  # gazelle:exclude generated_input.proto
    19  # gazelle:exclude non_standard_names.pb.gw.go
    20  # gazelle:exclude non_standard_names_grpc.pb.go
    21  # gazelle:exclude response_body_service.pb.gw.go
    22  # gazelle:exclude response_body_service_grpc.pb.go
    23  # gazelle:exclude stream.pb.gw.go
    24  # gazelle:exclude stream_grpc.pb.go
    25  # gazelle:exclude use_go_template.pb.gw.go
    26  # gazelle:exclude use_go_template_grpc.pb.go
    27  # gazelle:exclude ignore_comment.pb.gw.go
    28  # gazelle:exclude remove_internal_comment.pb.gw.go
    29  # gazelle:exclude ignore_comment_grpc.pb.go
    30  # gazelle:exclude wrappers.pb.gw.go
    31  # gazelle:exclude wrappers_grpc.pb.go
    32  # gazelle:exclude unannotated_echo_service.pb.gw.go
    33  # gazelle:exclude unannotated_echo_service_grpc.pb.go
    34  # gazelle:exclude visibility_rule_echo_service.pb.gw.go
    35  # gazelle:exclude visibility_rule_echo_service_grpc.pb.go
    36  # gazelle:exclude openapi_merge_a.proto
    37  # gazelle:exclude openapi_merge_b.proto
    38  # gazelle:go_grpc_compilers //:go_apiv2, //:go_grpc, //protoc-gen-grpc-gateway:go_gen_grpc_gateway
    39  
    40  genrule(
    41      name = "generated_proto",
    42      srcs = ["generated_input.proto"],
    43      outs = ["generated_output.proto"],
    44      cmd = "cp $< $@",  # A simple copy simulates a generated proto file.
    45  )
    46  
    47  proto_library(
    48      name = "examplepb_proto",
    49      srcs = [
    50          "a_bit_of_everything.proto",
    51          "echo_service.proto",
    52          "flow_combination.proto",
    53          "generate_unbound_methods.proto",
    54          "generated_output.proto",
    55          "ignore_comment.proto",
    56          "non_standard_names.proto",
    57          "remove_internal_comment.proto",
    58          "response_body_service.proto",
    59          "stream.proto",
    60          "unannotated_echo_service.proto",
    61          "use_go_template.proto",
    62          "visibility_rule_echo_service.proto",
    63          "wrappers.proto",
    64      ],
    65      deps = [
    66          "//examples/internal/proto/oneofenum:oneofenum_proto",
    67          "//examples/internal/proto/pathenum:pathenum_proto",
    68          "//examples/internal/proto/sub:sub_proto",
    69          "//examples/internal/proto/sub2:sub2_proto",
    70          "//protoc-gen-openapiv2/options:options_proto",
    71          "@com_google_protobuf//:duration_proto",
    72          "@com_google_protobuf//:empty_proto",
    73          "@com_google_protobuf//:field_mask_proto",
    74          "@com_google_protobuf//:struct_proto",
    75          "@com_google_protobuf//:timestamp_proto",
    76          "@com_google_protobuf//:wrappers_proto",
    77          "@googleapis//google/api:annotations_proto",
    78          "@googleapis//google/api:field_behavior_proto",
    79          "@googleapis//google/api:httpbody_proto",
    80          "@googleapis//google/api:visibility_proto",
    81          "@googleapis//google/rpc:status_proto",
    82      ],
    83  )
    84  
    85  #keep
    86  proto_library(
    87      name = "openapi_merge_proto",
    88      srcs = [
    89          "openapi_merge_a.proto",
    90          "openapi_merge_b.proto",
    91      ],
    92      deps = [
    93          "@com_google_protobuf//:api_proto",
    94          "@googleapis//google/api:annotations_proto",
    95          "@googleapis//google/api:field_behavior_proto",
    96          "@googleapis//google/rpc:status_proto",
    97      ],
    98  )
    99  
   100  go_proto_library(
   101      name = "examplepb_go_proto",
   102      compilers = [
   103          "//:go_apiv2",
   104          "//:go_grpc",
   105          "//protoc-gen-grpc-gateway:go_gen_grpc_gateway",
   106      ],
   107      importpath = "github.com/grpc-ecosystem/grpc-gateway/v2/examples/internal/proto/examplepb",
   108      proto = ":examplepb_proto",
   109      deps = [
   110          "//examples/internal/proto/oneofenum",
   111          "//examples/internal/proto/pathenum",
   112          "//examples/internal/proto/sub",
   113          "//examples/internal/proto/sub2",
   114          "//protoc-gen-openapiv2/options",
   115          "@com_github_golang_protobuf//descriptor:go_default_library_gen",  # keep
   116          "@org_golang_google_genproto_googleapis_api//annotations",
   117          "@org_golang_google_genproto_googleapis_api//httpbody",
   118          "@org_golang_google_genproto_googleapis_api//visibility",
   119          "@org_golang_google_genproto_googleapis_rpc//status",
   120      ],
   121  )
   122  
   123  go_library(
   124      name = "examplepb",
   125      srcs = [
   126          "openapi_merge_a.pb.go",
   127          "openapi_merge_a.pb.gw.go",
   128          "openapi_merge_a_grpc.pb.go",
   129          "openapi_merge_b.pb.go",
   130          "openapi_merge_b.pb.gw.go",
   131          "openapi_merge_b_grpc.pb.go",
   132      ],
   133      embed = [":examplepb_go_proto"],
   134      importpath = "github.com/grpc-ecosystem/grpc-gateway/v2/examples/internal/proto/examplepb",
   135      deps = [
   136          "//runtime",
   137          "//utilities",
   138          "@org_golang_google_genproto_googleapis_api//annotations",
   139          "@org_golang_google_grpc//:go_default_library",
   140          "@org_golang_google_grpc//codes",
   141          "@org_golang_google_grpc//grpclog",
   142          "@org_golang_google_grpc//metadata",
   143          "@org_golang_google_grpc//status",
   144          "@org_golang_google_protobuf//proto",
   145          "@org_golang_google_protobuf//reflect/protoreflect",
   146          "@org_golang_google_protobuf//runtime/protoimpl",
   147      ],
   148  )
   149  
   150  protoc_gen_openapiv2(
   151      name = "examplepb_protoc_gen_openapiv2",
   152      proto = ":examplepb_proto",
   153  )
   154  
   155  protoc_gen_openapiv2(
   156      name = "examplepb_protoc_gen_openapiv2_merged",
   157      proto = ":examplepb_proto",
   158      single_output = True,  # Outputs a single swagger.json file.
   159  )
   160  
   161  protoc_gen_openapiv2(
   162      name = "examplepb_openapi_merge",
   163      proto = ":openapi_merge_proto",
   164      single_output = True,  # Outputs a single swagger.json file.
   165  )
   166  
   167  alias(
   168      name = "go_default_library",
   169      actual = ":examplepb",
   170      visibility = ["//examples:__subpackages__"],
   171  )