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