BUILD.bazel 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358
  1. load("@rules_proto//proto:defs.bzl", "proto_library")
  2. # This is an API workspace, having public visibility by default makes perfect sense.
  3. package(default_visibility = ["//visibility:public"])
  4. ##############################################################################
  5. # Common
  6. ##############################################################################
  7. load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info")
  8. proto_library(
  9. name = "pubsub_proto",
  10. srcs = [
  11. "pubsub.proto",
  12. "schema.proto",
  13. ],
  14. deps = [
  15. "//google/api:annotations_proto",
  16. "//google/api:client_proto",
  17. "//google/api:field_behavior_proto",
  18. "//google/api:resource_proto",
  19. "@com_google_protobuf//:duration_proto",
  20. "@com_google_protobuf//:empty_proto",
  21. "@com_google_protobuf//:field_mask_proto",
  22. "@com_google_protobuf//:timestamp_proto",
  23. ],
  24. )
  25. proto_library_with_info(
  26. name = "pubsub_proto_with_info",
  27. deps = [
  28. ":pubsub_proto",
  29. "//google/cloud:common_resources_proto",
  30. "//google/iam/v1:iam_policy_proto",
  31. "//google/iam/v1:policy_proto",
  32. ],
  33. )
  34. ##############################################################################
  35. # Java
  36. ##############################################################################
  37. load(
  38. "@com_google_googleapis_imports//:imports.bzl",
  39. "java_gapic_assembly_gradle_pkg",
  40. "java_gapic_library",
  41. "java_gapic_test",
  42. "java_grpc_library",
  43. "java_proto_library",
  44. )
  45. java_proto_library(
  46. name = "pubsub_java_proto",
  47. deps = [":pubsub_proto"],
  48. )
  49. java_grpc_library(
  50. name = "pubsub_java_grpc",
  51. srcs = [":pubsub_proto"],
  52. deps = [":pubsub_java_proto"],
  53. )
  54. java_gapic_library(
  55. name = "pubsub_java_gapic",
  56. srcs = [":pubsub_proto_with_info"],
  57. gapic_yaml = "pubsub_gapic.yaml",
  58. grpc_service_config = "pubsub_grpc_service_config.json",
  59. service_yaml = ":pubsub_v1.yaml",
  60. test_deps = [
  61. ":pubsub_java_grpc",
  62. "//google/iam/v1:iam_java_grpc",
  63. ],
  64. deps = [
  65. ":pubsub_java_proto",
  66. "//google/iam/v1:iam_java_proto",
  67. ],
  68. )
  69. java_gapic_test(
  70. name = "pubsub_java_gapic_test_suite",
  71. test_classes = [
  72. "com.google.cloud.pubsub.v1.SubscriptionAdminClientTest",
  73. "com.google.cloud.pubsub.v1.TopicAdminClientTest",
  74. ],
  75. runtime_deps = [":pubsub_java_gapic_test"],
  76. )
  77. # Open Source Packages
  78. java_gapic_assembly_gradle_pkg(
  79. name = "google-cloud-pubsub-v1-java",
  80. deps = [
  81. ":pubsub_java_gapic",
  82. ":pubsub_java_grpc",
  83. ":pubsub_java_proto",
  84. ":pubsub_proto",
  85. ],
  86. )
  87. ##############################################################################
  88. # Python
  89. ##############################################################################
  90. load(
  91. "@com_google_googleapis_imports//:imports.bzl",
  92. "py_gapic_assembly_pkg",
  93. "py_gapic_library",
  94. )
  95. py_gapic_library(
  96. name = "pubsub_py_gapic",
  97. srcs = [":pubsub_proto"],
  98. grpc_service_config = "pubsub_grpc_service_config.json",
  99. opt_args = ["add-iam-methods"],
  100. )
  101. py_gapic_assembly_pkg(
  102. name = "pubsub-v1-py",
  103. deps = [
  104. ":pubsub_py_gapic",
  105. ],
  106. )
  107. ##############################################################################
  108. # Go
  109. ##############################################################################
  110. load(
  111. "@com_google_googleapis_imports//:imports.bzl",
  112. "go_gapic_assembly_pkg",
  113. "go_gapic_library",
  114. "go_proto_library",
  115. "go_test",
  116. )
  117. go_proto_library(
  118. name = "pubsub_go_proto",
  119. compilers = ["@io_bazel_rules_go//proto:go_grpc"],
  120. importpath = "google.golang.org/genproto/googleapis/pubsub/v1",
  121. protos = [":pubsub_proto"],
  122. deps = ["//google/api:annotations_go_proto"],
  123. )
  124. go_gapic_library(
  125. name = "pubsub_go_gapic",
  126. srcs = [":pubsub_proto_with_info"],
  127. grpc_service_config = "pubsub_grpc_service_config.json",
  128. importpath = "cloud.google.com/go/pubsub/apiv1;pubsub",
  129. service_yaml = ":pubsub_v1.yaml",
  130. deps = [
  131. ":pubsub_go_proto",
  132. "//google/iam/v1:iam_go_proto",
  133. ],
  134. )
  135. go_test(
  136. name = "pubsub_go_gapic_test",
  137. srcs = [":pubsub_go_gapic_srcjar_test"],
  138. embed = [":pubsub_go_gapic"],
  139. importpath = "cloud.google.com/go/pubsub/apiv1",
  140. deps = ["//google/iam/v1:iam_go_proto"],
  141. )
  142. # Open Source Packages
  143. go_gapic_assembly_pkg(
  144. name = "gapi-cloud-pubsub-v1-go",
  145. deps = [
  146. ":pubsub_go_gapic",
  147. ":pubsub_go_gapic_srcjar-test.srcjar",
  148. ":pubsub_go_proto",
  149. ],
  150. )
  151. ##############################################################################
  152. # PHP
  153. ##############################################################################
  154. load(
  155. "@com_google_googleapis_imports//:imports.bzl",
  156. "php_gapic_assembly_pkg",
  157. "php_gapic_library",
  158. "php_grpc_library",
  159. "php_proto_library",
  160. )
  161. php_proto_library(
  162. name = "pubsub_php_proto",
  163. deps = [":pubsub_proto"],
  164. )
  165. php_grpc_library(
  166. name = "pubsub_php_grpc",
  167. srcs = [":pubsub_proto"],
  168. deps = [":pubsub_php_proto"],
  169. )
  170. php_gapic_library(
  171. name = "pubsub_php_gapic",
  172. srcs = [":pubsub_proto_with_info"],
  173. gapic_yaml = "pubsub_gapic.yaml",
  174. grpc_service_config = "pubsub_grpc_service_config.json",
  175. service_yaml = ":pubsub_v1.yaml",
  176. deps = [
  177. ":pubsub_php_grpc",
  178. ":pubsub_php_proto",
  179. ],
  180. )
  181. # Open Source Packages
  182. php_gapic_assembly_pkg(
  183. name = "google-cloud-pubsub-v1-php",
  184. deps = [
  185. ":pubsub_php_gapic",
  186. ":pubsub_php_grpc",
  187. ":pubsub_php_proto",
  188. ],
  189. )
  190. ##############################################################################
  191. # Node.js
  192. ##############################################################################
  193. load(
  194. "@com_google_googleapis_imports//:imports.bzl",
  195. "nodejs_gapic_assembly_pkg",
  196. "nodejs_gapic_library",
  197. )
  198. nodejs_gapic_library(
  199. name = "pubsub_nodejs_gapic",
  200. package_name = "@google-cloud/pubsub",
  201. src = ":pubsub_proto_with_info",
  202. bundle_config = "pubsub_gapic.yaml",
  203. extra_protoc_parameters = ["template=typescript_gapic"],
  204. grpc_service_config = "pubsub_grpc_service_config.json",
  205. main_service = "pubsub",
  206. service_yaml = ":pubsub_v1.yaml",
  207. deps = [],
  208. )
  209. nodejs_gapic_assembly_pkg(
  210. name = "pubsub-v1-nodejs",
  211. deps = [
  212. ":pubsub_nodejs_gapic",
  213. ":pubsub_proto",
  214. ],
  215. )
  216. ##############################################################################
  217. # Ruby
  218. ##############################################################################
  219. load(
  220. "@com_google_googleapis_imports//:imports.bzl",
  221. "ruby_cloud_gapic_library",
  222. "ruby_gapic_assembly_pkg",
  223. "ruby_grpc_library",
  224. "ruby_proto_library",
  225. )
  226. ruby_proto_library(
  227. name = "pubsub_ruby_proto",
  228. deps = [":pubsub_proto"],
  229. )
  230. ruby_grpc_library(
  231. name = "pubsub_ruby_grpc",
  232. srcs = [":pubsub_proto"],
  233. deps = [":pubsub_ruby_proto"],
  234. )
  235. ruby_cloud_gapic_library(
  236. name = "pubsub_ruby_gapic",
  237. srcs = [":pubsub_proto_with_info"],
  238. extra_protoc_parameters = [
  239. "ruby-cloud-gem-name=google-cloud-pubsub-v1",
  240. "ruby-cloud-env-prefix=PUBSUB",
  241. "ruby-cloud-common-services=google.iam.v1.IAMPolicy=google.pubsub.v1.Publisher",
  242. "ruby-cloud-path-override=pub_sub=pubsub",
  243. "ruby-cloud-namespace-override=Pubsub=PubSub",
  244. "ruby-cloud-product-url=https://cloud.google.com/pubsub",
  245. "ruby-cloud-api-id=pubsub.googleapis.com",
  246. "ruby-cloud-api-shortname=pubsub",
  247. ],
  248. grpc_service_config = "pubsub_grpc_service_config.json",
  249. ruby_cloud_description = "Cloud Pub/Sub is a fully-managed real-time messaging service that allows you to send and receive messages between independent applications.",
  250. ruby_cloud_title = "Cloud Pub/Sub V1",
  251. deps = [
  252. ":pubsub_ruby_grpc",
  253. ":pubsub_ruby_proto",
  254. ],
  255. )
  256. # Open Source Packages
  257. ruby_gapic_assembly_pkg(
  258. name = "google-cloud-pubsub-v1-ruby",
  259. deps = [
  260. ":pubsub_ruby_gapic",
  261. ":pubsub_ruby_grpc",
  262. ":pubsub_ruby_proto",
  263. ],
  264. )
  265. ##############################################################################
  266. # C#
  267. ##############################################################################
  268. load(
  269. "@com_google_googleapis_imports//:imports.bzl",
  270. "csharp_gapic_assembly_pkg",
  271. "csharp_gapic_library",
  272. "csharp_grpc_library",
  273. "csharp_proto_library",
  274. )
  275. csharp_proto_library(
  276. name = "pubsub_csharp_proto",
  277. deps = [":pubsub_proto"],
  278. )
  279. csharp_grpc_library(
  280. name = "pubsub_csharp_grpc",
  281. srcs = [":pubsub_proto"],
  282. deps = [":pubsub_csharp_proto"],
  283. )
  284. csharp_gapic_library(
  285. name = "pubsub_csharp_gapic",
  286. srcs = [":pubsub_proto_with_info"],
  287. grpc_service_config = "pubsub_grpc_service_config.json",
  288. deps = [
  289. ":pubsub_csharp_grpc",
  290. ":pubsub_csharp_proto",
  291. ],
  292. )
  293. # Open Source Packages
  294. csharp_gapic_assembly_pkg(
  295. name = "google-cloud-pubsub-v1-csharp",
  296. deps = [
  297. ":pubsub_csharp_gapic",
  298. ":pubsub_csharp_grpc",
  299. ":pubsub_csharp_proto",
  300. ],
  301. )
  302. ##############################################################################
  303. # C++
  304. ##############################################################################
  305. load(
  306. "@com_google_googleapis_imports//:imports.bzl",
  307. "cc_grpc_library",
  308. "cc_proto_library",
  309. )
  310. cc_proto_library(
  311. name = "pubsub_cc_proto",
  312. deps = [":pubsub_proto"],
  313. )
  314. cc_grpc_library(
  315. name = "pubsub_cc_grpc",
  316. srcs = [":pubsub_proto"],
  317. grpc_only = True,
  318. deps = [":pubsub_cc_proto"],
  319. )