WORKSPACE 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370
  1. workspace(
  2. name = "com_google_googleapis",
  3. # This tells Bazel that the node_modules directory is special and
  4. # is managed by the package manager.
  5. # https://bazelbuild.github.io/rules_nodejs/install.html
  6. managed_directories = {"@npm": ["@gapic_generator_typescript//:node_modules"]},
  7. )
  8. load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
  9. ##############################################################################
  10. # Common
  11. ##############################################################################
  12. load("//:repository_rules.bzl", "switched_rules_by_language")
  13. switched_rules_by_language(
  14. name = "com_google_googleapis_imports",
  15. cc = True,
  16. csharp = True,
  17. gapic = True,
  18. go = True,
  19. grpc = True,
  20. java = True,
  21. nodejs = True,
  22. php = True,
  23. python = True,
  24. ruby = True,
  25. )
  26. # Protobuf depends on very old version of bazel_skylib (forward compatible with the new one).
  27. # Importing older version of bazel_skylib first (this is one of the things that protobuf_deps() call
  28. # below will do) breaks the grpc repositories, so importing the proper version explicitly before
  29. # everything else.
  30. http_archive(
  31. name = "bazel_skylib",
  32. urls = ["https://github.com/bazelbuild/bazel-skylib/releases/download/0.9.0/bazel_skylib-0.9.0.tar.gz"],
  33. )
  34. # Python rules should go early in the dependencies list, otherwise a wrong
  35. # version of the library will be selected as a transitive dependency of gRPC.
  36. http_archive(
  37. name = "rules_python",
  38. strip_prefix = "rules_python-0.1.0",
  39. url = "https://github.com/bazelbuild/rules_python/archive/0.1.0.tar.gz",
  40. )
  41. http_archive(
  42. name = "com_google_protobuf",
  43. sha256 = "b10bf4e2d1a7586f54e64a5d9e7837e5188fc75ae69e36f215eb01def4f9721b",
  44. strip_prefix = "protobuf-3.15.3",
  45. urls = ["https://github.com/protocolbuffers/protobuf/archive/v3.15.3.tar.gz"],
  46. )
  47. load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps")
  48. protobuf_deps()
  49. http_archive(
  50. name = "rules_proto",
  51. sha256 = "602e7161d9195e50246177e7c55b2f39950a9cf7366f74ed5f22fd45750cd208",
  52. strip_prefix = "rules_proto-97d8af4dc474595af3900dd85cb3a29ad28cc313",
  53. urls = [
  54. "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz",
  55. "https://github.com/bazelbuild/rules_proto/archive/97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz",
  56. ],
  57. )
  58. load("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies", "rules_proto_toolchains")
  59. rules_proto_dependencies()
  60. rules_proto_toolchains()
  61. # rules_go (support Golang under bazel)
  62. # This is not in the Go section because we override the same, older dependency brought in by gRPC.
  63. # TODO(ndietz): move this back to the Go section if gRPC is updated per https://github.com/grpc/grpc/issues/22172
  64. #
  65. # rules_go cannot be updated beyond v0.24.x because in v0.25.x the linker warnings regarding multiple copies of the same package
  66. # became errors. Until rules_go is migrated to use the go_proto_library targets defined in here instead of in go-genproto, we cannot
  67. # update this beyong v0.24.x.
  68. # TODO(ndietz): https://github.com/bazelbuild/rules_go/issues/1986
  69. http_archive(
  70. name = "io_bazel_rules_go",
  71. sha256 = "dbf5a9ef855684f84cac2e7ae7886c5a001d4f66ae23f6904da0faaaef0d61fc",
  72. urls = [
  73. "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.24.11/rules_go-v0.24.11.tar.gz",
  74. "https://github.com/bazelbuild/rules_go/releases/download/v0.24.11/rules_go-v0.24.11.tar.gz",
  75. ],
  76. )
  77. # bazel-gazelle (support Golang under bazel)
  78. http_archive(
  79. name = "bazel_gazelle",
  80. sha256 = "b85f48fa105c4403326e9525ad2b2cc437babaa6e15a3fc0b1dbab0ab064bc7c",
  81. urls = [
  82. "https://storage.googleapis.com/bazel-mirror/github.com/bazelbuild/bazel-gazelle/releases/download/v0.22.2/bazel-gazelle-v0.22.2.tar.gz",
  83. "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.22.2/bazel-gazelle-v0.22.2.tar.gz",
  84. ],
  85. )
  86. load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
  87. load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies", "go_repository")
  88. # Override the go-genproto dependency to enable use of GapicMetadata types.
  89. #
  90. # TODO(noahdietz): remove with next rules_go release.
  91. # https://github.com/googleapis/gapic-generator-go/issues/529
  92. go_repository(
  93. name = "org_golang_google_genproto",
  94. build_file_proto_mode = "disable_global",
  95. importpath = "google.golang.org/genproto",
  96. sum = "h1:hcskBH5qZCOa7WpTUFUFvoebnSFZBYpjykLtjIp9DVk=",
  97. version = "v0.0.0-20210303154014-9728d6b83eeb",
  98. )
  99. go_rules_dependencies()
  100. go_register_toolchains()
  101. gazelle_dependencies()
  102. _rules_gapic_version = "0.5.5"
  103. http_archive(
  104. name = "rules_gapic",
  105. strip_prefix = "rules_gapic-%s" % _rules_gapic_version,
  106. urls = ["https://github.com/googleapis/rules_gapic/archive/v%s.tar.gz" % _rules_gapic_version],
  107. )
  108. load("@rules_gapic//:repositories.bzl", "rules_gapic_repositories")
  109. rules_gapic_repositories()
  110. ##############################################################################
  111. # C++
  112. ##############################################################################
  113. # C++ must go before everything else, since the key dependencies (protobuf and gRPC)
  114. # are C++ repositories and they have the highest chance to have the correct versions of the
  115. # transitive dependencies (for those dependencies which are shared by many other repositories
  116. # imported in this workspace).
  117. #
  118. # Note, even though protobuf and gRPC are mostly written in C++, they are used to generate stuff
  119. # for most of the other languages as well, so they can be considered as the core cross-language
  120. # dependencies.
  121. http_archive(
  122. name = "com_github_grpc_grpc",
  123. strip_prefix = "grpc-1.36.4",
  124. urls = ["https://github.com/grpc/grpc/archive/v1.36.4.zip"],
  125. )
  126. load("@com_github_grpc_grpc//bazel:grpc_deps.bzl", "grpc_deps")
  127. grpc_deps()
  128. load("@com_github_grpc_grpc//bazel:grpc_extra_deps.bzl", "grpc_extra_deps")
  129. grpc_extra_deps()
  130. load("@build_bazel_rules_apple//apple:repositories.bzl", "apple_rules_dependencies")
  131. apple_rules_dependencies()
  132. load("@build_bazel_apple_support//lib:repositories.bzl", "apple_support_dependencies")
  133. apple_support_dependencies()
  134. ##############################################################################
  135. # Java
  136. ##############################################################################
  137. _gax_java_version = "1.65.1"
  138. http_archive(
  139. name = "com_google_api_gax_java",
  140. strip_prefix = "gax-java-%s" % _gax_java_version,
  141. urls = ["https://github.com/googleapis/gax-java/archive/v%s.zip" % _gax_java_version],
  142. )
  143. load("@com_google_api_gax_java//:repository_rules.bzl", "com_google_api_gax_java_properties")
  144. com_google_api_gax_java_properties(
  145. name = "com_google_api_gax_java_properties",
  146. file = "@com_google_api_gax_java//:dependencies.properties",
  147. )
  148. load("@com_google_api_gax_java//:repositories.bzl", "com_google_api_gax_java_repositories")
  149. com_google_api_gax_java_repositories()
  150. load("@io_grpc_grpc_java//:repositories.bzl", "grpc_java_repositories")
  151. grpc_java_repositories()
  152. # Java microgenerator.
  153. # Must go AFTER java-gax, since both java gax and gapic-generator are written in java and may conflict.
  154. _gapic_generator_java_version = "1.0.16"
  155. http_archive(
  156. name = "gapic_generator_java",
  157. strip_prefix = "gapic-generator-java-%s" % _gapic_generator_java_version,
  158. urls = ["https://github.com/googleapis/gapic-generator-java/archive/v%s.zip" % _gapic_generator_java_version],
  159. )
  160. load("@gapic_generator_java//:repository_rules.bzl", "gapic_generator_java_properties")
  161. gapic_generator_java_properties(
  162. name = "gapic_generator_java_properties",
  163. file = "@gapic_generator_java//:dependencies.properties",
  164. )
  165. load("@gapic_generator_java//:repositories.bzl", "gapic_generator_java_repositories")
  166. gapic_generator_java_repositories()
  167. ##############################################################################
  168. # Python
  169. ##############################################################################
  170. load("@rules_gapic//python:py_gapic_repositories.bzl", "py_gapic_repositories")
  171. py_gapic_repositories()
  172. load("@rules_python//python:pip.bzl", "pip_repositories")
  173. pip_repositories()
  174. _gapic_generator_python_version = "0.50.5"
  175. http_archive(
  176. name = "gapic_generator_python",
  177. strip_prefix = "gapic-generator-python-%s" % _gapic_generator_python_version,
  178. urls = ["https://github.com/googleapis/gapic-generator-python/archive/v%s.zip" % _gapic_generator_python_version],
  179. )
  180. load(
  181. "@gapic_generator_python//:repositories.bzl",
  182. "gapic_generator_python",
  183. "gapic_generator_register_toolchains",
  184. )
  185. gapic_generator_python()
  186. gapic_generator_register_toolchains()
  187. ##############################################################################
  188. # Go
  189. ##############################################################################
  190. _gapic_generator_go_version = "0.21.2"
  191. http_archive(
  192. name = "com_googleapis_gapic_generator_go",
  193. strip_prefix = "gapic-generator-go-%s" % _gapic_generator_go_version,
  194. urls = ["https://github.com/googleapis/gapic-generator-go/archive/v%s.tar.gz" % _gapic_generator_go_version],
  195. )
  196. load("@com_googleapis_gapic_generator_go//:repositories.bzl", "com_googleapis_gapic_generator_go_repositories")
  197. com_googleapis_gapic_generator_go_repositories()
  198. ##############################################################################
  199. # TypeScript
  200. ##############################################################################
  201. _gapic_generator_typescript_version = "2.1.1"
  202. _gapic_generator_typescript_sha256 = "c4117fedcd726c14af8c6a70c810b25a6bdf2523b43a867bafdf6478c0ac745a"
  203. ### TypeScript generator
  204. http_archive(
  205. name = "gapic_generator_typescript",
  206. sha256 = _gapic_generator_typescript_sha256,
  207. strip_prefix = "gapic-generator-typescript-%s" % _gapic_generator_typescript_version,
  208. urls = ["https://github.com/googleapis/gapic-generator-typescript/archive/v%s.tar.gz" % _gapic_generator_typescript_version],
  209. )
  210. load("@gapic_generator_typescript//:repositories.bzl", "gapic_generator_typescript_repositories")
  211. gapic_generator_typescript_repositories()
  212. load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories", "yarn_install")
  213. node_repositories(
  214. package_json = ["@gapic_generator_typescript//:package.json"],
  215. )
  216. yarn_install(
  217. name = "npm",
  218. package_json = "@gapic_generator_typescript//:package.json",
  219. yarn_lock = "@gapic_generator_typescript//:yarn.lock",
  220. )
  221. ##############################################################################
  222. # PHP
  223. ##############################################################################
  224. load("@rules_gapic//php:php_gapic_repositories.bzl", "php", "php_gapic_repositories")
  225. php(
  226. name = "php",
  227. prebuilt_phps = ["@rules_gapic//php:resources/php-7.1.30_linux_x86_64.tar.gz"],
  228. strip_prefix = "php-7.1.30",
  229. urls = ["https://www.php.net/distributions/php-7.1.30.tar.gz"],
  230. )
  231. php_gapic_repositories()
  232. # PHP micro-generator
  233. _gapic_generator_php_version = "1.0.4"
  234. http_archive(
  235. name = "gapic_generator_php",
  236. strip_prefix = "gapic-generator-php-%s" % _gapic_generator_php_version,
  237. urls = ["https://github.com/googleapis/gapic-generator-php/archive/v%s.zip" % _gapic_generator_php_version],
  238. )
  239. load("@gapic_generator_php//:repositories.bzl", "gapic_generator_php_repositories")
  240. gapic_generator_php_repositories()
  241. ##############################################################################
  242. # C#
  243. ##############################################################################
  244. # Required to access the C#-specific common resources config.
  245. _gax_dotnet_version = "Google.Api.Gax-3.3.0"
  246. _gax_dotnet_sha256 = "c4d31345a226987e8551cb81afa685c9322d3f806077d9f02011676cf00c15d9"
  247. http_archive(
  248. name = "gax_dotnet",
  249. build_file_content = "exports_files([\"Google.Api.Gax/ResourceNames/CommonResourcesConfig.json\"])",
  250. sha256 = _gax_dotnet_sha256,
  251. strip_prefix = "gax-dotnet-%s" % _gax_dotnet_version,
  252. urls = ["https://github.com/googleapis/gax-dotnet/archive/refs/tags/%s.tar.gz" % _gax_dotnet_version],
  253. )
  254. _gapic_generator_csharp_version = "1.3.7"
  255. _gapic_generator_csharp_sha256 = "7f4fca6f9ec3902ae0bd0e6b96593e6370fb035ef0e56dd505f5b411b7138a7a"
  256. http_archive(
  257. name = "gapic_generator_csharp",
  258. sha256 = _gapic_generator_csharp_sha256,
  259. strip_prefix = "gapic-generator-csharp-%s" % _gapic_generator_csharp_version,
  260. urls = ["https://github.com/googleapis/gapic-generator-csharp/archive/refs/tags/v%s.tar.gz" % _gapic_generator_csharp_version],
  261. )
  262. load("@gapic_generator_csharp//:repositories.bzl", "gapic_generator_csharp_repositories")
  263. gapic_generator_csharp_repositories()
  264. ##############################################################################
  265. # Ruby
  266. ##############################################################################
  267. _gapic_generator_ruby_version = "v0.9.2"
  268. _gapic_generator_ruby_sha256 = "d4295868bf097a78ac4c2f3afcb7dad540d00a9acb782508ff252be228944809"
  269. http_archive(
  270. name = "gapic_generator_ruby",
  271. sha256 = _gapic_generator_ruby_sha256,
  272. strip_prefix = "gapic-generator-ruby-gapic-generator-%s" % _gapic_generator_ruby_version,
  273. urls = ["https://github.com/googleapis/gapic-generator-ruby/archive/refs/tags/gapic-generator/%s.tar.gz" % _gapic_generator_ruby_version],
  274. )
  275. load("@gapic_generator_ruby//rules_ruby_gapic:repositories.bzl", "gapic_generator_ruby_repositories")
  276. gapic_generator_ruby_repositories()