BUILD.bazel 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  1. # Copyright 2020 Google LLC
  2. #
  3. # Licensed under the Apache License, Version 2.0 (the "License");
  4. # you may not use this file except in compliance with the License.
  5. # You may obtain a copy of the License at
  6. #
  7. # https://www.apache.org/licenses/LICENSE-2.0
  8. #
  9. # Unless required by applicable law or agreed to in writing, software
  10. # distributed under the License is distributed on an "AS IS" BASIS,
  11. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. # See the License for the specific language governing permissions and
  13. # limitations under the License.
  14. package(default_visibility = ["//visibility:public"])
  15. exports_files(["googleads_grpc_service_config.json"] + ["*.yaml"])
  16. ##############################################################################
  17. # Common
  18. ##############################################################################
  19. load("@rules_proto//proto:defs.bzl", "proto_library")
  20. load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info")
  21. proto_library(
  22. name = "googleads_proto",
  23. srcs = [],
  24. deps = [
  25. "//google/ads/googleads/v7/common:common_proto",
  26. "//google/ads/googleads/v7/enums:enums_proto",
  27. "//google/ads/googleads/v7/errors:errors_proto",
  28. "//google/ads/googleads/v7/resources:resources_proto",
  29. "//google/ads/googleads/v7/services:services_proto",
  30. ],
  31. )
  32. proto_library_with_info(
  33. name = "googleads_proto_with_info",
  34. deps = [
  35. ":googleads_proto",
  36. ],
  37. )
  38. ##############################################################################
  39. # Java
  40. ##############################################################################
  41. load(
  42. "@com_google_googleapis_imports//:imports.bzl",
  43. "java_gapic_assembly_gradle_pkg",
  44. "java_gapic_library",
  45. "java_gapic_test",
  46. )
  47. java_gapic_library(
  48. name = "googleads_java_gapic",
  49. srcs = [
  50. ":googleads_proto_with_info",
  51. ],
  52. gapic_yaml = "googleads_gapic.yaml",
  53. grpc_service_config = ":googleads_grpc_service_config.json",
  54. deps = [
  55. "//google/ads/googleads/v7/common:common_java_proto",
  56. "//google/ads/googleads/v7/enums:enums_java_proto",
  57. "//google/ads/googleads/v7/resources:resources_java_proto",
  58. "//google/ads/googleads/v7/services:services_java_grpc",
  59. "//google/ads/googleads/v7/services:services_java_proto",
  60. ],
  61. )
  62. # TODO(ohren): Add more test classes when java_gapic_test is able to run more
  63. # than a single test. Having at least one verifies proper compilation at least.
  64. java_gapic_test(
  65. name = "googleads_java_gapic_suite",
  66. test_classes = [
  67. "com.google.ads.googleads.v7.services.CampaignServiceClientTest",
  68. ],
  69. runtime_deps = [":googleads_java_gapic_test"],
  70. )
  71. java_gapic_assembly_gradle_pkg(
  72. name = "googleads-java",
  73. deps = [
  74. ":googleads_java_gapic",
  75. "//google/ads/googleads/v7:googleads_proto",
  76. "//google/ads/googleads/v7/common:common_java_proto",
  77. "//google/ads/googleads/v7/enums:enums_java_proto",
  78. "//google/ads/googleads/v7/errors:errors_java_proto",
  79. "//google/ads/googleads/v7/resources:resources_java_proto",
  80. "//google/ads/googleads/v7/services:services_java_grpc",
  81. "//google/ads/googleads/v7/services:services_java_proto",
  82. ],
  83. )
  84. ##############################################################################
  85. # PHP
  86. ##############################################################################
  87. load(
  88. "@com_google_googleapis_imports//:imports.bzl",
  89. "php_gapic_assembly_pkg",
  90. "php_gapic_library",
  91. "php_grpc_library",
  92. "php_proto_library",
  93. )
  94. php_proto_library(
  95. name = "googleads_php_proto",
  96. plugin_args = ["aggregate_metadata=google.ads.googleads"],
  97. deps = [":googleads_proto"],
  98. )
  99. php_grpc_library(
  100. name = "googleads_php_grpc",
  101. srcs = [":googleads_proto"],
  102. deps = [":googleads_php_proto"],
  103. )
  104. php_gapic_library(
  105. name = "googleads_php_gapic",
  106. srcs = [":googleads_proto"],
  107. gapic_yaml = "googleads_gapic.yaml",
  108. grpc_service_config = "googleads_grpc_service_config.json",
  109. service_yaml = "googleads_v7.yaml",
  110. deps = [
  111. ":googleads_php_grpc",
  112. ":googleads_php_proto",
  113. ],
  114. )
  115. php_gapic_assembly_pkg(
  116. name = "googleads-php",
  117. deps = [
  118. ":googleads_php_gapic",
  119. ":googleads_php_grpc",
  120. ":googleads_php_proto",
  121. ],
  122. )
  123. ##############################################################################
  124. # C#
  125. ##############################################################################
  126. load("@gapic_generator_csharp//rules_csharp_gapic:csharp_gapic.bzl", "csharp_gapic_library")
  127. load("@gapic_generator_csharp//rules_csharp_gapic:csharp_gapic_pkg.bzl", "csharp_gapic_assembly_pkg")
  128. csharp_gapic_library(
  129. name = "googleads_csharp_gapic",
  130. srcs = [
  131. ":googleads_proto_with_info",
  132. ],
  133. grpc_service_config = "googleads_grpc_service_config.json",
  134. deps = [
  135. "//google/ads/googleads/v7/services:services_csharp_grpc",
  136. ],
  137. )
  138. csharp_gapic_assembly_pkg(
  139. name = "googleads-csharp",
  140. deps = [
  141. ":googleads_csharp_gapic",
  142. "//google/ads/googleads/v7/common:common_csharp_proto",
  143. "//google/ads/googleads/v7/enums:enums_csharp_proto",
  144. "//google/ads/googleads/v7/errors:errors_csharp_proto",
  145. "//google/ads/googleads/v7/resources:resources_csharp_proto",
  146. "//google/ads/googleads/v7/services:services_csharp_grpc",
  147. "//google/ads/googleads/v7/services:services_csharp_proto",
  148. ],
  149. )
  150. ##############################################################################
  151. # Ruby
  152. ##############################################################################
  153. load(
  154. "@com_google_googleapis_imports//:imports.bzl",
  155. "ruby_ads_gapic_library",
  156. "ruby_gapic_assembly_pkg",
  157. )
  158. ruby_ads_gapic_library(
  159. name = "googleads_ruby_gapic",
  160. srcs = ["googleads_proto_with_info"],
  161. extra_protoc_parameters = [
  162. ":gem.:name=google-ads-googleads",
  163. ":defaults.:service.:default_host=googleads.googleapis.com",
  164. ":overrides.:namespace.Googleads=GoogleAds",
  165. ],
  166. grpc_service_config = "googleads_grpc_service_config.json",
  167. )
  168. ruby_gapic_assembly_pkg(
  169. name = "googleads-ruby",
  170. deps = [
  171. ":googleads_ruby_gapic",
  172. "//google/ads/googleads/v7/common:common_ruby_proto",
  173. "//google/ads/googleads/v7/enums:enums_ruby_proto",
  174. "//google/ads/googleads/v7/errors:errors_ruby_proto",
  175. "//google/ads/googleads/v7/resources:resources_ruby_proto",
  176. "//google/ads/googleads/v7/services:services_ruby_grpc",
  177. "//google/ads/googleads/v7/services:services_ruby_proto",
  178. ],
  179. )
  180. ##############################################################################
  181. # Python
  182. ##############################################################################
  183. load(
  184. "@com_google_googleapis_imports//:imports.bzl",
  185. "py_gapic_assembly_pkg",
  186. "py_gapic_library",
  187. )
  188. py_gapic_library(
  189. name = "googleads_py_gapic",
  190. srcs = [":googleads_proto_with_info"],
  191. grpc_service_config = "googleads_grpc_service_config.json",
  192. opt_args = [
  193. "old-naming",
  194. "lazy-import",
  195. "python-gapic-name=googleads",
  196. "python-gapic-templates=ads-templates",
  197. "warehouse-package-name=google-ads",
  198. ],
  199. )
  200. py_gapic_assembly_pkg(
  201. name = "googleads-py",
  202. deps = [
  203. ":googleads_py_gapic",
  204. "//google/ads/googleads/v7/common:common_py_proto",
  205. "//google/ads/googleads/v7/enums:enums_py_proto",
  206. "//google/ads/googleads/v7/errors:errors_py_proto",
  207. "//google/ads/googleads/v7/resources:resources_py_proto",
  208. "//google/ads/googleads/v7/services:services_py_grpc",
  209. "//google/ads/googleads/v7/services:services_py_proto",
  210. ],
  211. )
  212. ##############################################################################
  213. # Node.js
  214. ##############################################################################
  215. load(
  216. "@com_google_googleapis_imports//:imports.bzl",
  217. "nodejs_gapic_assembly_pkg",
  218. "nodejs_gapic_library",
  219. )
  220. nodejs_gapic_library(
  221. name = "googleads_nodejs_gapic",
  222. package_name = "google-ads",
  223. src = ":googleads_proto_with_info",
  224. extra_protoc_parameters = ["metadata"],
  225. grpc_service_config = "googleads_grpc_service_config.json",
  226. main_service = "GoogleAdsService",
  227. package = "google.ads.googleads.v7",
  228. service_yaml = "googleads_v7.yaml",
  229. legacy_proto_load = True,
  230. deps = [],
  231. )
  232. nodejs_gapic_assembly_pkg(
  233. name = "googleads-nodejs",
  234. deps = [
  235. ":googleads_nodejs_gapic",
  236. ":googleads_proto",
  237. ],
  238. )