xref: /aosp_15_r20/external/grpc-grpc/WORKSPACE (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1workspace(name = "com_github_grpc_grpc")
2
3load("//bazel:grpc_deps.bzl", "grpc_deps", "grpc_test_only_deps")
4
5grpc_deps()
6
7grpc_test_only_deps()
8
9load("//bazel:grpc_extra_deps.bzl", "grpc_extra_deps")
10
11grpc_extra_deps()
12
13load("@bazel_toolchains//rules/exec_properties:exec_properties.bzl", "create_rbe_exec_properties_dict", "custom_exec_properties")
14
15custom_exec_properties(
16    name = "grpc_custom_exec_properties",
17    constants = {
18        "LARGE_MACHINE": create_rbe_exec_properties_dict(
19            labels = {
20                "os": "ubuntu",
21                "machine_size": "large",
22            },
23        ),
24    },
25)
26
27load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
28
29http_archive(
30    name = "platforms",
31    sha256 = "8150406605389ececb6da07cbcb509d5637a3ab9a24bc69b1101531367d89d74",
32    urls = ["https://github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz"],
33)
34
35RULES_ANDROID_NDK_COMMIT = "010f4f17dd13a8baaaacc28ba6c8c2c75f54c68b"
36
37RULES_ANDROID_NDK_SHA = "2ab6a97748772f289331d75caaaee0593825935d1d9d982231a437fb8ab5a14d"
38
39http_archive(
40    name = "rules_android_ndk",
41    sha256 = RULES_ANDROID_NDK_SHA,
42    strip_prefix = "rules_android_ndk-%s" % RULES_ANDROID_NDK_COMMIT,
43    url = "https://github.com/bazelbuild/rules_android_ndk/archive/%s.zip" % RULES_ANDROID_NDK_COMMIT,
44)
45
46android_sdk_repository(
47    name = "androidsdk",
48    build_tools_version = "34.0.0",
49)
50
51load("@rules_android_ndk//:rules.bzl", "android_ndk_repository")
52
53android_ndk_repository(name = "androidndk")
54
55# Note that we intentionally avoid calling `register_toolchains("@androidndk//:all")`
56# here, because the toolchain rule fails when $ANDROID_NDK_HOME is not set.
57# Use `--extra_toolchains=@androidndk//:all` to manually register it when building for Android.
58
59# Prevents bazel's '...' expansion from including the following folder.
60# This is required because the BUILD file in the following folder
61# will trigger bazel failure when Android SDK is not configured.
62# The targets in the following folder need to be included in APK and will
63# be invoked by binder transport implementation through JNI.
64local_repository(
65    name = "binder_transport_android_helper",
66    path = "src/core/ext/transport/binder/java",
67)
68
69# Prevents bazel's '...' expansion from including the following folder.
70# This is required to avoid triggering "Unable to find package for @rules_fuzzing//fuzzing:cc_defs.bzl"
71# error.
72local_repository(
73    name = "ignore_third_party_utf8_range_subtree",
74    path = "third_party/utf8_range",
75)
76
77load("@rules_python//python:pip.bzl", "pip_parse")
78
79pip_parse(
80    name = "grpc_python_dependencies",
81    requirements_lock = "@com_github_grpc_grpc//:requirements.bazel.txt",
82)
83
84load("@grpc_python_dependencies//:requirements.bzl", "install_deps")
85
86install_deps()
87
88load("@com_google_protobuf//bazel:system_python.bzl", "system_python")
89
90system_python(
91    name = "system_python",
92    minimum_python_version = "3.7",
93)
94
95load("@system_python//:pip.bzl", system_pip_parse = "pip_parse")
96
97system_pip_parse(
98    name = "pip_deps",
99    requirements = "@com_google_protobuf//python:requirements.txt",
100    requirements_overrides = {
101        "3.11": "@com_google_protobuf//python:requirements_311.txt",
102    },
103)
104
105http_archive(
106    name = "build_bazel_rules_swift",
107    sha256 = "bf2861de6bf75115288468f340b0c4609cc99cc1ccc7668f0f71adfd853eedb3",
108    url = "https://github.com/bazelbuild/rules_swift/releases/download/1.7.1/rules_swift.1.7.1.tar.gz",
109)
110
111load(
112    "@build_bazel_apple_support//lib:repositories.bzl",
113    "apple_support_dependencies",
114)
115
116apple_support_dependencies()
117
118load(
119    "@build_bazel_rules_swift//swift:repositories.bzl",
120    "swift_rules_dependencies",
121)
122
123swift_rules_dependencies()
124
125# This loads the libpfm transitive dependency.
126# See https://github.com/google/benchmark/pull/1520
127load("@com_github_google_benchmark//:bazel/benchmark_deps.bzl", "benchmark_deps")
128
129benchmark_deps()
130
131load("@io_opentelemetry_cpp//bazel:repository.bzl", "opentelemetry_cpp_deps")
132
133opentelemetry_cpp_deps()
134
135load("@io_opentelemetry_cpp//bazel:extra_deps.bzl", "opentelemetry_extra_deps")
136
137opentelemetry_extra_deps()
138
139# TODO: Enable below once https://github.com/bazel-xcode/PodToBUILD/issues/232 is resolved
140#
141#http_archive(
142#    name = "rules_pods",
143#    urls = ["https://github.com/pinterest/PodToBUILD/releases/download/4.1.0-412495/PodToBUILD.zip"],
144#)
145#
146#load(
147#    "@rules_pods//BazelExtensions:workspace.bzl",
148#    "new_pod_repository",
149#)
150#
151#new_pod_repository(
152#    name = "CronetFramework",
153#    is_dynamic_framework = True,
154#    podspec_url = "https://raw.githubusercontent.com/CocoaPods/Specs/master/Specs/2/e/1/CronetFramework/0.0.5/CronetFramework.podspec.json",
155#    url = "https://storage.googleapis.com/grpc-precompiled-binaries/cronet/Cronet.framework-v0.0.5.zip",
156#)
157