• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# TensorFlow external dependencies that can be loaded in WORKSPACE files.
2
3load("//third_party/gpus:cuda_configure.bzl", "cuda_configure")
4load("//third_party/gpus:rocm_configure.bzl", "rocm_configure")
5load("//third_party/tensorrt:tensorrt_configure.bzl", "tensorrt_configure")
6load("//third_party:nccl/nccl_configure.bzl", "nccl_configure")
7load("//third_party/mkl:build_defs.bzl", "mkl_repository")
8load("//third_party/git:git_configure.bzl", "git_configure")
9load("//third_party/py:python_configure.bzl", "python_configure")
10load("//third_party/sycl:sycl_configure.bzl", "sycl_configure")
11load("//third_party/systemlibs:syslibs_configure.bzl", "syslibs_configure")
12load("//third_party/toolchains/remote:configure.bzl", "remote_execution_configure")
13load("//third_party/toolchains/clang6:repo.bzl", "clang6_configure")
14load("//third_party/toolchains/cpus/arm:arm_compiler_configure.bzl", "arm_compiler_configure")
15load("//third_party:repo.bzl", "tf_http_archive")
16load("//third_party/clang_toolchain:cc_configure_clang.bzl", "cc_download_clang_toolchain")
17load("@io_bazel_rules_closure//closure/private:java_import_external.bzl", "java_import_external")
18load("@io_bazel_rules_closure//closure:defs.bzl", "filegroup_external")
19load(
20    "//tensorflow/tools/def_file_filter:def_file_filter_configure.bzl",
21    "def_file_filter_configure",
22)
23load("//third_party/aws:workspace.bzl", aws = "repo")
24load("//third_party/flatbuffers:workspace.bzl", flatbuffers = "repo")
25load("//third_party/highwayhash:workspace.bzl", highwayhash = "repo")
26load("//third_party/hwloc:workspace.bzl", hwloc = "repo")
27load("//third_party/icu:workspace.bzl", icu = "repo")
28load("//third_party/jpeg:workspace.bzl", jpeg = "repo")
29load("//third_party/nasm:workspace.bzl", nasm = "repo")
30load("//third_party/kissfft:workspace.bzl", kissfft = "repo")
31load("//third_party/keras_applications_archive:workspace.bzl", keras_applications = "repo")
32load("//third_party/pasta:workspace.bzl", pasta = "repo")
33
34def initialize_third_party():
35    """ Load third party repositories.  See above load() statements. """
36    aws()
37    flatbuffers()
38    highwayhash()
39    hwloc()
40    icu()
41    keras_applications()
42    kissfft()
43    jpeg()
44    nasm()
45    pasta()
46
47# Sanitize a dependency so that it works correctly from code that includes
48# TensorFlow as a submodule.
49def clean_dep(dep):
50    return str(Label(dep))
51
52# If TensorFlow is linked as a submodule.
53# path_prefix is no longer used.
54# tf_repo_name is thought to be under consideration.
55def tf_workspace(path_prefix = "", tf_repo_name = ""):
56    # Note that we check the minimum bazel version in WORKSPACE.
57    clang6_configure(name = "local_config_clang6")
58    cc_download_clang_toolchain(name = "local_config_download_clang")
59    cuda_configure(name = "local_config_cuda")
60    tensorrt_configure(name = "local_config_tensorrt")
61    nccl_configure(name = "local_config_nccl")
62    git_configure(name = "local_config_git")
63    sycl_configure(name = "local_config_sycl")
64    syslibs_configure(name = "local_config_syslibs")
65    python_configure(name = "local_config_python")
66    rocm_configure(name = "local_config_rocm")
67    remote_execution_configure(name = "local_config_remote_execution")
68
69    initialize_third_party()
70
71    # For windows bazel build
72    # TODO: Remove def file filter when TensorFlow can export symbols properly on Windows.
73    def_file_filter_configure(name = "local_config_def_file_filter")
74
75    # Point //external/local_config_arm_compiler to //external/arm_compiler
76    arm_compiler_configure(
77        name = "local_config_arm_compiler",
78        build_file = clean_dep("//third_party/toolchains/cpus/arm:BUILD"),
79        remote_config_repo = "../arm_compiler",
80    )
81
82    mkl_repository(
83        name = "mkl_linux",
84        build_file = clean_dep("//third_party/mkl:mkl.BUILD"),
85        sha256 = "f84f92b047edad0467d68a925410b782e54eac9e7af61f4cc33d3d38b29bee5d",
86        strip_prefix = "mklml_lnx_2019.0.3.20190125",
87        urls = [
88            "https://mirror.bazel.build/github.com/intel/mkl-dnn/releases/download/v0.18-rc/mklml_lnx_2019.0.3.20190125.tgz",
89            "https://github.com/intel/mkl-dnn/releases/download/v0.18-rc/mklml_lnx_2019.0.3.20190125.tgz",
90        ],
91    )
92    mkl_repository(
93        name = "mkl_windows",
94        build_file = clean_dep("//third_party/mkl:mkl.BUILD"),
95        sha256 = "8f968cdb175242f887efa9a6dbced76e65a584fbb35e5f5b05883a3584a2382a",
96        strip_prefix = "mklml_win_2019.0.3.20190125",
97        urls = [
98            "https://mirror.bazel.build/github.com/intel/mkl-dnn/releases/download/v0.18-rc/mklml_win_2019.0.3.20190125.zip",
99            "https://github.com/intel/mkl-dnn/releases/download/v0.18-rc/mklml_win_2019.0.3.20190125.zip",
100        ],
101    )
102    mkl_repository(
103        name = "mkl_darwin",
104        build_file = clean_dep("//third_party/mkl:mkl.BUILD"),
105        sha256 = "60d6500f0e1a98f011324180fbf7a51a177f45494b4089e02867684d413c4293",
106        strip_prefix = "mklml_mac_2019.0.3.20190125",
107        urls = [
108            "https://mirror.bazel.build/github.com/intel/mkl-dnn/releases/download/v0.18-rc/mklml_mac_2019.0.3.20190125.tgz",
109            "https://github.com/intel/mkl-dnn/releases/download/v0.18-rc/mklml_mac_2019.0.3.20190125.tgz",
110        ],
111    )
112
113    if path_prefix:
114        print("path_prefix was specified to tf_workspace but is no longer used " +
115              "and will be removed in the future.")
116
117    # Important: If you are upgrading MKL-DNN, then update the version numbers
118    # in third_party/mkl_dnn/mkldnn.BUILD. In addition, the new version of
119    # MKL-DNN might require upgrading MKL ML libraries also. If they need to be
120    # upgraded then update the version numbers on all three versions above
121    # (Linux, Mac, Windows).
122    tf_http_archive(
123        name = "mkl_dnn",
124        build_file = clean_dep("//third_party/mkl_dnn:mkldnn.BUILD"),
125        sha256 = "4d0522fc609b4194738dbbe14c8ee1546a2736b03886a07f498250cde53f38fb",
126        strip_prefix = "mkl-dnn-bdd1c7be2cbc0b451d3541ab140742db67f17684",
127        urls = [
128            "https://mirror.bazel.build/github.com/intel/mkl-dnn/archive/bdd1c7be2cbc0b451d3541ab140742db67f17684.tar.gz",
129            "https://github.com/intel/mkl-dnn/archive/bdd1c7be2cbc0b451d3541ab140742db67f17684.tar.gz",
130        ],
131    )
132
133    tf_http_archive(
134        name = "com_google_absl",
135        build_file = clean_dep("//third_party:com_google_absl.BUILD"),
136        sha256 = "4ca486dfff63a9b7c3ece54895f7b92c5c2444df6a61942bb66d888dd310f358",
137        strip_prefix = "abseil-cpp-7c7754fb3ed9ffb57d35fe8658f3ba4d73a31e72",
138        urls = [
139            "https://mirror.bazel.build/github.com/abseil/abseil-cpp/archive/7c7754fb3ed9ffb57d35fe8658f3ba4d73a31e72.tar.gz",
140            "https://github.com/abseil/abseil-cpp/archive/7c7754fb3ed9ffb57d35fe8658f3ba4d73a31e72.tar.gz",
141        ],
142    )
143
144    tf_http_archive(
145        name = "eigen_archive",
146        build_file = clean_dep("//third_party:eigen.BUILD"),
147        patch_file = clean_dep("//third_party/eigen3:gpu_packet_math.patch"),
148        sha256 = "13a8885ab17cadb6c7e55538081f1f31d90e58d6415858d43ea72199bc0f5e22",
149        strip_prefix = "eigen-eigen-9632304bf806",
150        urls = [
151            "https://mirror.bazel.build/bitbucket.org/eigen/eigen/get/9632304bf806.tar.gz",
152            "https://bitbucket.org/eigen/eigen/get/9632304bf806.tar.gz",
153        ],
154    )
155
156    tf_http_archive(
157        name = "arm_compiler",
158        build_file = clean_dep("//:arm_compiler.BUILD"),
159        sha256 = "970285762565c7890c6c087d262b0a18286e7d0384f13a37786d8521773bc969",
160        strip_prefix = "tools-0e906ebc527eab1cdbf7adabff5b474da9562e9f/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf",
161        urls = [
162            "https://mirror.bazel.build/github.com/raspberrypi/tools/archive/0e906ebc527eab1cdbf7adabff5b474da9562e9f.tar.gz",
163            # Please uncomment me, when the next upgrade happens. Then
164            # remove the whitelist entry in third_party/repo.bzl.
165            # "https://github.com/raspberrypi/tools/archive/0e906ebc527eab1cdbf7adabff5b474da9562e9f.tar.gz",
166        ],
167    )
168
169    tf_http_archive(
170        name = "libxsmm_archive",
171        build_file = clean_dep("//third_party:libxsmm.BUILD"),
172        sha256 = "cd8532021352b4a0290d209f7f9bfd7c2411e08286a893af3577a43457287bfa",
173        strip_prefix = "libxsmm-1.9",
174        urls = [
175            "https://mirror.bazel.build/github.com/hfp/libxsmm/archive/1.9.tar.gz",
176            "https://github.com/hfp/libxsmm/archive/1.9.tar.gz",
177        ],
178    )
179
180    tf_http_archive(
181        name = "com_googlesource_code_re2",
182        sha256 = "a31397714a353587413d307337d0b58f8a2e20e2b9d02f2e24e3463fa4eeda81",
183        strip_prefix = "re2-2018-10-01",
184        system_build_file = clean_dep("//third_party/systemlibs:re2.BUILD"),
185        urls = [
186            "https://mirror.bazel.build/github.com/google/re2/archive/2018-10-01.tar.gz",
187            "https://github.com/google/re2/archive/2018-10-01.tar.gz",
188        ],
189    )
190
191    tf_http_archive(
192        name = "com_github_googlecloudplatform_google_cloud_cpp",
193        sha256 = "06bc735a117ec7ea92ea580e7f2ffa4b1cd7539e0e04f847bf500588d7f0fe90",
194        strip_prefix = "google-cloud-cpp-0.7.0",
195        system_build_file = clean_dep("//third_party/systemlibs:google_cloud_cpp.BUILD"),
196        system_link_files = {
197            "//third_party/systemlibs:google_cloud_cpp.google.cloud.bigtable.BUILD": "google/cloud/bigtable/BUILD",
198        },
199        urls = [
200            "https://mirror.bazel.build/github.com/googleapis/google-cloud-cpp/archive/v0.7.0.tar.gz",
201            "https://github.com/googleapis/google-cloud-cpp/archive/v0.7.0.tar.gz",
202        ],
203    )
204
205    tf_http_archive(
206        name = "com_github_googleapis_googleapis",
207        build_file = clean_dep("//third_party:googleapis.BUILD"),
208        sha256 = "824870d87a176f26bcef663e92051f532fac756d1a06b404055dc078425f4378",
209        strip_prefix = "googleapis-f81082ea1e2f85c43649bee26e0d9871d4b41cdb",
210        system_build_file = clean_dep("//third_party/systemlibs:googleapis.BUILD"),
211        urls = [
212            "https://mirror.bazel.build/github.com/googleapis/googleapis/archive/f81082ea1e2f85c43649bee26e0d9871d4b41cdb.zip",
213            "https://github.com/googleapis/googleapis/archive/f81082ea1e2f85c43649bee26e0d9871d4b41cdb.zip",
214        ],
215    )
216
217    tf_http_archive(
218        name = "gemmlowp",
219        sha256 = "b87faa7294dfcc5d678f22a59d2c01ca94ea1e2a3b488c38a95a67889ed0a658",
220        strip_prefix = "gemmlowp-38ebac7b059e84692f53e5938f97a9943c120d98",
221        urls = [
222            "https://mirror.bazel.build/github.com/google/gemmlowp/archive/38ebac7b059e84692f53e5938f97a9943c120d98.zip",
223            "https://github.com/google/gemmlowp/archive/38ebac7b059e84692f53e5938f97a9943c120d98.zip",
224        ],
225    )
226
227    tf_http_archive(
228        name = "farmhash_archive",
229        build_file = clean_dep("//third_party:farmhash.BUILD"),
230        sha256 = "6560547c63e4af82b0f202cb710ceabb3f21347a4b996db565a411da5b17aba0",
231        strip_prefix = "farmhash-816a4ae622e964763ca0862d9dbd19324a1eaf45",
232        urls = [
233            "https://mirror.bazel.build/github.com/google/farmhash/archive/816a4ae622e964763ca0862d9dbd19324a1eaf45.tar.gz",
234            "https://github.com/google/farmhash/archive/816a4ae622e964763ca0862d9dbd19324a1eaf45.tar.gz",
235        ],
236    )
237
238    tf_http_archive(
239        name = "png_archive",
240        build_file = clean_dep("//third_party:png.BUILD"),
241        patch_file = clean_dep("//third_party:png_fix_rpi.patch"),
242        sha256 = "e45ce5f68b1d80e2cb9a2b601605b374bdf51e1798ef1c2c2bd62131dfcf9eef",
243        strip_prefix = "libpng-1.6.34",
244        system_build_file = clean_dep("//third_party/systemlibs:png.BUILD"),
245        urls = [
246            "https://mirror.bazel.build/github.com/glennrp/libpng/archive/v1.6.34.tar.gz",
247            "https://github.com/glennrp/libpng/archive/v1.6.34.tar.gz",
248        ],
249    )
250
251    tf_http_archive(
252        name = "org_sqlite",
253        build_file = clean_dep("//third_party:sqlite.BUILD"),
254        sha256 = "ad68c1216c3a474cf360c7581a4001e952515b3649342100f2d7ca7c8e313da6",
255        strip_prefix = "sqlite-amalgamation-3240000",
256        system_build_file = clean_dep("//third_party/systemlibs:sqlite.BUILD"),
257        urls = [
258            "https://mirror.bazel.build/www.sqlite.org/2018/sqlite-amalgamation-3240000.zip",
259            "https://www.sqlite.org/2018/sqlite-amalgamation-3240000.zip",
260        ],
261    )
262
263    tf_http_archive(
264        name = "gif_archive",
265        build_file = clean_dep("//third_party:gif.BUILD"),
266        sha256 = "34a7377ba834397db019e8eb122e551a49c98f49df75ec3fcc92b9a794a4f6d1",
267        strip_prefix = "giflib-5.1.4",
268        system_build_file = clean_dep("//third_party/systemlibs:gif.BUILD"),
269        urls = [
270            "https://mirror.bazel.build/ufpr.dl.sourceforge.net/project/giflib/giflib-5.1.4.tar.gz",
271            "http://pilotfiber.dl.sourceforge.net/project/giflib/giflib-5.1.4.tar.gz",
272        ],
273    )
274
275    tf_http_archive(
276        name = "six_archive",
277        build_file = clean_dep("//third_party:six.BUILD"),
278        sha256 = "105f8d68616f8248e24bf0e9372ef04d3cc10104f1980f54d57b2ce73a5ad56a",
279        strip_prefix = "six-1.10.0",
280        system_build_file = clean_dep("//third_party/systemlibs:six.BUILD"),
281        urls = [
282            "https://mirror.bazel.build/pypi.python.org/packages/source/s/six/six-1.10.0.tar.gz",
283            "https://pypi.python.org/packages/source/s/six/six-1.10.0.tar.gz",
284        ],
285    )
286
287    tf_http_archive(
288        name = "astor_archive",
289        build_file = clean_dep("//third_party:astor.BUILD"),
290        sha256 = "95c30d87a6c2cf89aa628b87398466840f0ad8652f88eb173125a6df8533fb8d",
291        strip_prefix = "astor-0.7.1",
292        system_build_file = clean_dep("//third_party/systemlibs:astor.BUILD"),
293        urls = [
294            "https://mirror.bazel.build/pypi.python.org/packages/99/80/f9482277c919d28bebd85813c0a70117214149a96b08981b72b63240b84c/astor-0.7.1.tar.gz",
295            "https://pypi.python.org/packages/99/80/f9482277c919d28bebd85813c0a70117214149a96b08981b72b63240b84c/astor-0.7.1.tar.gz",
296        ],
297    )
298
299    tf_http_archive(
300        name = "gast_archive",
301        build_file = clean_dep("//third_party:gast.BUILD"),
302        sha256 = "7068908321ecd2774f145193c4b34a11305bd104b4551b09273dfd1d6a374930",
303        strip_prefix = "gast-0.2.0",
304        system_build_file = clean_dep("//third_party/systemlibs:gast.BUILD"),
305        urls = [
306            "https://mirror.bazel.build/pypi.python.org/packages/5c/78/ff794fcae2ce8aa6323e789d1f8b3b7765f601e7702726f430e814822b96/gast-0.2.0.tar.gz",
307            "https://pypi.python.org/packages/5c/78/ff794fcae2ce8aa6323e789d1f8b3b7765f601e7702726f430e814822b96/gast-0.2.0.tar.gz",
308        ],
309    )
310
311    tf_http_archive(
312        name = "termcolor_archive",
313        build_file = clean_dep("//third_party:termcolor.BUILD"),
314        sha256 = "1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b",
315        strip_prefix = "termcolor-1.1.0",
316        system_build_file = clean_dep("//third_party/systemlibs:termcolor.BUILD"),
317        urls = [
318            "https://mirror.bazel.build/pypi.python.org/packages/8a/48/a76be51647d0eb9f10e2a4511bf3ffb8cc1e6b14e9e4fab46173aa79f981/termcolor-1.1.0.tar.gz",
319            "https://pypi.python.org/packages/8a/48/a76be51647d0eb9f10e2a4511bf3ffb8cc1e6b14e9e4fab46173aa79f981/termcolor-1.1.0.tar.gz",
320        ],
321    )
322
323    tf_http_archive(
324        name = "absl_py",
325        sha256 = "595726be4bf3f7e6d64a1a255fa03717b693c01b913768abd52649cbb7ddf2bd",
326        strip_prefix = "abseil-py-pypi-v0.7.0",
327        system_build_file = clean_dep("//third_party/systemlibs:absl_py.BUILD"),
328        system_link_files = {
329            "//third_party/systemlibs:absl_py.absl.flags.BUILD": "absl/flags/BUILD",
330            "//third_party/systemlibs:absl_py.absl.testing.BUILD": "absl/testing/BUILD",
331        },
332        urls = [
333            "https://mirror.bazel.build/github.com/abseil/abseil-py/archive/pypi-v0.7.0.tar.gz",
334            "https://github.com/abseil/abseil-py/archive/pypi-v0.7.0.tar.gz",
335        ],
336    )
337
338    tf_http_archive(
339        name = "enum34_archive",
340        urls = [
341            "https://mirror.bazel.build/pypi.python.org/packages/bf/3e/31d502c25302814a7c2f1d3959d2a3b3f78e509002ba91aea64993936876/enum34-1.1.6.tar.gz",
342            "https://pypi.python.org/packages/bf/3e/31d502c25302814a7c2f1d3959d2a3b3f78e509002ba91aea64993936876/enum34-1.1.6.tar.gz",
343        ],
344        sha256 = "8ad8c4783bf61ded74527bffb48ed9b54166685e4230386a9ed9b1279e2df5b1",
345        build_file = clean_dep("//third_party:enum34.BUILD"),
346        strip_prefix = "enum34-1.1.6/enum",
347    )
348
349    tf_http_archive(
350        name = "org_python_pypi_backports_weakref",
351        build_file = clean_dep("//third_party:backports_weakref.BUILD"),
352        sha256 = "8813bf712a66b3d8b85dc289e1104ed220f1878cf981e2fe756dfaabe9a82892",
353        strip_prefix = "backports.weakref-1.0rc1/src",
354        urls = [
355            "https://mirror.bazel.build/pypi.python.org/packages/bc/cc/3cdb0a02e7e96f6c70bd971bc8a90b8463fda83e264fa9c5c1c98ceabd81/backports.weakref-1.0rc1.tar.gz",
356            "https://pypi.python.org/packages/bc/cc/3cdb0a02e7e96f6c70bd971bc8a90b8463fda83e264fa9c5c1c98ceabd81/backports.weakref-1.0rc1.tar.gz",
357        ],
358    )
359
360    filegroup_external(
361        name = "org_python_license",
362        licenses = ["notice"],  # Python 2.0
363        sha256_urls = {
364            "7ca8f169368827781684f7f20876d17b4415bbc5cb28baa4ca4652f0dda05e9f": [
365                "https://mirror.bazel.build/docs.python.org/2.7/_sources/license.rst.txt",
366                "https://docs.python.org/2.7/_sources/license.rst.txt",
367            ],
368        },
369    )
370
371    PROTOBUF_URLS = [
372        "https://mirror.bazel.build/github.com/protocolbuffers/protobuf/archive/v3.6.1.2.tar.gz",
373        "https://github.com/protocolbuffers/protobuf/archive/v3.6.1.2.tar.gz",
374    ]
375    PROTOBUF_SHA256 = "2244b0308846bb22b4ff0bcc675e99290ff9f1115553ae9671eba1030af31bc0"
376    PROTOBUF_STRIP_PREFIX = "protobuf-3.6.1.2"
377
378    tf_http_archive(
379        name = "protobuf_archive",
380        sha256 = PROTOBUF_SHA256,
381        strip_prefix = PROTOBUF_STRIP_PREFIX,
382        system_build_file = clean_dep("//third_party/systemlibs:protobuf.BUILD"),
383        system_link_files = {
384            "//third_party/systemlibs:protobuf.bzl": "protobuf.bzl",
385        },
386        urls = PROTOBUF_URLS,
387    )
388
389    # We need to import the protobuf library under the names com_google_protobuf
390    # and com_google_protobuf_cc to enable proto_library support in bazel.
391    # Unfortunately there is no way to alias http_archives at the moment.
392    tf_http_archive(
393        name = "com_google_protobuf",
394        sha256 = PROTOBUF_SHA256,
395        strip_prefix = PROTOBUF_STRIP_PREFIX,
396        system_build_file = clean_dep("//third_party/systemlibs:protobuf.BUILD"),
397        system_link_files = {
398            "//third_party/systemlibs:protobuf.bzl": "protobuf.bzl",
399        },
400        urls = PROTOBUF_URLS,
401    )
402
403    tf_http_archive(
404        name = "com_google_protobuf_cc",
405        sha256 = PROTOBUF_SHA256,
406        strip_prefix = PROTOBUF_STRIP_PREFIX,
407        system_build_file = clean_dep("//third_party/systemlibs:protobuf.BUILD"),
408        system_link_files = {
409            "//third_party/systemlibs:protobuf.bzl": "protobuf.bzl",
410        },
411        urls = PROTOBUF_URLS,
412    )
413
414    tf_http_archive(
415        name = "nsync",
416        sha256 = "704be7f58afa47b99476bbac7aafd1a9db4357cef519db361716f13538547ffd",
417        strip_prefix = "nsync-1.20.2",
418        system_build_file = clean_dep("//third_party/systemlibs:nsync.BUILD"),
419        urls = [
420            "https://mirror.bazel.build/github.com/google/nsync/archive/1.20.2.tar.gz",
421            "https://github.com/google/nsync/archive/1.20.2.tar.gz",
422        ],
423    )
424
425    tf_http_archive(
426        name = "com_google_googletest",
427        sha256 = "ff7a82736e158c077e76188232eac77913a15dac0b22508c390ab3f88e6d6d86",
428        strip_prefix = "googletest-b6cd405286ed8635ece71c72f118e659f4ade3fb",
429        urls = [
430            "https://mirror.bazel.build/github.com/google/googletest/archive/b6cd405286ed8635ece71c72f118e659f4ade3fb.zip",
431            "https://github.com/google/googletest/archive/b6cd405286ed8635ece71c72f118e659f4ade3fb.zip",
432        ],
433    )
434
435    tf_http_archive(
436        name = "com_github_gflags_gflags",
437        sha256 = "ae27cdbcd6a2f935baa78e4f21f675649271634c092b1be01469440495609d0e",
438        strip_prefix = "gflags-2.2.1",
439        urls = [
440            "https://mirror.bazel.build/github.com/gflags/gflags/archive/v2.2.1.tar.gz",
441            "https://github.com/gflags/gflags/archive/v2.2.1.tar.gz",
442        ],
443    )
444
445    tf_http_archive(
446        name = "pcre",
447        build_file = clean_dep("//third_party:pcre.BUILD"),
448        sha256 = "69acbc2fbdefb955d42a4c606dfde800c2885711d2979e356c0636efde9ec3b5",
449        strip_prefix = "pcre-8.42",
450        system_build_file = clean_dep("//third_party/systemlibs:pcre.BUILD"),
451        urls = [
452            "https://mirror.bazel.build/ftp.exim.org/pub/pcre/pcre-8.42.tar.gz",
453            "http://ftp.exim.org/pub/pcre/pcre-8.42.tar.gz",
454        ],
455    )
456
457    tf_http_archive(
458        name = "swig",
459        build_file = clean_dep("//third_party:swig.BUILD"),
460        sha256 = "58a475dbbd4a4d7075e5fe86d4e54c9edde39847cdb96a3053d87cb64a23a453",
461        strip_prefix = "swig-3.0.8",
462        system_build_file = clean_dep("//third_party/systemlibs:swig.BUILD"),
463        urls = [
464            "https://mirror.bazel.build/ufpr.dl.sourceforge.net/project/swig/swig/swig-3.0.8/swig-3.0.8.tar.gz",
465            "http://ufpr.dl.sourceforge.net/project/swig/swig/swig-3.0.8/swig-3.0.8.tar.gz",
466            "http://pilotfiber.dl.sourceforge.net/project/swig/swig/swig-3.0.8/swig-3.0.8.tar.gz",
467        ],
468    )
469
470    tf_http_archive(
471        name = "curl",
472        build_file = clean_dep("//third_party:curl.BUILD"),
473        sha256 = "e9c37986337743f37fd14fe8737f246e97aec94b39d1b71e8a5973f72a9fc4f5",
474        strip_prefix = "curl-7.60.0",
475        system_build_file = clean_dep("//third_party/systemlibs:curl.BUILD"),
476        urls = [
477            "https://mirror.bazel.build/curl.haxx.se/download/curl-7.60.0.tar.gz",
478            "https://curl.haxx.se/download/curl-7.60.0.tar.gz",
479        ],
480    )
481
482    # WARNING: make sure ncteisen@ and vpai@ are cc-ed on any CL to change the below rule
483    tf_http_archive(
484        name = "grpc",
485        sha256 = "e1e3a9edbfbe4230bee174d4aa45a15c1ec2b203cedb02d20df3e6345d8fa63e",
486        strip_prefix = "grpc-62688b6a05cc85b47fb77dd408611734253e47e2",
487        system_build_file = clean_dep("//third_party/systemlibs:grpc.BUILD"),
488        urls = [
489            "https://mirror.bazel.build/github.com/grpc/grpc/archive/62688b6a05cc85b47fb77dd408611734253e47e2.tar.gz",
490            "https://github.com/grpc/grpc/archive/62688b6a05cc85b47fb77dd408611734253e47e2.tar.gz",
491        ],
492    )
493
494    tf_http_archive(
495        name = "com_github_nanopb_nanopb",
496        sha256 = "8bbbb1e78d4ddb0a1919276924ab10d11b631df48b657d960e0c795a25515735",
497        build_file = "@grpc//third_party:nanopb.BUILD",
498        strip_prefix = "nanopb-f8ac463766281625ad710900479130c7fcb4d63b",
499        urls = [
500            "https://mirror.bazel.build/github.com/nanopb/nanopb/archive/f8ac463766281625ad710900479130c7fcb4d63b.tar.gz",
501            "https://github.com/nanopb/nanopb/archive/f8ac463766281625ad710900479130c7fcb4d63b.tar.gz",
502        ],
503    )
504
505    tf_http_archive(
506        name = "linenoise",
507        build_file = clean_dep("//third_party:linenoise.BUILD"),
508        sha256 = "7f51f45887a3d31b4ce4fa5965210a5e64637ceac12720cfce7954d6a2e812f7",
509        strip_prefix = "linenoise-c894b9e59f02203dbe4e2be657572cf88c4230c3",
510        urls = [
511            "https://mirror.bazel.build/github.com/antirez/linenoise/archive/c894b9e59f02203dbe4e2be657572cf88c4230c3.tar.gz",
512            "https://github.com/antirez/linenoise/archive/c894b9e59f02203dbe4e2be657572cf88c4230c3.tar.gz",
513        ],
514    )
515
516    # TODO(phawkins): currently, this rule uses an unofficial LLVM mirror.
517    # Switch to an official source of snapshots if/when possible.
518    tf_http_archive(
519        name = "llvm",
520        build_file = clean_dep("//third_party/llvm:llvm.autogenerated.BUILD"),
521        sha256 = "fc5a898c5062140bbd2ebec46f44ed4e0637c2b1510800079057355af8997a6c",
522        strip_prefix = "llvm-e83676d5104ca4d90e404066ea4196a2488451f8",
523        urls = [
524            "https://mirror.bazel.build/github.com/llvm-mirror/llvm/archive/e83676d5104ca4d90e404066ea4196a2488451f8.tar.gz",
525            "https://github.com/llvm-mirror/llvm/archive/e83676d5104ca4d90e404066ea4196a2488451f8.tar.gz",
526        ],
527    )
528
529    tf_http_archive(
530        name = "lmdb",
531        build_file = clean_dep("//third_party:lmdb.BUILD"),
532        sha256 = "f3927859882eb608868c8c31586bb7eb84562a40a6bf5cc3e13b6b564641ea28",
533        strip_prefix = "lmdb-LMDB_0.9.22/libraries/liblmdb",
534        system_build_file = clean_dep("//third_party/systemlibs:lmdb.BUILD"),
535        urls = [
536            "https://mirror.bazel.build/github.com/LMDB/lmdb/archive/LMDB_0.9.22.tar.gz",
537            "https://github.com/LMDB/lmdb/archive/LMDB_0.9.22.tar.gz",
538        ],
539    )
540
541    tf_http_archive(
542        name = "jsoncpp_git",
543        build_file = clean_dep("//third_party:jsoncpp.BUILD"),
544        sha256 = "c49deac9e0933bcb7044f08516861a2d560988540b23de2ac1ad443b219afdb6",
545        strip_prefix = "jsoncpp-1.8.4",
546        system_build_file = clean_dep("//third_party/systemlibs:jsoncpp.BUILD"),
547        urls = [
548            "https://mirror.bazel.build/github.com/open-source-parsers/jsoncpp/archive/1.8.4.tar.gz",
549            "https://github.com/open-source-parsers/jsoncpp/archive/1.8.4.tar.gz",
550        ],
551    )
552
553    tf_http_archive(
554        name = "boringssl",
555        sha256 = "1188e29000013ed6517168600fc35a010d58c5d321846d6a6dfee74e4c788b45",
556        strip_prefix = "boringssl-7f634429a04abc48e2eb041c81c5235816c96514",
557        system_build_file = clean_dep("//third_party/systemlibs:boringssl.BUILD"),
558        urls = [
559            "https://mirror.bazel.build/github.com/google/boringssl/archive/7f634429a04abc48e2eb041c81c5235816c96514.tar.gz",
560            "https://github.com/google/boringssl/archive/7f634429a04abc48e2eb041c81c5235816c96514.tar.gz",
561        ],
562    )
563
564    tf_http_archive(
565        name = "zlib_archive",
566        build_file = clean_dep("//third_party:zlib.BUILD"),
567        sha256 = "c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1",
568        strip_prefix = "zlib-1.2.11",
569        system_build_file = clean_dep("//third_party/systemlibs:zlib.BUILD"),
570        urls = [
571            "https://mirror.bazel.build/zlib.net/zlib-1.2.11.tar.gz",
572            "https://zlib.net/zlib-1.2.11.tar.gz",
573        ],
574    )
575
576    tf_http_archive(
577        name = "fft2d",
578        build_file = clean_dep("//third_party/fft2d:fft2d.BUILD"),
579        sha256 = "52bb637c70b971958ec79c9c8752b1df5ff0218a4db4510e60826e0cb79b5296",
580        urls = [
581            "https://mirror.bazel.build/www.kurims.kyoto-u.ac.jp/~ooura/fft.tgz",
582            "http://www.kurims.kyoto-u.ac.jp/~ooura/fft.tgz",
583        ],
584    )
585
586    tf_http_archive(
587        name = "snappy",
588        build_file = clean_dep("//third_party:snappy.BUILD"),
589        sha256 = "3dfa02e873ff51a11ee02b9ca391807f0c8ea0529a4924afa645fbf97163f9d4",
590        strip_prefix = "snappy-1.1.7",
591        system_build_file = clean_dep("//third_party/systemlibs:snappy.BUILD"),
592        urls = [
593            "https://mirror.bazel.build/github.com/google/snappy/archive/1.1.7.tar.gz",
594            "https://github.com/google/snappy/archive/1.1.7.tar.gz",
595        ],
596    )
597
598    tf_http_archive(
599        name = "nccl_archive",
600        build_file = clean_dep("//third_party:nccl/archive.BUILD"),
601        sha256 = "19132b5127fa8e02d95a09795866923f04064c8f1e0770b2b42ab551408882a4",
602        strip_prefix = "nccl-f93fe9bfd94884cec2ba711897222e0df5569a53",
603        urls = [
604            "https://mirror.bazel.build/github.com/nvidia/nccl/archive/f93fe9bfd94884cec2ba711897222e0df5569a53.tar.gz",
605            "https://github.com/nvidia/nccl/archive/f93fe9bfd94884cec2ba711897222e0df5569a53.tar.gz",
606        ],
607    )
608
609    tf_http_archive(
610        name = "kafka",
611        build_file = clean_dep("//third_party:kafka/BUILD"),
612        patch_file = clean_dep("//third_party/kafka:config.patch"),
613        sha256 = "cc6ebbcd0a826eec1b8ce1f625ffe71b53ef3290f8192b6cae38412a958f4fd3",
614        strip_prefix = "librdkafka-0.11.5",
615        urls = [
616            "https://mirror.bazel.build/github.com/edenhill/librdkafka/archive/v0.11.5.tar.gz",
617            "https://github.com/edenhill/librdkafka/archive/v0.11.5.tar.gz",
618        ],
619    )
620
621    java_import_external(
622        name = "junit",
623        jar_sha256 = "59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a",
624        jar_urls = [
625            "https://mirror.bazel.build/repo1.maven.org/maven2/junit/junit/4.12/junit-4.12.jar",
626            "http://repo1.maven.org/maven2/junit/junit/4.12/junit-4.12.jar",
627            "http://maven.ibiblio.org/maven2/junit/junit/4.12/junit-4.12.jar",
628        ],
629        licenses = ["reciprocal"],  # Common Public License Version 1.0
630        testonly_ = True,
631        deps = ["@org_hamcrest_core"],
632    )
633
634    java_import_external(
635        name = "org_hamcrest_core",
636        jar_sha256 = "66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9",
637        jar_urls = [
638            "https://mirror.bazel.build/repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar",
639            "http://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar",
640            "http://maven.ibiblio.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar",
641        ],
642        licenses = ["notice"],  # New BSD License
643        testonly_ = True,
644    )
645
646    java_import_external(
647        name = "com_google_testing_compile",
648        jar_sha256 = "edc180fdcd9f740240da1a7a45673f46f59c5578d8cd3fbc912161f74b5aebb8",
649        jar_urls = [
650            "http://mirror.bazel.build/repo1.maven.org/maven2/com/google/testing/compile/compile-testing/0.11/compile-testing-0.11.jar",
651            "http://repo1.maven.org/maven2/com/google/testing/compile/compile-testing/0.11/compile-testing-0.11.jar",
652        ],
653        licenses = ["notice"],  # New BSD License
654        testonly_ = True,
655        deps = ["@com_google_guava", "@com_google_truth"],
656    )
657
658    java_import_external(
659        name = "com_google_truth",
660        jar_sha256 = "032eddc69652b0a1f8d458f999b4a9534965c646b8b5de0eba48ee69407051df",
661        jar_urls = [
662            "http://mirror.bazel.build/repo1.maven.org/maven2/com/google/truth/truth/0.32/truth-0.32.jar",
663            "http://repo1.maven.org/maven2/com/google/truth/truth/0.32/truth-0.32.jar",
664        ],
665        licenses = ["notice"],  # Apache 2.0
666        testonly_ = True,
667        deps = ["@com_google_guava"],
668    )
669
670    java_import_external(
671        name = "org_checkerframework_qual",
672        jar_sha256 = "a17501717ef7c8dda4dba73ded50c0d7cde440fd721acfeacbf19786ceac1ed6",
673        jar_urls = [
674            "http://mirror.bazel.build/repo1.maven.org/maven2/org/checkerframework/checker-qual/2.4.0/checker-qual-2.4.0.jar",
675            "http://repo1.maven.org/maven2/org/checkerframework/checker-qual/2.4.0/checker-qual-2.4.0.jar",
676        ],
677        licenses = ["notice"],  # Apache 2.0
678    )
679
680    java_import_external(
681        name = "com_squareup_javapoet",
682        jar_sha256 = "5bb5abdfe4366c15c0da3332c57d484e238bd48260d6f9d6acf2b08fdde1efea",
683        jar_urls = [
684            "http://mirror.bazel.build/repo1.maven.org/maven2/com/squareup/javapoet/1.9.0/javapoet-1.9.0.jar",
685            "http://repo1.maven.org/maven2/com/squareup/javapoet/1.9.0/javapoet-1.9.0.jar",
686        ],
687        licenses = ["notice"],  # Apache 2.0
688    )
689
690    tf_http_archive(
691        name = "com_google_pprof",
692        build_file = clean_dep("//third_party:pprof.BUILD"),
693        sha256 = "e0928ca4aa10ea1e0551e2d7ce4d1d7ea2d84b2abbdef082b0da84268791d0c4",
694        strip_prefix = "pprof-c0fb62ec88c411cc91194465e54db2632845b650",
695        urls = [
696            "https://mirror.bazel.build/github.com/google/pprof/archive/c0fb62ec88c411cc91194465e54db2632845b650.tar.gz",
697            "https://github.com/google/pprof/archive/c0fb62ec88c411cc91194465e54db2632845b650.tar.gz",
698        ],
699    )
700
701    tf_http_archive(
702        name = "cub_archive",
703        build_file = clean_dep("//third_party:cub.BUILD"),
704        sha256 = "6bfa06ab52a650ae7ee6963143a0bbc667d6504822cbd9670369b598f18c58c3",
705        strip_prefix = "cub-1.8.0",
706        urls = [
707            "https://mirror.bazel.build/github.com/NVlabs/cub/archive/1.8.0.zip",
708            "https://github.com/NVlabs/cub/archive/1.8.0.zip",
709        ],
710    )
711
712    tf_http_archive(
713        name = "cython",
714        build_file = clean_dep("//third_party:cython.BUILD"),
715        delete = ["BUILD.bazel"],
716        sha256 = "bccc9aa050ea02595b2440188813b936eaf345e85fb9692790cecfe095cf91aa",
717        strip_prefix = "cython-0.28.4",
718        system_build_file = clean_dep("//third_party/systemlibs:cython.BUILD"),
719        urls = [
720            "https://mirror.bazel.build/github.com/cython/cython/archive/0.28.4.tar.gz",
721            "https://github.com/cython/cython/archive/0.28.4.tar.gz",
722        ],
723    )
724
725    tf_http_archive(
726        name = "arm_neon_2_x86_sse",
727        build_file = clean_dep("//third_party:arm_neon_2_x86_sse.BUILD"),
728        sha256 = "213733991310b904b11b053ac224fee2d4e0179e46b52fe7f8735b8831e04dcc",
729        strip_prefix = "ARM_NEON_2_x86_SSE-1200fe90bb174a6224a525ee60148671a786a71f",
730        urls = [
731            "https://mirror.bazel.build/github.com/intel/ARM_NEON_2_x86_SSE/archive/1200fe90bb174a6224a525ee60148671a786a71f.tar.gz",
732            "https://github.com/intel/ARM_NEON_2_x86_SSE/archive/1200fe90bb174a6224a525ee60148671a786a71f.tar.gz",
733        ],
734    )
735
736    tf_http_archive(
737        name = "double_conversion",
738        build_file = clean_dep("//third_party:double_conversion.BUILD"),
739        sha256 = "2f7fbffac0d98d201ad0586f686034371a6d152ca67508ab611adc2386ad30de",
740        strip_prefix = "double-conversion-3992066a95b823efc8ccc1baf82a1cfc73f6e9b8",
741        system_build_file = clean_dep("//third_party/systemlibs:double_conversion.BUILD"),
742        urls = [
743            "https://mirror.bazel.build/github.com/google/double-conversion/archive/3992066a95b823efc8ccc1baf82a1cfc73f6e9b8.zip",
744            "https://github.com/google/double-conversion/archive/3992066a95b823efc8ccc1baf82a1cfc73f6e9b8.zip",
745        ],
746    )
747
748    tf_http_archive(
749        name = "tflite_mobilenet_float",
750        build_file = clean_dep("//third_party:tflite_mobilenet_float.BUILD"),
751        sha256 = "2fadeabb9968ec6833bee903900dda6e61b3947200535874ce2fe42a8493abc0",
752        urls = [
753            "http://download.tensorflow.org/models/mobilenet_v1_2018_08_02/mobilenet_v1_1.0_224.tgz",
754            "http://download.tensorflow.org/models/mobilenet_v1_2018_08_02/mobilenet_v1_1.0_224.tgz",
755        ],
756    )
757
758    tf_http_archive(
759        name = "tflite_mobilenet_quant",
760        build_file = clean_dep("//third_party:tflite_mobilenet_quant.BUILD"),
761        sha256 = "d32432d28673a936b2d6281ab0600c71cf7226dfe4cdcef3012555f691744166",
762        urls = [
763            "http://download.tensorflow.org/models/mobilenet_v1_2018_08_02/mobilenet_v1_1.0_224_quant.tgz",
764            "http://download.tensorflow.org/models/mobilenet_v1_2018_08_02/mobilenet_v1_1.0_224_quant.tgz",
765        ],
766    )
767
768    tf_http_archive(
769        name = "tflite_mobilenet_ssd",
770        build_file = str(Label("//third_party:tflite_mobilenet.BUILD")),
771        sha256 = "767057f2837a46d97882734b03428e8dd640b93236052b312b2f0e45613c1cf0",
772        urls = [
773            "https://mirror.bazel.build/storage.googleapis.com/download.tensorflow.org/models/tflite/mobilenet_ssd_tflite_v1.zip",
774            "https://storage.googleapis.com/download.tensorflow.org/models/tflite/mobilenet_ssd_tflite_v1.zip",
775        ],
776    )
777
778    tf_http_archive(
779        name = "tflite_mobilenet_ssd_quant",
780        build_file = str(Label("//third_party:tflite_mobilenet.BUILD")),
781        sha256 = "a809cd290b4d6a2e8a9d5dad076e0bd695b8091974e0eed1052b480b2f21b6dc",
782        urls = [
783            "https://mirror.bazel.build/storage.googleapis.com/download.tensorflow.org/models/tflite/coco_ssd_mobilenet_v1_0.75_quant_2018_06_29.zip",
784            "https://storage.googleapis.com/download.tensorflow.org/models/tflite/coco_ssd_mobilenet_v1_0.75_quant_2018_06_29.zip",
785        ],
786    )
787
788    tf_http_archive(
789        name = "tflite_mobilenet_ssd_quant_protobuf",
790        build_file = str(Label("//third_party:tflite_mobilenet.BUILD")),
791        sha256 = "09280972c5777f1aa775ef67cb4ac5d5ed21970acd8535aeca62450ef14f0d79",
792        strip_prefix = "ssd_mobilenet_v1_quantized_300x300_coco14_sync_2018_07_18",
793        urls = [
794            "https://mirror.bazel.build/storage.googleapis.com/download.tensorflow.org/models/object_detection/ssd_mobilenet_v1_quantized_300x300_coco14_sync_2018_07_18.tar.gz",
795            "http://storage.googleapis.com/download.tensorflow.org/models/object_detection/ssd_mobilenet_v1_quantized_300x300_coco14_sync_2018_07_18.tar.gz",
796        ],
797    )
798
799    tf_http_archive(
800        name = "tflite_conv_actions_frozen",
801        build_file = str(Label("//third_party:tflite_mobilenet.BUILD")),
802        sha256 = "d947b38cba389b5e2d0bfc3ea6cc49c784e187b41a071387b3742d1acac7691e",
803        urls = [
804            "https://mirror.bazel.build/storage.googleapis.com/download.tensorflow.org/models/tflite/conv_actions_tflite.zip",
805            "https://storage.googleapis.com/download.tensorflow.org/models/tflite/conv_actions_tflite.zip",
806        ],
807    )
808
809    tf_http_archive(
810        name = "tflite_smartreply",
811        build_file = clean_dep("//third_party:tflite_smartreply.BUILD"),
812        sha256 = "8980151b85a87a9c1a3bb1ed4748119e4a85abd3cb5744d83da4d4bd0fbeef7c",
813        urls = [
814            "https://mirror.bazel.build/storage.googleapis.com/download.tensorflow.org/models/tflite/smartreply_1.0_2017_11_01.zip",
815            "https://storage.googleapis.com/download.tensorflow.org/models/tflite/smartreply_1.0_2017_11_01.zip",
816        ],
817    )
818
819    tf_http_archive(
820        name = "tflite_ovic_testdata",
821        build_file = clean_dep("//third_party:tflite_ovic_testdata.BUILD"),
822        sha256 = "21288dccc517acee47fa9648d4d3da28bf0fef5381911ed7b4d2ee36366ffa20",
823        strip_prefix = "ovic",
824        urls = [
825            "https://mirror.bazel.build/storage.googleapis.com/download.tensorflow.org/data/ovic_2018_10_23.zip",
826            "https://storage.googleapis.com/download.tensorflow.org/data/ovic_2018_10_23.zip",
827        ],
828    )
829
830    tf_http_archive(
831        name = "build_bazel_rules_android",
832        sha256 = "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806",
833        strip_prefix = "rules_android-0.1.1",
834        urls = [
835            "https://mirror.bazel.build/github.com/bazelbuild/rules_android/archive/v0.1.1.zip",
836            "https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip",
837        ],
838    )
839
840    tf_http_archive(
841        name = "tbb",
842        build_file = clean_dep("//third_party/ngraph:tbb.BUILD"),
843        sha256 = "c3245012296f09f1418b78a8c2f17df5188b3bd0db620f7fd5fabe363320805a",
844        strip_prefix = "tbb-2019_U1",
845        urls = [
846            "https://mirror.bazel.build/github.com/01org/tbb/archive/2019_U1.zip",
847            "https://github.com/01org/tbb/archive/2019_U1.zip",
848        ],
849    )
850
851    tf_http_archive(
852        name = "ngraph",
853        build_file = clean_dep("//third_party/ngraph:ngraph.BUILD"),
854        sha256 = "a1780f24a1381fc25e323b4b2d08b6ef5129f42e011305b2a34dcf43a48030d5",
855        strip_prefix = "ngraph-0.11.0",
856        urls = [
857            "https://mirror.bazel.build/github.com/NervanaSystems/ngraph/archive/v0.11.0.tar.gz",
858            "https://github.com/NervanaSystems/ngraph/archive/v0.11.0.tar.gz",
859        ],
860    )
861
862    tf_http_archive(
863        name = "nlohmann_json_lib",
864        build_file = clean_dep("//third_party/ngraph:nlohmann_json.BUILD"),
865        sha256 = "c377963a95989270c943d522bfefe7b889ef5ed0e1e15d535fd6f6f16ed70732",
866        strip_prefix = "json-3.4.0",
867        urls = [
868            "https://mirror.bazel.build/github.com/nlohmann/json/archive/v3.4.0.tar.gz",
869            "https://github.com/nlohmann/json/archive/v3.4.0.tar.gz",
870        ],
871    )
872
873    tf_http_archive(
874        name = "ngraph_tf",
875        build_file = clean_dep("//third_party/ngraph:ngraph_tf.BUILD"),
876        sha256 = "742a642d2c6622277df4c902b6830d616d0539cc8cd843d6cdb899bb99e66e36",
877        strip_prefix = "ngraph-tf-0.9.0",
878        urls = [
879            "https://mirror.bazel.build/github.com/NervanaSystems/ngraph-tf/archive/v0.9.0.zip",
880            "https://github.com/NervanaSystems/ngraph-tf/archive/v0.9.0.zip",
881        ],
882    )
883
884    ##############################################################################
885    # BIND DEFINITIONS
886    #
887    # Please do not add bind() definitions unless we have no other choice.
888    # If that ends up being the case, please leave a comment explaining
889    # why we can't depend on the canonical build target.
890
891    # gRPC wants a cares dependency but its contents is not actually
892    # important since we have set GRPC_ARES=0 in .bazelrc
893    native.bind(
894        name = "cares",
895        actual = "@com_github_nanopb_nanopb//:nanopb",
896    )
897
898    # Needed by Protobuf
899    native.bind(
900        name = "grpc_cpp_plugin",
901        actual = "@grpc//:grpc_cpp_plugin",
902    )
903    native.bind(
904        name = "grpc_python_plugin",
905        actual = "@grpc//:grpc_python_plugin",
906    )
907
908    native.bind(
909        name = "grpc_lib",
910        actual = "@grpc//:grpc++",
911    )
912
913    native.bind(
914        name = "grpc_lib_unsecure",
915        actual = "@grpc//:grpc++_unsecure",
916    )
917
918    # Needed by gRPC
919    native.bind(
920        name = "libssl",
921        actual = "@boringssl//:ssl",
922    )
923
924    # Needed by gRPC
925    native.bind(
926        name = "nanopb",
927        actual = "@com_github_nanopb_nanopb//:nanopb",
928    )
929
930    # Needed by gRPC
931    native.bind(
932        name = "protobuf",
933        actual = "@protobuf_archive//:protobuf",
934    )
935
936    # gRPC expects //external:protobuf_clib and //external:protobuf_compiler
937    # to point to Protobuf's compiler library.
938    native.bind(
939        name = "protobuf_clib",
940        actual = "@protobuf_archive//:protoc_lib",
941    )
942
943    # Needed by gRPC
944    native.bind(
945        name = "protobuf_headers",
946        actual = "@protobuf_archive//:protobuf_headers",
947    )
948
949    # Needed by Protobuf
950    native.bind(
951        name = "python_headers",
952        actual = clean_dep("//third_party/python_runtime:headers"),
953    )
954
955    # Needed by Protobuf
956    native.bind(
957        name = "six",
958        actual = "@six_archive//:six",
959    )
960
961    # Needed by gRPC
962    native.bind(
963        name = "zlib",
964        actual = "@zlib_archive//:zlib",
965    )
966