xref: /aosp_15_r20/external/tensorflow/tensorflow/workspace2.bzl (revision b6fb3261f9314811a0f4371741dbb8839866f948)
1"""TensorFlow workspace initialization. Consult the WORKSPACE on how to use it."""
2
3# Import third party config rules.
4load("//tensorflow:version_check.bzl", "check_bazel_version_at_least")
5load("//third_party/gpus:cuda_configure.bzl", "cuda_configure")
6load("//third_party/gpus:rocm_configure.bzl", "rocm_configure")
7load("//third_party/tensorrt:tensorrt_configure.bzl", "tensorrt_configure")
8load("//third_party/nccl:nccl_configure.bzl", "nccl_configure")
9load("//third_party/git:git_configure.bzl", "git_configure")
10load("//third_party/py:python_configure.bzl", "python_configure")
11load("//third_party/systemlibs:syslibs_configure.bzl", "syslibs_configure")
12load("//tensorflow/tools/toolchains:cpus/arm/arm_compiler_configure.bzl", "arm_compiler_configure")
13load("//tensorflow/tools/toolchains/embedded/arm-linux:arm_linux_toolchain_configure.bzl", "arm_linux_toolchain_configure")
14load("//third_party:repo.bzl", "tf_http_archive", "tf_mirror_urls")
15load("//third_party/clang_toolchain:cc_configure_clang.bzl", "cc_download_clang_toolchain")
16load("//tensorflow/tools/def_file_filter:def_file_filter_configure.bzl", "def_file_filter_configure")
17load("//third_party/llvm:setup.bzl", "llvm_setup")
18
19# Import third party repository rules. See go/tfbr-thirdparty.
20load("//third_party/FP16:workspace.bzl", FP16 = "repo")
21load("//third_party/absl:workspace.bzl", absl = "repo")
22load("//third_party/benchmark:workspace.bzl", benchmark = "repo")
23load("//third_party/dlpack:workspace.bzl", dlpack = "repo")
24load("//third_party/eigen3:workspace.bzl", eigen3 = "repo")
25load("//third_party/farmhash:workspace.bzl", farmhash = "repo")
26load("//third_party/flatbuffers:workspace.bzl", flatbuffers = "repo")
27load("//third_party/gemmlowp:workspace.bzl", gemmlowp = "repo")
28load("//third_party/hexagon:workspace.bzl", hexagon_nn = "repo")
29load("//third_party/highwayhash:workspace.bzl", highwayhash = "repo")
30load("//third_party/hwloc:workspace.bzl", hwloc = "repo")
31load("//third_party/icu:workspace.bzl", icu = "repo")
32load("//third_party/jpeg:workspace.bzl", jpeg = "repo")
33load("//third_party/libprotobuf_mutator:workspace.bzl", libprotobuf_mutator = "repo")
34load("//third_party/nasm:workspace.bzl", nasm = "repo")
35load("//third_party/pybind11_abseil:workspace.bzl", pybind11_abseil = "repo")
36load("//third_party/opencl_headers:workspace.bzl", opencl_headers = "repo")
37load("//third_party/kissfft:workspace.bzl", kissfft = "repo")
38load("//third_party/pasta:workspace.bzl", pasta = "repo")
39load("//third_party/psimd:workspace.bzl", psimd = "repo")
40load("//third_party/ruy:workspace.bzl", ruy = "repo")
41load("//third_party/sobol_data:workspace.bzl", sobol_data = "repo")
42load("//third_party/vulkan_headers:workspace.bzl", vulkan_headers = "repo")
43load("//third_party/tensorrt:workspace.bzl", tensorrt = "repo")
44
45# Import external repository rules.
46load("@bazel_tools//tools/build_defs/repo:java.bzl", "java_import_external")
47load("@io_bazel_rules_closure//closure:defs.bzl", "filegroup_external")
48load("@tf_runtime//:dependencies.bzl", "tfrt_dependencies")
49load("//tensorflow/tools/toolchains/remote_config:configs.bzl", "initialize_rbe_configs")
50load("//tensorflow/tools/toolchains/remote:configure.bzl", "remote_execution_configure")
51load("//tensorflow/tools/toolchains/clang6:repo.bzl", "clang6_configure")
52
53def _initialize_third_party():
54    """ Load third party repositories.  See above load() statements. """
55    FP16()
56    absl()
57    benchmark()
58    dlpack()
59    eigen3()
60    farmhash()
61    flatbuffers()
62    gemmlowp()
63    hexagon_nn()
64    highwayhash()
65    hwloc()
66    icu()
67    jpeg()
68    kissfft()
69    libprotobuf_mutator()
70    nasm()
71    opencl_headers()
72    pasta()
73    psimd()
74    pybind11_abseil()
75    ruy()
76    sobol_data()
77    vulkan_headers()
78    tensorrt()
79
80# Toolchains & platforms required by Tensorflow to build.
81def _tf_toolchains():
82    native.register_execution_platforms("@local_execution_config_platform//:platform")
83    native.register_toolchains("@local_execution_config_python//:py_toolchain")
84
85    # Loads all external repos to configure RBE builds.
86    initialize_rbe_configs()
87
88    # Note that we check the minimum bazel version in WORKSPACE.
89    clang6_configure(name = "local_config_clang6")
90    cc_download_clang_toolchain(name = "local_config_download_clang")
91    cuda_configure(name = "local_config_cuda")
92    tensorrt_configure(name = "local_config_tensorrt")
93    nccl_configure(name = "local_config_nccl")
94    git_configure(name = "local_config_git")
95    syslibs_configure(name = "local_config_syslibs")
96    python_configure(name = "local_config_python")
97    rocm_configure(name = "local_config_rocm")
98    remote_execution_configure(name = "local_config_remote_execution")
99
100    # For windows bazel build
101    # TODO: Remove def file filter when TensorFlow can export symbols properly on Windows.
102    def_file_filter_configure(name = "local_config_def_file_filter")
103
104    # Point //external/local_config_arm_compiler to //external/arm_compiler
105    arm_compiler_configure(
106        name = "local_config_arm_compiler",
107        build_file = "//tensorflow/tools/toolchains/cpus/arm:template.BUILD",
108        remote_config_repo_arm = "../arm_compiler",
109        remote_config_repo_aarch64 = "../aarch64_compiler",
110    )
111
112    # TFLite crossbuild toolchain for embeddeds Linux
113    arm_linux_toolchain_configure(
114        name = "local_config_embedded_arm",
115        build_file = "//tensorflow/tools/toolchains/embedded/arm-linux:template.BUILD",
116        aarch64_repo = "../aarch64_linux_toolchain",
117        armhf_repo = "../armhf_linux_toolchain",
118    )
119
120# Define all external repositories required by TensorFlow
121def _tf_repositories():
122    """All external dependencies for TF builds."""
123
124    # To update any of the dependencies below:
125    # a) update URL and strip_prefix to the new git commit hash
126    # b) get the sha256 hash of the commit by running:
127    #    curl -L <url> | sha256sum
128    # and update the sha256 with the result.
129
130    # LINT.IfChange
131    tf_http_archive(
132        name = "XNNPACK",
133        sha256 = "21cf16fb50c32682b8548cde83933bbd90b884983c50b9db7550002a72a75ad5",
134        strip_prefix = "XNNPACK-8e3d3359f9bec608e09fac1f7054a2a14b1bd73c",
135        urls = tf_mirror_urls("https://github.com/google/XNNPACK/archive/8e3d3359f9bec608e09fac1f7054a2a14b1bd73c.zip"),
136    )
137    # LINT.ThenChange(//tensorflow/lite/tools/cmake/modules/xnnpack.cmake)
138
139    tf_http_archive(
140        name = "FXdiv",
141        sha256 = "3d7b0e9c4c658a84376a1086126be02f9b7f753caa95e009d9ac38d11da444db",
142        strip_prefix = "FXdiv-63058eff77e11aa15bf531df5dd34395ec3017c8",
143        urls = tf_mirror_urls("https://github.com/Maratyszcza/FXdiv/archive/63058eff77e11aa15bf531df5dd34395ec3017c8.zip"),
144    )
145
146    tf_http_archive(
147        name = "pthreadpool",
148        sha256 = "b96413b10dd8edaa4f6c0a60c6cf5ef55eebeef78164d5d69294c8173457f0ec",
149        strip_prefix = "pthreadpool-b8374f80e42010941bda6c85b0e3f1a1bd77a1e0",
150        urls = tf_mirror_urls("https://github.com/Maratyszcza/pthreadpool/archive/b8374f80e42010941bda6c85b0e3f1a1bd77a1e0.zip"),
151    )
152
153    tf_http_archive(
154        name = "clog",
155        strip_prefix = "cpuinfo-5e63739504f0f8e18e941bd63b2d6d42536c7d90",
156        sha256 = "18eca9bc8d9c4ce5496d0d2be9f456d55cbbb5f0639a551ce9c8bac2e84d85fe",
157        urls = tf_mirror_urls("https://github.com/pytorch/cpuinfo/archive/5e63739504f0f8e18e941bd63b2d6d42536c7d90.tar.gz"),
158    )
159
160    tf_http_archive(
161        name = "cpuinfo",
162        strip_prefix = "cpuinfo-5e63739504f0f8e18e941bd63b2d6d42536c7d90",
163        sha256 = "18eca9bc8d9c4ce5496d0d2be9f456d55cbbb5f0639a551ce9c8bac2e84d85fe",
164        urls = tf_mirror_urls("https://github.com/pytorch/cpuinfo/archive/5e63739504f0f8e18e941bd63b2d6d42536c7d90.tar.gz"),
165    )
166
167    tf_http_archive(
168        name = "cudnn_frontend_archive",
169        build_file = "//third_party:cudnn_frontend.BUILD",
170        patch_file = ["//third_party:cudnn_frontend_header_fix.patch"],
171        sha256 = "314569f65d5c7d05fb7e90157a838549db3e2cfb464c80a6a399b39a004690fa",
172        strip_prefix = "cudnn-frontend-0.6.2",
173        urls = tf_mirror_urls("https://github.com/NVIDIA/cudnn-frontend/archive/refs/tags/v0.6.2.zip"),
174    )
175
176    tf_http_archive(
177        name = "mkl_dnn",
178        build_file = "//third_party/mkl_dnn:mkldnn.BUILD",
179        sha256 = "a0211aeb5e7dad50b97fa5dffc1a2fe2fe732572d4164e1ee8750a2ede43fbec",
180        strip_prefix = "oneDNN-0.21.3",
181        urls = tf_mirror_urls("https://github.com/oneapi-src/oneDNN/archive/v0.21.3.tar.gz"),
182    )
183
184    tf_http_archive(
185        name = "mkl_dnn_v1",
186        build_file = "//third_party/mkl_dnn:mkldnn_v1.BUILD",
187        sha256 = "0ff70240378aa26e1fc3edf66d14964e614ef2f9278514182cd43b34ced9af21",
188        strip_prefix = "oneDNN-2.6.1",
189        urls = tf_mirror_urls("https://github.com/oneapi-src/oneDNN/archive/refs/tags/v2.6.1.tar.gz"),
190    )
191
192    tf_http_archive(
193        name = "mkl_dnn_acl_compatible",
194        build_file = "//third_party/mkl_dnn:mkldnn_acl.BUILD",
195        sha256 = "990fdce84197d68064e615d91c182c5bc6baa446348c3c1fe71b7e9a345badc2",
196        strip_prefix = "oneDNN-70d1198de554e61081147c199d661df049233279",
197        urls = tf_mirror_urls("https://github.com/oneapi-src/oneDNN/archive/70d1198de554e61081147c199d661df049233279.tar.gz"),
198    )
199
200    tf_http_archive(
201        name = "compute_library",
202        sha256 = "94e2e9ff87c261a9c9987bc9024c449c48014f7fe707311bdfa76b87f3dda5c5",
203        strip_prefix = "ComputeLibrary-22.05",
204        build_file = "//third_party/compute_library:BUILD",
205        patch_file = ["//third_party/compute_library:compute_library.patch", "//third_party/compute_library:activation_func_correct_args.patch"],
206        urls = tf_mirror_urls("https://github.com/ARM-software/ComputeLibrary/archive/v22.05.tar.gz"),
207    )
208
209    tf_http_archive(
210        name = "arm_compiler",
211        build_file = "//:arm_compiler.BUILD",
212        sha256 = "b9e7d50ffd9996ed18900d041d362c99473b382c0ae049b2fce3290632d2656f",
213        strip_prefix = "rpi-newer-crosstools-eb68350c5c8ec1663b7fe52c742ac4271e3217c5/x64-gcc-6.5.0/arm-rpi-linux-gnueabihf/",
214        urls = tf_mirror_urls("https://github.com/rvagg/rpi-newer-crosstools/archive/eb68350c5c8ec1663b7fe52c742ac4271e3217c5.tar.gz"),
215    )
216
217    tf_http_archive(
218        # This is the latest `aarch64-none-linux-gnu` compiler provided by ARM
219        # See https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads
220        # The archive contains GCC version 9.2.1
221        name = "aarch64_compiler",
222        build_file = "//:arm_compiler.BUILD",
223        sha256 = "8dfe681531f0bd04fb9c53cf3c0a3368c616aa85d48938eebe2b516376e06a66",
224        strip_prefix = "gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu",
225        urls = tf_mirror_urls("https://developer.arm.com/-/media/Files/downloads/gnu-a/9.2-2019.12/binrel/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz"),
226    )
227
228    tf_http_archive(
229        name = "aarch64_linux_toolchain",
230        build_file = "//tensorflow/tools/toolchains/embedded/arm-linux:aarch64-linux-toolchain.BUILD",
231        sha256 = "8ce3e7688a47d8cd2d8e8323f147104ae1c8139520eca50ccf8a7fa933002731",
232        strip_prefix = "gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu",
233        urls = tf_mirror_urls("https://developer.arm.com/-/media/Files/downloads/gnu-a/8.3-2019.03/binrel/gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz"),
234    )
235
236    tf_http_archive(
237        name = "armhf_linux_toolchain",
238        build_file = "//tensorflow/tools/toolchains/embedded/arm-linux:armhf-linux-toolchain.BUILD",
239        sha256 = "d4f6480ecaa99e977e3833cc8a8e1263f9eecd1ce2d022bb548a24c4f32670f5",
240        strip_prefix = "gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf",
241        urls = tf_mirror_urls("https://developer.arm.com/-/media/Files/downloads/gnu-a/8.3-2019.03/binrel/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz"),
242    )
243
244    tf_http_archive(
245        name = "libxsmm_archive",
246        build_file = "//third_party:libxsmm.BUILD",
247        sha256 = "8b642127880e92e8a75400125307724635ecdf4020ca4481e5efe7640451bb92",
248        strip_prefix = "libxsmm-1.17",
249        urls = tf_mirror_urls("https://github.com/libxsmm/libxsmm/archive/refs/tags/1.17.tar.gz"),
250    )
251
252    tf_http_archive(
253        name = "com_googlesource_code_re2",
254        sha256 = "b90430b2a9240df4459108b3e291be80ae92c68a47bc06ef2dc419c5724de061",
255        strip_prefix = "re2-a276a8c738735a0fe45a6ee590fe2df69bcf4502",
256        system_build_file = "//third_party/systemlibs:re2.BUILD",
257        urls = tf_mirror_urls("https://github.com/google/re2/archive/a276a8c738735a0fe45a6ee590fe2df69bcf4502.tar.gz"),
258    )
259
260    tf_http_archive(
261        name = "com_github_google_crc32c",
262        sha256 = "6b3b1d861bb8307658b2407bc7a4c59e566855ef5368a60b35c893551e4788e9",
263        build_file = "@com_github_googlecloudplatform_google_cloud_cpp//bazel:crc32c.BUILD",
264        strip_prefix = "crc32c-1.0.6",
265        urls = tf_mirror_urls("https://github.com/google/crc32c/archive/1.0.6.tar.gz"),
266    )
267
268    tf_http_archive(
269        name = "com_github_googlecloudplatform_google_cloud_cpp",
270        sha256 = "ff82045b9491f0d880fc8e5c83fd9542eafb156dcac9ff8c6209ced66ed2a7f0",
271        strip_prefix = "google-cloud-cpp-1.17.1",
272        repo_mapping = {
273            "@com_github_curl_curl": "@curl",
274            "@com_github_nlohmann_json": "@nlohmann_json_lib",
275        },
276        system_build_file = "//third_party/systemlibs:google_cloud_cpp.BUILD",
277        system_link_files = {
278            "//third_party/systemlibs:google_cloud_cpp.google.cloud.bigtable.BUILD": "google/cloud/bigtable/BUILD",
279        },
280        urls = tf_mirror_urls("https://github.com/googleapis/google-cloud-cpp/archive/v1.17.1.tar.gz"),
281    )
282
283    tf_http_archive(
284        name = "com_github_googlecloudplatform_tensorflow_gcp_tools",
285        sha256 = "5e9ebe17eaa2895eb7f77fefbf52deeda7c4b63f5a616916b823eb74f3a0c542",
286        strip_prefix = "tensorflow-gcp-tools-2643d8caeba6ca2a6a0b46bb123953cb95b7e7d5",
287        urls = tf_mirror_urls("https://github.com/GoogleCloudPlatform/tensorflow-gcp-tools/archive/2643d8caeba6ca2a6a0b46bb123953cb95b7e7d5.tar.gz"),
288    )
289
290    tf_http_archive(
291        name = "com_google_googleapis",
292        build_file = "//third_party/googleapis:googleapis.BUILD",
293        sha256 = "249d83abc5d50bf372c35c49d77f900bff022b2c21eb73aa8da1458b6ac401fc",
294        strip_prefix = "googleapis-6b3fdcea8bc5398be4e7e9930c693f0ea09316a0",
295        urls = tf_mirror_urls("https://github.com/googleapis/googleapis/archive/6b3fdcea8bc5398be4e7e9930c693f0ea09316a0.tar.gz"),
296    )
297
298    tf_http_archive(
299        name = "png",
300        build_file = "//third_party:png.BUILD",
301        patch_file = ["//third_party:png_fix_rpi.patch"],
302        sha256 = "ca74a0dace179a8422187671aee97dd3892b53e168627145271cad5b5ac81307",
303        strip_prefix = "libpng-1.6.37",
304        system_build_file = "//third_party/systemlibs:png.BUILD",
305        urls = tf_mirror_urls("https://github.com/glennrp/libpng/archive/v1.6.37.tar.gz"),
306    )
307
308    tf_http_archive(
309        name = "org_sqlite",
310        build_file = "//third_party:sqlite.BUILD",
311        sha256 = "87775784f8b22d0d0f1d7811870d39feaa7896319c7c20b849a4181c5a50609b",
312        strip_prefix = "sqlite-amalgamation-3390200",
313        system_build_file = "//third_party/systemlibs:sqlite.BUILD",
314        urls = tf_mirror_urls("https://www.sqlite.org/2022/sqlite-amalgamation-3390200.zip"),
315    )
316
317    tf_http_archive(
318        name = "gif",
319        build_file = "//third_party:gif.BUILD",
320        patch_file = ["//third_party:gif_fix_strtok_r.patch"],
321        sha256 = "31da5562f44c5f15d63340a09a4fd62b48c45620cd302f77a6d9acf0077879bd",
322        strip_prefix = "giflib-5.2.1",
323        system_build_file = "//third_party/systemlibs:gif.BUILD",
324        urls = tf_mirror_urls("https://pilotfiber.dl.sourceforge.net/project/giflib/giflib-5.2.1.tar.gz"),
325    )
326
327    tf_http_archive(
328        name = "six_archive",
329        build_file = "//third_party:six.BUILD",
330        sha256 = "1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
331        strip_prefix = "six-1.16.0",
332        system_build_file = "//third_party/systemlibs:six.BUILD",
333        urls = tf_mirror_urls("https://pypi.python.org/packages/source/s/six/six-1.16.0.tar.gz"),
334    )
335
336    tf_http_archive(
337        name = "astor_archive",
338        build_file = "//third_party:astor.BUILD",
339        sha256 = "95c30d87a6c2cf89aa628b87398466840f0ad8652f88eb173125a6df8533fb8d",
340        strip_prefix = "astor-0.7.1",
341        system_build_file = "//third_party/systemlibs:astor.BUILD",
342        urls = tf_mirror_urls("https://pypi.python.org/packages/source/a/astor/astor-0.7.1.tar.gz"),
343    )
344
345    tf_http_archive(
346        name = "astunparse_archive",
347        build_file = "//third_party:astunparse.BUILD",
348        sha256 = "5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872",
349        strip_prefix = "astunparse-1.6.3/lib",
350        system_build_file = "//third_party/systemlibs:astunparse.BUILD",
351        urls = tf_mirror_urls("https://files.pythonhosted.org/packages/f3/af/4182184d3c338792894f34a62672919db7ca008c89abee9b564dd34d8029/astunparse-1.6.3.tar.gz"),
352    )
353
354    filegroup_external(
355        name = "astunparse_license",
356        licenses = ["notice"],  # PSFL
357        sha256_urls = {
358            "92fc0e4f4fa9460558eedf3412b988d433a2dcbb3a9c45402a145a4fab8a6ac6": tf_mirror_urls("https://raw.githubusercontent.com/simonpercivall/astunparse/v1.6.2/LICENSE"),
359        },
360    )
361
362    tf_http_archive(
363        name = "functools32_archive",
364        build_file = "//third_party:functools32.BUILD",
365        sha256 = "f6253dfbe0538ad2e387bd8fdfd9293c925d63553f5813c4e587745416501e6d",
366        strip_prefix = "functools32-3.2.3-2",
367        system_build_file = "//third_party/systemlibs:functools32.BUILD",
368        urls = tf_mirror_urls("https://pypi.python.org/packages/c5/60/6ac26ad05857c601308d8fb9e87fa36d0ebf889423f47c3502ef034365db/functools32-3.2.3-2.tar.gz"),
369    )
370
371    tf_http_archive(
372        name = "gast_archive",
373        build_file = "//third_party:gast.BUILD",
374        sha256 = "40feb7b8b8434785585ab224d1568b857edb18297e5a3047f1ba012bc83b42c1",
375        strip_prefix = "gast-0.4.0",
376        system_build_file = "//third_party/systemlibs:gast.BUILD",
377        urls = tf_mirror_urls("https://files.pythonhosted.org/packages/83/4a/07c7e59cef23fb147454663c3271c21da68ba2ab141427c20548ae5a8a4d/gast-0.4.0.tar.gz"),
378    )
379
380    tf_http_archive(
381        name = "termcolor_archive",
382        build_file = "//third_party:termcolor.BUILD",
383        sha256 = "1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b",
384        strip_prefix = "termcolor-1.1.0",
385        system_build_file = "//third_party/systemlibs:termcolor.BUILD",
386        urls = tf_mirror_urls("https://pypi.python.org/packages/8a/48/a76be51647d0eb9f10e2a4511bf3ffb8cc1e6b14e9e4fab46173aa79f981/termcolor-1.1.0.tar.gz"),
387    )
388
389    tf_http_archive(
390        name = "typing_extensions_archive",
391        build_file = "//third_party:typing_extensions.BUILD",
392        sha256 = "f1c24655a0da0d1b67f07e17a5e6b2a105894e6824b92096378bb3668ef02376",
393        strip_prefix = "typing_extensions-4.2.0/src",
394        system_build_file = "//third_party/systemlibs:typing_extensions.BUILD",
395        urls = tf_mirror_urls("https://pypi.python.org/packages/source/t/typing_extensions/typing_extensions-4.2.0.tar.gz"),
396    )
397
398    filegroup_external(
399        name = "typing_extensions_license",
400        licenses = ["notice"],  # PSFL
401        sha256_urls = {
402            "ff17ce94e102024deb68773eb1cc74ca76da4e658f373531f0ac22d68a6bb1ad": tf_mirror_urls("https://raw.githubusercontent.com/python/typing/master/typing_extensions/LICENSE"),
403        },
404    )
405
406    tf_http_archive(
407        name = "opt_einsum_archive",
408        build_file = "//third_party:opt_einsum.BUILD",
409        sha256 = "d3d464b4da7ef09e444c30e4003a27def37f85ff10ff2671e5f7d7813adac35b",
410        strip_prefix = "opt_einsum-2.3.2",
411        system_build_file = "//third_party/systemlibs:opt_einsum.BUILD",
412        urls = tf_mirror_urls("https://pypi.python.org/packages/f6/d6/44792ec668bcda7d91913c75237314e688f70415ab2acd7172c845f0b24f/opt_einsum-2.3.2.tar.gz"),
413    )
414
415    tf_http_archive(
416        name = "absl_py",
417        sha256 = "a7c51b2a0aa6357a9cbb2d9437e8cd787200531867dc02565218930b6a32166e",
418        strip_prefix = "abseil-py-1.0.0",
419        system_build_file = "//third_party/systemlibs:absl_py.BUILD",
420        system_link_files = {
421            "//third_party/systemlibs:absl_py.absl.BUILD": "absl/BUILD",
422            "//third_party/systemlibs:absl_py.absl.flags.BUILD": "absl/flags/BUILD",
423            "//third_party/systemlibs:absl_py.absl.testing.BUILD": "absl/testing/BUILD",
424            "//third_party/systemlibs:absl_py.absl.logging.BUILD": "absl/logging/BUILD",
425        },
426        urls = tf_mirror_urls("https://github.com/abseil/abseil-py/archive/refs/tags/v1.0.0.tar.gz"),
427    )
428
429    tf_http_archive(
430        name = "dill_archive",
431        build_file = "//third_party:dill.BUILD",
432        system_build_file = "//third_party/systemlibs:dill.BUILD",
433        urls = tf_mirror_urls("https://pypi.python.org/packages/source/d/dill/dill-0.3.4.zip"),
434        sha256 = "9f9734205146b2b353ab3fec9af0070237b6ddae78452af83d2fca84d739e675",
435        strip_prefix = "dill-0.3.4",
436    )
437
438    tf_http_archive(
439        name = "tblib_archive",
440        build_file = "//third_party:tblib.BUILD",
441        system_build_file = "//third_party/systemlibs:tblib.BUILD",
442        urls = tf_mirror_urls("https://files.pythonhosted.org/packages/d3/41/901ef2e81d7b1e834b9870d416cb09479e175a2be1c4aa1a9dcd0a555293/tblib-1.7.0.tar.gz"),
443        sha256 = "059bd77306ea7b419d4f76016aef6d7027cc8a0785579b5aad198803435f882c",
444        strip_prefix = "tblib-1.7.0",
445    )
446
447    filegroup_external(
448        name = "org_python_license",
449        licenses = ["notice"],  # Python 2.0
450        sha256_urls = {
451            "e76cacdf0bdd265ff074ccca03671c33126f597f39d0ed97bc3e5673d9170cf6": tf_mirror_urls("https://docs.python.org/2.7/_sources/license.rst.txt"),
452        },
453    )
454
455    tf_http_archive(
456        name = "com_google_protobuf",
457        patch_file = ["//third_party/protobuf:protobuf.patch"],
458        sha256 = "cfcba2df10feec52a84208693937c17a4b5df7775e1635c1e3baffc487b24c9b",
459        strip_prefix = "protobuf-3.9.2",
460        system_build_file = "//third_party/systemlibs:protobuf.BUILD",
461        system_link_files = {
462            "//third_party/systemlibs:protobuf.bzl": "protobuf.bzl",
463            "//third_party/systemlibs:protobuf_deps.bzl": "protobuf_deps.bzl",
464        },
465        urls = tf_mirror_urls("https://github.com/protocolbuffers/protobuf/archive/v3.9.2.zip"),
466    )
467
468    tf_http_archive(
469        name = "nsync",
470        patch_file = ["//third_party:nsync.patch"],
471        sha256 = "2be9dbfcce417c7abcc2aa6fee351cd4d292518d692577e74a2c6c05b049e442",
472        strip_prefix = "nsync-1.25.0",
473        system_build_file = "//third_party/systemlibs:nsync.BUILD",
474        urls = tf_mirror_urls("https://github.com/google/nsync/archive/1.25.0.tar.gz"),
475    )
476
477    tf_http_archive(
478        name = "com_google_googletest",
479        sha256 = "bc1cc26d1120f5a7e9eb450751c0b24160734e46a02823a573f3c6b6c0a574a7",
480        strip_prefix = "googletest-e2c06aa2497e330bab1c1a03d02f7c5096eb5b0b",
481        urls = tf_mirror_urls("https://github.com/google/googletest/archive/e2c06aa2497e330bab1c1a03d02f7c5096eb5b0b.zip"),
482    )
483
484    tf_http_archive(
485        name = "com_github_gflags_gflags",
486        sha256 = "34af2f15cf7367513b352bdcd2493ab14ce43692d2dcd9dfc499492966c64dcf",
487        strip_prefix = "gflags-2.2.2",
488        urls = tf_mirror_urls("https://github.com/gflags/gflags/archive/v2.2.2.tar.gz"),
489    )
490
491    tf_http_archive(
492        name = "curl",
493        build_file = "//third_party:curl.BUILD",
494        sha256 = "3c6893d38d054d4e378267166858698899e9d87258e8ff1419d020c395384535",
495        strip_prefix = "curl-7.84.0",
496        system_build_file = "//third_party/systemlibs:curl.BUILD",
497        urls = tf_mirror_urls("https://curl.haxx.se/download/curl-7.84.0.tar.gz"),
498    )
499
500    # WARNING: make sure ncteisen@ and vpai@ are cc-ed on any CL to change the below rule
501    tf_http_archive(
502        name = "com_github_grpc_grpc",
503        sha256 = "b956598d8cbe168b5ee717b5dafa56563eb5201a947856a6688bbeac9cac4e1f",
504        strip_prefix = "grpc-b54a5b338637f92bfcf4b0bc05e0f57a5fd8fadd",
505        system_build_file = "//third_party/systemlibs:grpc.BUILD",
506        patch_file = ["//third_party/grpc:generate_cc_env_fix.patch"],
507        system_link_files = {
508            "//third_party/systemlibs:BUILD": "bazel/BUILD",
509            "//third_party/systemlibs:grpc.BUILD": "src/compiler/BUILD",
510            "//third_party/systemlibs:grpc.bazel.grpc_deps.bzl": "bazel/grpc_deps.bzl",
511            "//third_party/systemlibs:grpc.bazel.grpc_extra_deps.bzl": "bazel/grpc_extra_deps.bzl",
512            "//third_party/systemlibs:grpc.bazel.cc_grpc_library.bzl": "bazel/cc_grpc_library.bzl",
513            "//third_party/systemlibs:grpc.bazel.generate_cc.bzl": "bazel/generate_cc.bzl",
514            "//third_party/systemlibs:grpc.bazel.protobuf.bzl": "bazel/protobuf.bzl",
515        },
516        urls = tf_mirror_urls("https://github.com/grpc/grpc/archive/b54a5b338637f92bfcf4b0bc05e0f57a5fd8fadd.tar.gz"),
517    )
518
519    tf_http_archive(
520        name = "linenoise",
521        build_file = "//third_party:linenoise.BUILD",
522        sha256 = "b35a74dbc9cd2fef9e4d56222761d61daf7e551510e6cd1a86f0789b548d074e",
523        strip_prefix = "linenoise-4ce393a66b10903a0ef52edf9775ed526a17395f",
524        urls = tf_mirror_urls("https://github.com/antirez/linenoise/archive/4ce393a66b10903a0ef52edf9775ed526a17395f.tar.gz"),
525    )
526
527    llvm_setup(name = "llvm-project")
528
529    # Intel openMP that is part of LLVM sources.
530    tf_http_archive(
531        name = "llvm_openmp",
532        build_file = "//third_party/llvm_openmp:BUILD",
533        sha256 = "d19f728c8e04fb1e94566c8d76aef50ec926cd2f95ef3bf1e0a5de4909b28b44",
534        strip_prefix = "openmp-10.0.1.src",
535        urls = tf_mirror_urls("https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.1/openmp-10.0.1.src.tar.xz"),
536    )
537
538    tf_http_archive(
539        name = "lmdb",
540        build_file = "//third_party:lmdb.BUILD",
541        sha256 = "22054926b426c66d8f2bc22071365df6e35f3aacf19ad943bc6167d4cae3bebb",
542        strip_prefix = "lmdb-LMDB_0.9.29/libraries/liblmdb",
543        system_build_file = "//third_party/systemlibs:lmdb.BUILD",
544        urls = tf_mirror_urls("https://github.com/LMDB/lmdb/archive/refs/tags/LMDB_0.9.29.tar.gz"),
545    )
546
547    tf_http_archive(
548        name = "jsoncpp_git",
549        sha256 = "f409856e5920c18d0c2fb85276e24ee607d2a09b5e7d5f0a371368903c275da2",
550        strip_prefix = "jsoncpp-1.9.5",
551        system_build_file = "//third_party/systemlibs:jsoncpp.BUILD",
552        urls = tf_mirror_urls("https://github.com/open-source-parsers/jsoncpp/archive/1.9.5.tar.gz"),
553    )
554
555    tf_http_archive(
556        name = "boringssl",
557        sha256 = "a9c3b03657d507975a32732f04563132b4553c20747cec6dc04de475c8bdf29f",
558        strip_prefix = "boringssl-80ca9f9f6ece29ab132cce4cf807a9465a18cfac",
559        system_build_file = "//third_party/systemlibs:boringssl.BUILD",
560        urls = tf_mirror_urls("https://github.com/google/boringssl/archive/80ca9f9f6ece29ab132cce4cf807a9465a18cfac.tar.gz"),
561    )
562
563    # Note: if you update this, you have to update libpng too. See cl/437813808
564    tf_http_archive(
565        name = "zlib",
566        build_file = "//third_party:zlib.BUILD",
567        sha256 = "91844808532e5ce316b3c010929493c0244f3d37593afd6de04f71821d5136d9",
568        strip_prefix = "zlib-1.2.12",
569        system_build_file = "//third_party/systemlibs:zlib.BUILD",
570        urls = tf_mirror_urls("https://zlib.net/zlib-1.2.12.tar.gz"),
571    )
572
573    # LINT.IfChange
574    tf_http_archive(
575        name = "fft2d",
576        build_file = "//third_party/fft2d:fft2d.BUILD",
577        sha256 = "5f4dabc2ae21e1f537425d58a49cdca1c49ea11db0d6271e2a4b27e9697548eb",
578        strip_prefix = "OouraFFT-1.0",
579        urls = tf_mirror_urls("https://github.com/petewarden/OouraFFT/archive/v1.0.tar.gz"),
580    )
581    # LINT.ThenChange(//tensorflow/lite/tools/cmake/modules/fft2d.cmake)
582
583    tf_http_archive(
584        name = "snappy",
585        build_file = "//third_party:snappy.BUILD",
586        sha256 = "16b677f07832a612b0836178db7f374e414f94657c138e6993cbfc5dcc58651f",
587        strip_prefix = "snappy-1.1.8",
588        system_build_file = "//third_party/systemlibs:snappy.BUILD",
589        urls = tf_mirror_urls("https://github.com/google/snappy/archive/1.1.8.tar.gz"),
590    )
591
592    tf_http_archive(
593        name = "nccl_archive",
594        build_file = "//third_party:nccl/archive.BUILD",
595        patch_file = ["//third_party/nccl:archive.patch"],
596        sha256 = "d5f5243200d4e40683c56f04435bfd6defa379cb4f2b8c07b0f191df0f66c3d9",
597        strip_prefix = "nccl-2.13.4-1",
598        urls = tf_mirror_urls("https://github.com/nvidia/nccl/archive/v2.13.4-1.tar.gz"),
599    )
600
601    java_import_external(
602        name = "junit",
603        jar_sha256 = "59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a",
604        jar_urls = [
605            "https://storage.googleapis.com/mirror.tensorflow.org/repo1.maven.org/maven2/junit/junit/4.12/junit-4.12.jar",
606            "https://repo1.maven.org/maven2/junit/junit/4.12/junit-4.12.jar",
607            "https://maven.ibiblio.org/maven2/junit/junit/4.12/junit-4.12.jar",
608        ],
609        licenses = ["reciprocal"],  # Common Public License Version 1.0
610        testonly_ = True,
611        deps = ["@org_hamcrest_core"],
612    )
613
614    java_import_external(
615        name = "org_hamcrest_core",
616        jar_sha256 = "66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9",
617        jar_urls = [
618            "https://storage.googleapis.com/mirror.tensorflow.org/repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar",
619            "https://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar",
620            "https://maven.ibiblio.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar",
621        ],
622        licenses = ["notice"],  # New BSD License
623        testonly_ = True,
624    )
625
626    java_import_external(
627        name = "com_google_testing_compile",
628        jar_sha256 = "edc180fdcd9f740240da1a7a45673f46f59c5578d8cd3fbc912161f74b5aebb8",
629        jar_urls = [
630            "https://storage.googleapis.com/mirror.tensorflow.org/repo1.maven.org/maven2/com/google/testing/compile/compile-testing/0.11/compile-testing-0.11.jar",
631            "https://repo1.maven.org/maven2/com/google/testing/compile/compile-testing/0.11/compile-testing-0.11.jar",
632        ],
633        licenses = ["notice"],  # New BSD License
634        testonly_ = True,
635        deps = ["@com_google_guava", "@com_google_truth"],
636    )
637
638    java_import_external(
639        name = "com_google_truth",
640        jar_sha256 = "032eddc69652b0a1f8d458f999b4a9534965c646b8b5de0eba48ee69407051df",
641        jar_urls = [
642            "https://storage.googleapis.com/mirror.tensorflow.org/repo1.maven.org/maven2/com/google/truth/truth/0.32/truth-0.32.jar",
643            "https://repo1.maven.org/maven2/com/google/truth/truth/0.32/truth-0.32.jar",
644        ],
645        licenses = ["notice"],  # Apache 2.0
646        testonly_ = True,
647        deps = ["@com_google_guava"],
648    )
649
650    java_import_external(
651        name = "org_checkerframework_qual",
652        jar_sha256 = "d261fde25d590f6b69db7721d469ac1b0a19a17ccaaaa751c31f0d8b8260b894",
653        jar_urls = [
654            "https://storage.googleapis.com/mirror.tensorflow.org/repo1.maven.org/maven2/org/checkerframework/checker-qual/2.10.0/checker-qual-2.10.0.jar",
655            "https://repo1.maven.org/maven2/org/checkerframework/checker-qual/2.10.0/checker-qual-2.10.0.jar",
656        ],
657        licenses = ["notice"],  # Apache 2.0
658    )
659
660    java_import_external(
661        name = "com_squareup_javapoet",
662        jar_sha256 = "5bb5abdfe4366c15c0da3332c57d484e238bd48260d6f9d6acf2b08fdde1efea",
663        jar_urls = [
664            "https://storage.googleapis.com/mirror.tensorflow.org/repo1.maven.org/maven2/com/squareup/javapoet/1.9.0/javapoet-1.9.0.jar",
665            "https://repo1.maven.org/maven2/com/squareup/javapoet/1.9.0/javapoet-1.9.0.jar",
666        ],
667        licenses = ["notice"],  # Apache 2.0
668    )
669
670    tf_http_archive(
671        name = "com_google_pprof",
672        build_file = "//third_party:pprof.BUILD",
673        sha256 = "b844b75c25cfe7ea34b832b369ab91234009b2dfe2ae1fcea53860c57253fe2e",
674        strip_prefix = "pprof-83db2b799d1f74c40857232cb5eb4c60379fe6c2",
675        urls = tf_mirror_urls("https://github.com/google/pprof/archive/83db2b799d1f74c40857232cb5eb4c60379fe6c2.tar.gz"),
676    )
677
678    # The CUDA 11 toolkit ships with CUB.  We should be able to delete this rule
679    # once TF drops support for CUDA 10.
680    tf_http_archive(
681        name = "cub_archive",
682        build_file = "//third_party:cub.BUILD",
683        sha256 = "162514b3cc264ac89d91898b58450190b8192e2af1142cf8ccac2d59aa160dda",
684        strip_prefix = "cub-1.9.9",
685        urls = tf_mirror_urls("https://github.com/NVlabs/cub/archive/1.9.9.zip"),
686    )
687
688    tf_http_archive(
689        name = "cython",
690        build_file = "//third_party:cython.BUILD",
691        sha256 = "d530216e015fd365bf3327a176e0073d0e5b8d48781f387336459f10032d776f",
692        strip_prefix = "cython-3.0.0a10",
693        system_build_file = "//third_party/systemlibs:cython.BUILD",
694        urls = tf_mirror_urls("https://github.com/cython/cython/archive/3.0.0a10.tar.gz"),
695    )
696
697    # LINT.IfChange
698    tf_http_archive(
699        name = "arm_neon_2_x86_sse",
700        build_file = "//third_party:arm_neon_2_x86_sse.BUILD",
701        sha256 = "213733991310b904b11b053ac224fee2d4e0179e46b52fe7f8735b8831e04dcc",
702        strip_prefix = "ARM_NEON_2_x86_SSE-1200fe90bb174a6224a525ee60148671a786a71f",
703        urls = tf_mirror_urls("https://github.com/intel/ARM_NEON_2_x86_SSE/archive/1200fe90bb174a6224a525ee60148671a786a71f.tar.gz"),
704    )
705    # LINT.ThenChange(//tensorflow/lite/tools/cmake/modules/neon2sse.cmake)
706
707    tf_http_archive(
708        name = "double_conversion",
709        sha256 = "3dbcdf186ad092a8b71228a5962009b5c96abde9a315257a3452eb988414ea3b",
710        strip_prefix = "double-conversion-3.2.0",
711        system_build_file = "//third_party/systemlibs:double_conversion.BUILD",
712        urls = tf_mirror_urls("https://github.com/google/double-conversion/archive/v3.2.0.tar.gz"),
713    )
714
715    tf_http_archive(
716        name = "tflite_mobilenet_float",
717        build_file = "//third_party:tflite_mobilenet_float.BUILD",
718        sha256 = "2fadeabb9968ec6833bee903900dda6e61b3947200535874ce2fe42a8493abc0",
719        urls = [
720            "https://storage.googleapis.com/download.tensorflow.org/models/mobilenet_v1_2018_08_02/mobilenet_v1_1.0_224.tgz",
721            "https://storage.googleapis.com/download.tensorflow.org/models/mobilenet_v1_2018_08_02/mobilenet_v1_1.0_224.tgz",
722        ],
723    )
724
725    tf_http_archive(
726        name = "tflite_mobilenet_quant",
727        build_file = "//third_party:tflite_mobilenet_quant.BUILD",
728        sha256 = "d32432d28673a936b2d6281ab0600c71cf7226dfe4cdcef3012555f691744166",
729        urls = [
730            "https://storage.googleapis.com/download.tensorflow.org/models/mobilenet_v1_2018_08_02/mobilenet_v1_1.0_224_quant.tgz",
731            "https://storage.googleapis.com/download.tensorflow.org/models/mobilenet_v1_2018_08_02/mobilenet_v1_1.0_224_quant.tgz",
732        ],
733    )
734
735    tf_http_archive(
736        name = "tflite_mobilenet_ssd",
737        build_file = str(Label("//third_party:tflite_mobilenet.BUILD")),
738        sha256 = "767057f2837a46d97882734b03428e8dd640b93236052b312b2f0e45613c1cf0",
739        urls = [
740            "https://storage.googleapis.com/mirror.tensorflow.org/storage.googleapis.com/download.tensorflow.org/models/tflite/mobilenet_ssd_tflite_v1.zip",
741            "https://storage.googleapis.com/download.tensorflow.org/models/tflite/mobilenet_ssd_tflite_v1.zip",
742        ],
743    )
744
745    tf_http_archive(
746        name = "tflite_mobilenet_ssd_quant",
747        build_file = str(Label("//third_party:tflite_mobilenet.BUILD")),
748        sha256 = "a809cd290b4d6a2e8a9d5dad076e0bd695b8091974e0eed1052b480b2f21b6dc",
749        urls = [
750            "https://storage.googleapis.com/mirror.tensorflow.org/storage.googleapis.com/download.tensorflow.org/models/tflite/coco_ssd_mobilenet_v1_0.75_quant_2018_06_29.zip",
751            "https://storage.googleapis.com/download.tensorflow.org/models/tflite/coco_ssd_mobilenet_v1_0.75_quant_2018_06_29.zip",
752        ],
753    )
754
755    tf_http_archive(
756        name = "tflite_mobilenet_ssd_quant_protobuf",
757        build_file = str(Label("//third_party:tflite_mobilenet.BUILD")),
758        sha256 = "09280972c5777f1aa775ef67cb4ac5d5ed21970acd8535aeca62450ef14f0d79",
759        strip_prefix = "ssd_mobilenet_v1_quantized_300x300_coco14_sync_2018_07_18",
760        urls = [
761            "https://storage.googleapis.com/mirror.tensorflow.org/storage.googleapis.com/download.tensorflow.org/models/object_detection/ssd_mobilenet_v1_quantized_300x300_coco14_sync_2018_07_18.tar.gz",
762            "https://storage.googleapis.com/download.tensorflow.org/models/object_detection/ssd_mobilenet_v1_quantized_300x300_coco14_sync_2018_07_18.tar.gz",
763        ],
764    )
765
766    tf_http_archive(
767        name = "tflite_conv_actions_frozen",
768        build_file = str(Label("//third_party:tflite_mobilenet.BUILD")),
769        sha256 = "d947b38cba389b5e2d0bfc3ea6cc49c784e187b41a071387b3742d1acac7691e",
770        urls = [
771            "https://storage.googleapis.com/mirror.tensorflow.org/storage.googleapis.com/download.tensorflow.org/models/tflite/conv_actions_tflite.zip",
772            "https://storage.googleapis.com/download.tensorflow.org/models/tflite/conv_actions_tflite.zip",
773        ],
774    )
775
776    tf_http_archive(
777        name = "tflite_ovic_testdata",
778        build_file = "//third_party:tflite_ovic_testdata.BUILD",
779        sha256 = "033c941b7829b05ca55a124a26a6a0581b1ececc154a2153cafcfdb54f80dca2",
780        strip_prefix = "ovic",
781        urls = [
782            "https://storage.googleapis.com/mirror.tensorflow.org/storage.googleapis.com/download.tensorflow.org/data/ovic_2019_04_30.zip",
783            "https://storage.googleapis.com/download.tensorflow.org/data/ovic_2019_04_30.zip",
784        ],
785    )
786
787    tf_http_archive(
788        name = "rules_python",
789        sha256 = "aa96a691d3a8177f3215b14b0edc9641787abaaa30363a080165d06ab65e1161",
790        urls = tf_mirror_urls("https://github.com/bazelbuild/rules_python/releases/download/0.0.1/rules_python-0.0.1.tar.gz"),
791    )
792
793    tf_http_archive(
794        name = "build_bazel_rules_android",
795        sha256 = "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806",
796        strip_prefix = "rules_android-0.1.1",
797        urls = tf_mirror_urls("https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip"),
798    )
799
800    # Apple and Swift rules.
801    # https://github.com/bazelbuild/rules_apple/releases
802    tf_http_archive(
803        name = "build_bazel_rules_apple",
804        sha256 = "a5f00fd89eff67291f6cd3efdc8fad30f4727e6ebb90718f3f05bbf3c3dd5ed7",
805        urls = tf_mirror_urls("https://github.com/bazelbuild/rules_apple/releases/download/0.33.0/rules_apple.0.33.0.tar.gz"),
806    )
807
808    # https://github.com/bazelbuild/rules_swift/releases
809    tf_http_archive(
810        name = "build_bazel_rules_swift",
811        sha256 = "8a49da750560b185804a4bc95c82d3f9cc4c2caf788960b0e21945759155fdd9",
812        urls = tf_mirror_urls("https://github.com/bazelbuild/rules_swift/releases/download/0.25.0/rules_swift.0.25.0.tar.gz"),
813    )
814
815    # https://github.com/bazelbuild/apple_support/releases
816    tf_http_archive(
817        name = "build_bazel_apple_support",
818        sha256 = "c604b75865c07f45828c7fffd5fdbff81415a9e84a68f71a9c1d8e3b2694e547",
819        urls = tf_mirror_urls("https://github.com/bazelbuild/apple_support/releases/download/0.12.1/apple_support.0.12.1.tar.gz"),
820    )
821
822    # https://github.com/apple/swift-protobuf/releases
823    tf_http_archive(
824        name = "com_github_apple_swift_swift_protobuf",
825        strip_prefix = "swift-protobuf-1.19.0/",
826        sha256 = "f057930b9dbd17abeaaceaa45e9f8b3e87188c05211710563d2311b9edf490aa",
827        urls = tf_mirror_urls("https://github.com/apple/swift-protobuf/archive/1.19.0.tar.gz"),
828    )
829
830    # https://github.com/google/xctestrunner/releases
831    tf_http_archive(
832        name = "xctestrunner",
833        strip_prefix = "xctestrunner-0.2.15",
834        sha256 = "b789cf18037c8c28d17365f14925f83b93b1f7dabcabb80333ae4331cf0bcb2f",
835        urls = tf_mirror_urls("https://github.com/google/xctestrunner/archive/refs/tags/0.2.15.tar.gz"),
836    )
837
838    tf_http_archive(
839        name = "nlohmann_json_lib",
840        build_file = "//third_party:nlohmann_json.BUILD",
841        sha256 = "5daca6ca216495edf89d167f808d1d03c4a4d929cef7da5e10f135ae1540c7e4",
842        strip_prefix = "json-3.10.5",
843        urls = tf_mirror_urls("https://github.com/nlohmann/json/archive/v3.10.5.tar.gz"),
844    )
845
846    tf_http_archive(
847        name = "pybind11",
848        urls = tf_mirror_urls("https://github.com/pybind/pybind11/archive/v2.10.0.tar.gz"),
849        sha256 = "eacf582fa8f696227988d08cfc46121770823839fe9e301a20fbce67e7cd70ec",
850        strip_prefix = "pybind11-2.10.0",
851        build_file = "//third_party:pybind11.BUILD",
852        system_build_file = "//third_party/systemlibs:pybind11.BUILD",
853    )
854
855    tf_http_archive(
856        name = "wrapt",
857        build_file = "//third_party:wrapt.BUILD",
858        sha256 = "8a6fb40e8f8b6a66b4ba81a4044c68e6a7b1782f21cfabc06fb765332b4c3e51",
859        strip_prefix = "wrapt-1.11.1/src/wrapt",
860        system_build_file = "//third_party/systemlibs:wrapt.BUILD",
861        urls = tf_mirror_urls("https://github.com/GrahamDumpleton/wrapt/archive/1.11.1.tar.gz"),
862    )
863
864    tf_http_archive(
865        name = "coremltools",
866        sha256 = "89bb0bd2c16e19932670838dd5a8b239cd5c0a42338c72239d2446168c467a08",
867        strip_prefix = "coremltools-5.2",
868        build_file = "//third_party:coremltools.BUILD",
869        urls = tf_mirror_urls("https://github.com/apple/coremltools/archive/5.2.tar.gz"),
870    )
871
872def workspace():
873    # Check the bazel version before executing any repository rules, in case
874    # those rules rely on the version we require here.
875    check_bazel_version_at_least("1.0.0")
876
877    # Initialize toolchains and platforms.
878    _tf_toolchains()
879
880    # Import third party repositories according to go/tfbr-thirdparty.
881    _initialize_third_party()
882
883    # Import all other repositories. This should happen before initializing
884    # any external repositories, because those come with their own
885    # dependencies. Those recursive dependencies will only be imported if they
886    # don't already exist (at least if the external repository macros were
887    # written according to common practice to query native.existing_rule()).
888    _tf_repositories()
889
890    tfrt_dependencies()
891
892# Alias so it can be loaded without assigning to a different symbol to prevent
893# shadowing previous loads and trigger a buildifier warning.
894tf_workspace2 = workspace
895