• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1"""Loads the dependencies necessary for the external repositories defined in grpc_deps.bzl."""
2
3load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps")
4load("@upb//bazel:workspace_deps.bzl", "upb_deps")
5load("@envoy_api//bazel:repositories.bzl", "api_dependencies")
6load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
7load("@build_bazel_rules_apple//apple:repositories.bzl", "apple_rules_dependencies")
8load("@build_bazel_apple_support//lib:repositories.bzl", "apple_support_dependencies")
9load("@com_google_googleapis//:repository_rules.bzl", "switched_rules_by_language")
10
11def grpc_extra_deps(ignore_version_differences = False):
12    """Loads the extra dependencies.
13
14    These are necessary for using the external repositories defined in
15    grpc_deps.bzl. Projects that depend on gRPC as an external repository need
16    to call both grpc_deps and grpc_extra_deps, if they have not already loaded
17    the extra dependencies. For example, they can do the following in their
18    WORKSPACE
19    ```
20    load("@com_github_grpc_grpc//bazel:grpc_deps.bzl", "grpc_deps", "grpc_test_only_deps")
21    grpc_deps()
22
23    grpc_test_only_deps()
24
25    load("@com_github_grpc_grpc//bazel:grpc_extra_deps.bzl", "grpc_extra_deps")
26
27    grpc_extra_deps()
28    ```
29    """
30    protobuf_deps()
31
32    upb_deps()
33
34    api_dependencies()
35
36    go_rules_dependencies()
37    go_register_toolchains()
38
39    apple_rules_dependencies(ignore_version_differences = ignore_version_differences)
40
41    apple_support_dependencies()
42
43    # Initialize Google APIs with only C++ and Python targets
44    switched_rules_by_language(
45        name = "com_google_googleapis_imports",
46        cc = True,
47        grpc = True,
48        python = True,
49    )
50