Make tf_http_archive() consistently take string attributes and create a label from it early in the rule.

That way, we do not need to use clean_dep anymore in workspace.bzl, which is easy to forget.

PiperOrigin-RevId: 358860040
Change-Id: Ia21a1c6fc19b386103b8ff3f153fef7352ef8ab2
This commit is contained in:
Christian Sigg 2021-02-22 11:11:42 -08:00 committed by TensorFlower Gardener
parent 0bb52df110
commit 6b350fcde9
4 changed files with 153 additions and 145 deletions
tensorflow
third_party

View File

@ -110,7 +110,7 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
# Point //external/local_config_arm_compiler to //external/arm_compiler # Point //external/local_config_arm_compiler to //external/arm_compiler
arm_compiler_configure( arm_compiler_configure(
name = "local_config_arm_compiler", name = "local_config_arm_compiler",
build_file = clean_dep("//third_party/toolchains/cpus/arm:BUILD"), build_file = "//third_party/toolchains/cpus/arm:BUILD",
remote_config_repo_arm = "../arm_compiler", remote_config_repo_arm = "../arm_compiler",
remote_config_repo_aarch64 = "../aarch64_compiler", remote_config_repo_aarch64 = "../aarch64_compiler",
) )
@ -118,7 +118,7 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
# TFLite crossbuild toolchain for embeddeds Linux # TFLite crossbuild toolchain for embeddeds Linux
arm_linux_toolchain_configure( arm_linux_toolchain_configure(
name = "local_config_embedded_arm", name = "local_config_embedded_arm",
build_file = clean_dep("//third_party/toolchains/embedded/arm-linux:BUILD"), build_file = "//third_party/toolchains/embedded/arm-linux:BUILD",
aarch64_repo = "../aarch64_linux_toolchain", aarch64_repo = "../aarch64_linux_toolchain",
armhf_repo = "../armhf_linux_toolchain", armhf_repo = "../armhf_linux_toolchain",
) )
@ -164,7 +164,7 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "mkl_dnn", name = "mkl_dnn",
build_file = clean_dep("//third_party/mkl_dnn:mkldnn.BUILD"), build_file = "//third_party/mkl_dnn:mkldnn.BUILD",
sha256 = "a0211aeb5e7dad50b97fa5dffc1a2fe2fe732572d4164e1ee8750a2ede43fbec", sha256 = "a0211aeb5e7dad50b97fa5dffc1a2fe2fe732572d4164e1ee8750a2ede43fbec",
strip_prefix = "oneDNN-0.21.3", strip_prefix = "oneDNN-0.21.3",
urls = [ urls = [
@ -175,7 +175,7 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "mkl_dnn_v1", name = "mkl_dnn_v1",
build_file = clean_dep("//third_party/mkl_dnn:mkldnn_v1.BUILD"), build_file = "//third_party/mkl_dnn:mkldnn_v1.BUILD",
sha256 = "5369f7b2f0b52b40890da50c0632c3a5d1082d98325d0f2bff125d19d0dcaa1d", sha256 = "5369f7b2f0b52b40890da50c0632c3a5d1082d98325d0f2bff125d19d0dcaa1d",
strip_prefix = "oneDNN-1.6.4", strip_prefix = "oneDNN-1.6.4",
urls = [ urls = [
@ -186,10 +186,10 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "com_google_absl", name = "com_google_absl",
build_file = clean_dep("//third_party:com_google_absl.BUILD"), build_file = "//third_party:com_google_absl.BUILD",
# TODO: Remove the patch when https://github.com/abseil/abseil-cpp/issues/326 is resolved # TODO: Remove the patch when https://github.com/abseil/abseil-cpp/issues/326 is resolved
# and when TensorFlow is build against CUDA 10.2 # and when TensorFlow is build against CUDA 10.2
patch_file = clean_dep("//third_party:com_google_absl_fix_mac_and_nvcc_build.patch"), patch_file = "//third_party:com_google_absl_fix_mac_and_nvcc_build.patch",
sha256 = "f368a8476f4e2e0eccf8a7318b98dafbe30b2600f4e3cf52636e5eb145aba06a", # SHARED_ABSL_SHA sha256 = "f368a8476f4e2e0eccf8a7318b98dafbe30b2600f4e3cf52636e5eb145aba06a", # SHARED_ABSL_SHA
strip_prefix = "abseil-cpp-df3ea785d8c30a9503321a3d35ee7d35808f190d", strip_prefix = "abseil-cpp-df3ea785d8c30a9503321a3d35ee7d35808f190d",
urls = [ urls = [
@ -200,7 +200,7 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "eigen_archive", name = "eigen_archive",
build_file = clean_dep("//third_party:eigen.BUILD"), build_file = "//third_party:eigen.BUILD",
sha256 = "d76992f1972e4ff270221c7ee8125610a8e02bb46708a7295ee646e99287083b", # SHARED_EIGEN_SHA sha256 = "d76992f1972e4ff270221c7ee8125610a8e02bb46708a7295ee646e99287083b", # SHARED_EIGEN_SHA
strip_prefix = "eigen-90ee821c563fa20db4d64d6991ddca256d5c52f2", strip_prefix = "eigen-90ee821c563fa20db4d64d6991ddca256d5c52f2",
urls = [ urls = [
@ -211,7 +211,7 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "arm_compiler", name = "arm_compiler",
build_file = clean_dep("//:arm_compiler.BUILD"), build_file = "//:arm_compiler.BUILD",
sha256 = "b9e7d50ffd9996ed18900d041d362c99473b382c0ae049b2fce3290632d2656f", sha256 = "b9e7d50ffd9996ed18900d041d362c99473b382c0ae049b2fce3290632d2656f",
strip_prefix = "rpi-newer-crosstools-eb68350c5c8ec1663b7fe52c742ac4271e3217c5/x64-gcc-6.5.0/arm-rpi-linux-gnueabihf/", strip_prefix = "rpi-newer-crosstools-eb68350c5c8ec1663b7fe52c742ac4271e3217c5/x64-gcc-6.5.0/arm-rpi-linux-gnueabihf/",
urls = [ urls = [
@ -236,7 +236,7 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "aarch64_linux_toolchain", name = "aarch64_linux_toolchain",
build_file = clean_dep("//third_party/toolchains/embedded/arm-linux:aarch64-linux-toolchain.BUILD"), build_file = "//third_party/toolchains/embedded/arm-linux:aarch64-linux-toolchain.BUILD",
sha256 = "8ce3e7688a47d8cd2d8e8323f147104ae1c8139520eca50ccf8a7fa933002731", sha256 = "8ce3e7688a47d8cd2d8e8323f147104ae1c8139520eca50ccf8a7fa933002731",
strip_prefix = "gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu", strip_prefix = "gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu",
urls = [ urls = [
@ -247,7 +247,7 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "armhf_linux_toolchain", name = "armhf_linux_toolchain",
build_file = clean_dep("//third_party/toolchains/embedded/arm-linux:armhf-linux-toolchain.BUILD"), build_file = "//third_party/toolchains/embedded/arm-linux:armhf-linux-toolchain.BUILD",
sha256 = "d4f6480ecaa99e977e3833cc8a8e1263f9eecd1ce2d022bb548a24c4f32670f5", sha256 = "d4f6480ecaa99e977e3833cc8a8e1263f9eecd1ce2d022bb548a24c4f32670f5",
strip_prefix = "gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf", strip_prefix = "gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf",
urls = [ urls = [
@ -258,7 +258,7 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "libxsmm_archive", name = "libxsmm_archive",
build_file = clean_dep("//third_party:libxsmm.BUILD"), build_file = "//third_party:libxsmm.BUILD",
sha256 = "9c0af4509ea341d1ee2c6c19fc6f19289318c3bd4b17844efeb9e7f9691abf76", sha256 = "9c0af4509ea341d1ee2c6c19fc6f19289318c3bd4b17844efeb9e7f9691abf76",
strip_prefix = "libxsmm-1.14", strip_prefix = "libxsmm-1.14",
urls = [ urls = [
@ -271,7 +271,7 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
name = "com_googlesource_code_re2", name = "com_googlesource_code_re2",
sha256 = "d070e2ffc5476c496a6a872a6f246bfddce8e7797d6ba605a7c8d72866743bf9", sha256 = "d070e2ffc5476c496a6a872a6f246bfddce8e7797d6ba605a7c8d72866743bf9",
strip_prefix = "re2-506cfa4bffd060c06ec338ce50ea3468daa6c814", strip_prefix = "re2-506cfa4bffd060c06ec338ce50ea3468daa6c814",
system_build_file = clean_dep("//third_party/systemlibs:re2.BUILD"), system_build_file = "//third_party/systemlibs:re2.BUILD",
urls = [ urls = [
"https://storage.googleapis.com/mirror.tensorflow.org/github.com/google/re2/archive/506cfa4bffd060c06ec338ce50ea3468daa6c814.tar.gz", "https://storage.googleapis.com/mirror.tensorflow.org/github.com/google/re2/archive/506cfa4bffd060c06ec338ce50ea3468daa6c814.tar.gz",
"https://github.com/google/re2/archive/506cfa4bffd060c06ec338ce50ea3468daa6c814.tar.gz", "https://github.com/google/re2/archive/506cfa4bffd060c06ec338ce50ea3468daa6c814.tar.gz",
@ -297,7 +297,7 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
"@com_github_curl_curl": "@curl", "@com_github_curl_curl": "@curl",
"@com_github_nlohmann_json": "@nlohmann_json_lib", "@com_github_nlohmann_json": "@nlohmann_json_lib",
}, },
system_build_file = clean_dep("//third_party/systemlibs:google_cloud_cpp.BUILD"), system_build_file = "//third_party/systemlibs:google_cloud_cpp.BUILD",
system_link_files = { system_link_files = {
"//third_party/systemlibs:google_cloud_cpp.google.cloud.bigtable.BUILD": "google/cloud/bigtable/BUILD", "//third_party/systemlibs:google_cloud_cpp.google.cloud.bigtable.BUILD": "google/cloud/bigtable/BUILD",
}, },
@ -319,7 +319,7 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "com_google_googleapis", name = "com_google_googleapis",
build_file = clean_dep("//third_party/googleapis:googleapis.BUILD"), build_file = "//third_party/googleapis:googleapis.BUILD",
sha256 = "7ebab01b06c555f4b6514453dc3e1667f810ef91d1d4d2d3aa29bb9fcb40a900", sha256 = "7ebab01b06c555f4b6514453dc3e1667f810ef91d1d4d2d3aa29bb9fcb40a900",
strip_prefix = "googleapis-541b1ded4abadcc38e8178680b0677f65594ea6f", strip_prefix = "googleapis-541b1ded4abadcc38e8178680b0677f65594ea6f",
urls = [ urls = [
@ -340,7 +340,7 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "farmhash_archive", name = "farmhash_archive",
build_file = clean_dep("//third_party:farmhash.BUILD"), build_file = "//third_party:farmhash.BUILD",
sha256 = "6560547c63e4af82b0f202cb710ceabb3f21347a4b996db565a411da5b17aba0", # SHARED_FARMHASH_SHA sha256 = "6560547c63e4af82b0f202cb710ceabb3f21347a4b996db565a411da5b17aba0", # SHARED_FARMHASH_SHA
strip_prefix = "farmhash-816a4ae622e964763ca0862d9dbd19324a1eaf45", strip_prefix = "farmhash-816a4ae622e964763ca0862d9dbd19324a1eaf45",
urls = [ urls = [
@ -351,11 +351,11 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "png", name = "png",
build_file = clean_dep("//third_party:png.BUILD"), build_file = "//third_party:png.BUILD",
patch_file = clean_dep("//third_party:png_fix_rpi.patch"), patch_file = "//third_party:png_fix_rpi.patch",
sha256 = "ca74a0dace179a8422187671aee97dd3892b53e168627145271cad5b5ac81307", sha256 = "ca74a0dace179a8422187671aee97dd3892b53e168627145271cad5b5ac81307",
strip_prefix = "libpng-1.6.37", strip_prefix = "libpng-1.6.37",
system_build_file = clean_dep("//third_party/systemlibs:png.BUILD"), system_build_file = "//third_party/systemlibs:png.BUILD",
urls = [ urls = [
"https://storage.googleapis.com/mirror.tensorflow.org/github.com/glennrp/libpng/archive/v1.6.37.tar.gz", "https://storage.googleapis.com/mirror.tensorflow.org/github.com/glennrp/libpng/archive/v1.6.37.tar.gz",
"https://github.com/glennrp/libpng/archive/v1.6.37.tar.gz", "https://github.com/glennrp/libpng/archive/v1.6.37.tar.gz",
@ -364,10 +364,10 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "org_sqlite", name = "org_sqlite",
build_file = clean_dep("//third_party:sqlite.BUILD"), build_file = "//third_party:sqlite.BUILD",
sha256 = "e0b1c0345fe4338b936e17da8e1bd88366cd210e576834546977f040c12a8f68", sha256 = "e0b1c0345fe4338b936e17da8e1bd88366cd210e576834546977f040c12a8f68",
strip_prefix = "sqlite-amalgamation-3340100", strip_prefix = "sqlite-amalgamation-3340100",
system_build_file = clean_dep("//third_party/systemlibs:sqlite.BUILD"), system_build_file = "//third_party/systemlibs:sqlite.BUILD",
urls = [ urls = [
"https://storage.googleapis.com/mirror.tensorflow.org/www.sqlite.org/2021/sqlite-amalgamation-3340100.zip", "https://storage.googleapis.com/mirror.tensorflow.org/www.sqlite.org/2021/sqlite-amalgamation-3340100.zip",
"https://www.sqlite.org/2021/sqlite-amalgamation-3340100.zip", "https://www.sqlite.org/2021/sqlite-amalgamation-3340100.zip",
@ -376,11 +376,11 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "gif", name = "gif",
build_file = clean_dep("//third_party:gif.BUILD"), build_file = "//third_party:gif.BUILD",
patch_file = clean_dep("//third_party:gif_fix_strtok_r.patch"), patch_file = "//third_party:gif_fix_strtok_r.patch",
sha256 = "31da5562f44c5f15d63340a09a4fd62b48c45620cd302f77a6d9acf0077879bd", sha256 = "31da5562f44c5f15d63340a09a4fd62b48c45620cd302f77a6d9acf0077879bd",
strip_prefix = "giflib-5.2.1", strip_prefix = "giflib-5.2.1",
system_build_file = clean_dep("//third_party/systemlibs:gif.BUILD"), system_build_file = "//third_party/systemlibs:gif.BUILD",
urls = [ urls = [
"https://storage.googleapis.com/mirror.tensorflow.org/pilotfiber.dl.sourceforge.net/project/giflib/giflib-5.2.1.tar.gz", "https://storage.googleapis.com/mirror.tensorflow.org/pilotfiber.dl.sourceforge.net/project/giflib/giflib-5.2.1.tar.gz",
"https://pilotfiber.dl.sourceforge.net/project/giflib/giflib-5.2.1.tar.gz", "https://pilotfiber.dl.sourceforge.net/project/giflib/giflib-5.2.1.tar.gz",
@ -389,10 +389,10 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "six_archive", name = "six_archive",
build_file = clean_dep("//third_party:six.BUILD"), build_file = "//third_party:six.BUILD",
sha256 = "30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259", sha256 = "30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259",
strip_prefix = "six-1.15.0", strip_prefix = "six-1.15.0",
system_build_file = clean_dep("//third_party/systemlibs:six.BUILD"), system_build_file = "//third_party/systemlibs:six.BUILD",
urls = [ urls = [
"https://storage.googleapis.com/mirror.tensorflow.org/pypi.python.org/packages/source/s/six/six-1.15.0.tar.gz", "https://storage.googleapis.com/mirror.tensorflow.org/pypi.python.org/packages/source/s/six/six-1.15.0.tar.gz",
"https://pypi.python.org/packages/source/s/six/six-1.15.0.tar.gz", "https://pypi.python.org/packages/source/s/six/six-1.15.0.tar.gz",
@ -401,10 +401,10 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "astor_archive", name = "astor_archive",
build_file = clean_dep("//third_party:astor.BUILD"), build_file = "//third_party:astor.BUILD",
sha256 = "95c30d87a6c2cf89aa628b87398466840f0ad8652f88eb173125a6df8533fb8d", sha256 = "95c30d87a6c2cf89aa628b87398466840f0ad8652f88eb173125a6df8533fb8d",
strip_prefix = "astor-0.7.1", strip_prefix = "astor-0.7.1",
system_build_file = clean_dep("//third_party/systemlibs:astor.BUILD"), system_build_file = "//third_party/systemlibs:astor.BUILD",
urls = [ urls = [
"https://storage.googleapis.com/mirror.tensorflow.org/pypi.python.org/packages/99/80/f9482277c919d28bebd85813c0a70117214149a96b08981b72b63240b84c/astor-0.7.1.tar.gz", "https://storage.googleapis.com/mirror.tensorflow.org/pypi.python.org/packages/99/80/f9482277c919d28bebd85813c0a70117214149a96b08981b72b63240b84c/astor-0.7.1.tar.gz",
"https://pypi.python.org/packages/99/80/f9482277c919d28bebd85813c0a70117214149a96b08981b72b63240b84c/astor-0.7.1.tar.gz", "https://pypi.python.org/packages/99/80/f9482277c919d28bebd85813c0a70117214149a96b08981b72b63240b84c/astor-0.7.1.tar.gz",
@ -413,10 +413,10 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "astunparse_archive", name = "astunparse_archive",
build_file = clean_dep("//third_party:astunparse.BUILD"), build_file = "//third_party:astunparse.BUILD",
sha256 = "5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872", sha256 = "5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872",
strip_prefix = "astunparse-1.6.3/lib", strip_prefix = "astunparse-1.6.3/lib",
system_build_file = clean_dep("//third_party/systemlibs:astunparse.BUILD"), system_build_file = "//third_party/systemlibs:astunparse.BUILD",
urls = [ urls = [
"https://storage.googleapis.com/mirror.tensorflow.org/files.pythonhosted.org/packages/f3/af/4182184d3c338792894f34a62672919db7ca008c89abee9b564dd34d8029/astunparse-1.6.3.tar.gz", "https://storage.googleapis.com/mirror.tensorflow.org/files.pythonhosted.org/packages/f3/af/4182184d3c338792894f34a62672919db7ca008c89abee9b564dd34d8029/astunparse-1.6.3.tar.gz",
"https://files.pythonhosted.org/packages/f3/af/4182184d3c338792894f34a62672919db7ca008c89abee9b564dd34d8029/astunparse-1.6.3.tar.gz", "https://files.pythonhosted.org/packages/f3/af/4182184d3c338792894f34a62672919db7ca008c89abee9b564dd34d8029/astunparse-1.6.3.tar.gz",
@ -436,10 +436,10 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "functools32_archive", name = "functools32_archive",
build_file = clean_dep("//third_party:functools32.BUILD"), build_file = "//third_party:functools32.BUILD",
sha256 = "f6253dfbe0538ad2e387bd8fdfd9293c925d63553f5813c4e587745416501e6d", sha256 = "f6253dfbe0538ad2e387bd8fdfd9293c925d63553f5813c4e587745416501e6d",
strip_prefix = "functools32-3.2.3-2", strip_prefix = "functools32-3.2.3-2",
system_build_file = clean_dep("//third_party/systemlibs:functools32.BUILD"), system_build_file = "//third_party/systemlibs:functools32.BUILD",
urls = [ urls = [
"https://storage.googleapis.com/mirror.tensorflow.org/pypi.python.org/packages/c5/60/6ac26ad05857c601308d8fb9e87fa36d0ebf889423f47c3502ef034365db/functools32-3.2.3-2.tar.gz", "https://storage.googleapis.com/mirror.tensorflow.org/pypi.python.org/packages/c5/60/6ac26ad05857c601308d8fb9e87fa36d0ebf889423f47c3502ef034365db/functools32-3.2.3-2.tar.gz",
"https://pypi.python.org/packages/c5/60/6ac26ad05857c601308d8fb9e87fa36d0ebf889423f47c3502ef034365db/functools32-3.2.3-2.tar.gz", "https://pypi.python.org/packages/c5/60/6ac26ad05857c601308d8fb9e87fa36d0ebf889423f47c3502ef034365db/functools32-3.2.3-2.tar.gz",
@ -448,10 +448,10 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "gast_archive", name = "gast_archive",
build_file = clean_dep("//third_party:gast.BUILD"), build_file = "//third_party:gast.BUILD",
sha256 = "40feb7b8b8434785585ab224d1568b857edb18297e5a3047f1ba012bc83b42c1", sha256 = "40feb7b8b8434785585ab224d1568b857edb18297e5a3047f1ba012bc83b42c1",
strip_prefix = "gast-0.4.0", strip_prefix = "gast-0.4.0",
system_build_file = clean_dep("//third_party/systemlibs:gast.BUILD"), system_build_file = "//third_party/systemlibs:gast.BUILD",
urls = [ urls = [
"http://mirror.tensorflow.org/files.pythonhosted.org/packages/12/59/eaa15ab9710a20e22225efd042cd2d6a0b559a0656d5baba9641a2a4a921/gast-0.4.0.tar.gz", "http://mirror.tensorflow.org/files.pythonhosted.org/packages/12/59/eaa15ab9710a20e22225efd042cd2d6a0b559a0656d5baba9641a2a4a921/gast-0.4.0.tar.gz",
"https://files.pythonhosted.org/packages/83/4a/07c7e59cef23fb147454663c3271c21da68ba2ab141427c20548ae5a8a4d/gast-0.4.0.tar.gz", "https://files.pythonhosted.org/packages/83/4a/07c7e59cef23fb147454663c3271c21da68ba2ab141427c20548ae5a8a4d/gast-0.4.0.tar.gz",
@ -460,10 +460,10 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "termcolor_archive", name = "termcolor_archive",
build_file = clean_dep("//third_party:termcolor.BUILD"), build_file = "//third_party:termcolor.BUILD",
sha256 = "1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b", sha256 = "1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b",
strip_prefix = "termcolor-1.1.0", strip_prefix = "termcolor-1.1.0",
system_build_file = clean_dep("//third_party/systemlibs:termcolor.BUILD"), system_build_file = "//third_party/systemlibs:termcolor.BUILD",
urls = [ urls = [
"https://storage.googleapis.com/mirror.tensorflow.org/pypi.python.org/packages/8a/48/a76be51647d0eb9f10e2a4511bf3ffb8cc1e6b14e9e4fab46173aa79f981/termcolor-1.1.0.tar.gz", "https://storage.googleapis.com/mirror.tensorflow.org/pypi.python.org/packages/8a/48/a76be51647d0eb9f10e2a4511bf3ffb8cc1e6b14e9e4fab46173aa79f981/termcolor-1.1.0.tar.gz",
"https://pypi.python.org/packages/8a/48/a76be51647d0eb9f10e2a4511bf3ffb8cc1e6b14e9e4fab46173aa79f981/termcolor-1.1.0.tar.gz", "https://pypi.python.org/packages/8a/48/a76be51647d0eb9f10e2a4511bf3ffb8cc1e6b14e9e4fab46173aa79f981/termcolor-1.1.0.tar.gz",
@ -472,10 +472,10 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "typing_extensions_archive", name = "typing_extensions_archive",
build_file = clean_dep("//third_party:typing_extensions.BUILD"), build_file = "//third_party:typing_extensions.BUILD",
sha256 = "79ee589a3caca649a9bfd2a8de4709837400dfa00b6cc81962a1e6a1815969ae", sha256 = "79ee589a3caca649a9bfd2a8de4709837400dfa00b6cc81962a1e6a1815969ae",
strip_prefix = "typing_extensions-3.7.4.2/src_py3", strip_prefix = "typing_extensions-3.7.4.2/src_py3",
system_build_file = clean_dep("//third_party/systemlibs:typing_extensions.BUILD"), system_build_file = "//third_party/systemlibs:typing_extensions.BUILD",
urls = [ urls = [
"http://mirror.tensorflow.org/files.pythonhosted.org/packages/6a/28/d32852f2af6b5ead85d396249d5bdf450833f3a69896d76eb480d9c5e406/typing_extensions-3.7.4.2.tar.gz", "http://mirror.tensorflow.org/files.pythonhosted.org/packages/6a/28/d32852f2af6b5ead85d396249d5bdf450833f3a69896d76eb480d9c5e406/typing_extensions-3.7.4.2.tar.gz",
"https://files.pythonhosted.org/packages/6a/28/d32852f2af6b5ead85d396249d5bdf450833f3a69896d76eb480d9c5e406/typing_extensions-3.7.4.2.tar.gz", "https://files.pythonhosted.org/packages/6a/28/d32852f2af6b5ead85d396249d5bdf450833f3a69896d76eb480d9c5e406/typing_extensions-3.7.4.2.tar.gz",
@ -495,10 +495,10 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "opt_einsum_archive", name = "opt_einsum_archive",
build_file = clean_dep("//third_party:opt_einsum.BUILD"), build_file = "//third_party:opt_einsum.BUILD",
sha256 = "d3d464b4da7ef09e444c30e4003a27def37f85ff10ff2671e5f7d7813adac35b", sha256 = "d3d464b4da7ef09e444c30e4003a27def37f85ff10ff2671e5f7d7813adac35b",
strip_prefix = "opt_einsum-2.3.2", strip_prefix = "opt_einsum-2.3.2",
system_build_file = clean_dep("//third_party/systemlibs:opt_einsum.BUILD"), system_build_file = "//third_party/systemlibs:opt_einsum.BUILD",
urls = [ urls = [
"https://storage.googleapis.com/mirror.tensorflow.org/pypi.python.org/packages/f6/d6/44792ec668bcda7d91913c75237314e688f70415ab2acd7172c845f0b24f/opt_einsum-2.3.2.tar.gz", "https://storage.googleapis.com/mirror.tensorflow.org/pypi.python.org/packages/f6/d6/44792ec668bcda7d91913c75237314e688f70415ab2acd7172c845f0b24f/opt_einsum-2.3.2.tar.gz",
"https://pypi.python.org/packages/f6/d6/44792ec668bcda7d91913c75237314e688f70415ab2acd7172c845f0b24f/opt_einsum-2.3.2.tar.gz", "https://pypi.python.org/packages/f6/d6/44792ec668bcda7d91913c75237314e688f70415ab2acd7172c845f0b24f/opt_einsum-2.3.2.tar.gz",
@ -509,7 +509,7 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
name = "absl_py", name = "absl_py",
sha256 = "603febc9b95a8f2979a7bdb77d2f5e4d9b30d4e0d59579f88eba67d4e4cc5462", sha256 = "603febc9b95a8f2979a7bdb77d2f5e4d9b30d4e0d59579f88eba67d4e4cc5462",
strip_prefix = "abseil-py-pypi-v0.9.0", strip_prefix = "abseil-py-pypi-v0.9.0",
system_build_file = clean_dep("//third_party/systemlibs:absl_py.BUILD"), system_build_file = "//third_party/systemlibs:absl_py.BUILD",
system_link_files = { system_link_files = {
"//third_party/systemlibs:absl_py.absl.BUILD": "absl/BUILD", "//third_party/systemlibs:absl_py.absl.BUILD": "absl/BUILD",
"//third_party/systemlibs:absl_py.absl.flags.BUILD": "absl/flags/BUILD", "//third_party/systemlibs:absl_py.absl.flags.BUILD": "absl/flags/BUILD",
@ -529,14 +529,14 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
"https://pypi.python.org/packages/bf/3e/31d502c25302814a7c2f1d3959d2a3b3f78e509002ba91aea64993936876/enum34-1.1.6.tar.gz", "https://pypi.python.org/packages/bf/3e/31d502c25302814a7c2f1d3959d2a3b3f78e509002ba91aea64993936876/enum34-1.1.6.tar.gz",
], ],
sha256 = "8ad8c4783bf61ded74527bffb48ed9b54166685e4230386a9ed9b1279e2df5b1", sha256 = "8ad8c4783bf61ded74527bffb48ed9b54166685e4230386a9ed9b1279e2df5b1",
build_file = clean_dep("//third_party:enum34.BUILD"), build_file = "//third_party:enum34.BUILD",
system_build_file = clean_dep("//third_party/systemlibs:enum34.BUILD"), system_build_file = "//third_party/systemlibs:enum34.BUILD",
strip_prefix = "enum34-1.1.6/enum", strip_prefix = "enum34-1.1.6/enum",
) )
tf_http_archive( tf_http_archive(
name = "org_python_pypi_backports_weakref", name = "org_python_pypi_backports_weakref",
build_file = clean_dep("//third_party:backports_weakref.BUILD"), build_file = "//third_party:backports_weakref.BUILD",
sha256 = "8813bf712a66b3d8b85dc289e1104ed220f1878cf981e2fe756dfaabe9a82892", sha256 = "8813bf712a66b3d8b85dc289e1104ed220f1878cf981e2fe756dfaabe9a82892",
strip_prefix = "backports.weakref-1.0rc1/src", strip_prefix = "backports.weakref-1.0rc1/src",
urls = [ urls = [
@ -547,8 +547,8 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "dill_archive", name = "dill_archive",
build_file = clean_dep("//third_party:dill.BUILD"), build_file = "//third_party:dill.BUILD",
system_build_file = clean_dep("//third_party/systemlibs:dill.BUILD"), system_build_file = "//third_party/systemlibs:dill.BUILD",
urls = [ urls = [
"http://mirror.tensorflow.org/files.pythonhosted.org/packages/e2/96/518a8ea959a734b70d2e95fef98bcbfdc7adad1c1e5f5dd9148c835205a5/dill-0.3.2.zip", "http://mirror.tensorflow.org/files.pythonhosted.org/packages/e2/96/518a8ea959a734b70d2e95fef98bcbfdc7adad1c1e5f5dd9148c835205a5/dill-0.3.2.zip",
"https://files.pythonhosted.org/packages/e2/96/518a8ea959a734b70d2e95fef98bcbfdc7adad1c1e5f5dd9148c835205a5/dill-0.3.2.zip", "https://files.pythonhosted.org/packages/e2/96/518a8ea959a734b70d2e95fef98bcbfdc7adad1c1e5f5dd9148c835205a5/dill-0.3.2.zip",
@ -559,8 +559,8 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "tblib_archive", name = "tblib_archive",
build_file = clean_dep("//third_party:tblib.BUILD"), build_file = "//third_party:tblib.BUILD",
system_build_file = clean_dep("//third_party/systemlibs:tblib.BUILD"), system_build_file = "//third_party/systemlibs:tblib.BUILD",
urls = [ urls = [
"http://mirror.tensorflow.org/files.pythonhosted.org/packages/d3/41/901ef2e81d7b1e834b9870d416cb09479e175a2be1c4aa1a9dcd0a555293/tblib-1.7.0.tar.gz", "http://mirror.tensorflow.org/files.pythonhosted.org/packages/d3/41/901ef2e81d7b1e834b9870d416cb09479e175a2be1c4aa1a9dcd0a555293/tblib-1.7.0.tar.gz",
"https://files.pythonhosted.org/packages/d3/41/901ef2e81d7b1e834b9870d416cb09479e175a2be1c4aa1a9dcd0a555293/tblib-1.7.0.tar.gz", "https://files.pythonhosted.org/packages/d3/41/901ef2e81d7b1e834b9870d416cb09479e175a2be1c4aa1a9dcd0a555293/tblib-1.7.0.tar.gz",
@ -582,10 +582,10 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "com_google_protobuf", name = "com_google_protobuf",
patch_file = clean_dep("//third_party/protobuf:protobuf.patch"), patch_file = "//third_party/protobuf:protobuf.patch",
sha256 = "cfcba2df10feec52a84208693937c17a4b5df7775e1635c1e3baffc487b24c9b", sha256 = "cfcba2df10feec52a84208693937c17a4b5df7775e1635c1e3baffc487b24c9b",
strip_prefix = "protobuf-3.9.2", strip_prefix = "protobuf-3.9.2",
system_build_file = clean_dep("//third_party/systemlibs:protobuf.BUILD"), system_build_file = "//third_party/systemlibs:protobuf.BUILD",
system_link_files = { system_link_files = {
"//third_party/systemlibs:protobuf.bzl": "protobuf.bzl", "//third_party/systemlibs:protobuf.bzl": "protobuf.bzl",
}, },
@ -599,7 +599,7 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
name = "nsync", name = "nsync",
sha256 = "caf32e6b3d478b78cff6c2ba009c3400f8251f646804bcb65465666a9cea93c4", sha256 = "caf32e6b3d478b78cff6c2ba009c3400f8251f646804bcb65465666a9cea93c4",
strip_prefix = "nsync-1.22.0", strip_prefix = "nsync-1.22.0",
system_build_file = clean_dep("//third_party/systemlibs:nsync.BUILD"), system_build_file = "//third_party/systemlibs:nsync.BUILD",
urls = [ urls = [
"https://storage.googleapis.com/mirror.tensorflow.org/github.com/google/nsync/archive/1.22.0.tar.gz", "https://storage.googleapis.com/mirror.tensorflow.org/github.com/google/nsync/archive/1.22.0.tar.gz",
"https://github.com/google/nsync/archive/1.22.0.tar.gz", "https://github.com/google/nsync/archive/1.22.0.tar.gz",
@ -628,10 +628,10 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "pcre", name = "pcre",
build_file = clean_dep("//third_party:pcre.BUILD"), build_file = "//third_party:pcre.BUILD",
sha256 = "aecafd4af3bd0f3935721af77b889d9024b2e01d96b58471bd91a3063fb47728", sha256 = "aecafd4af3bd0f3935721af77b889d9024b2e01d96b58471bd91a3063fb47728",
strip_prefix = "pcre-8.44", strip_prefix = "pcre-8.44",
system_build_file = clean_dep("//third_party/systemlibs:pcre.BUILD"), system_build_file = "//third_party/systemlibs:pcre.BUILD",
urls = [ urls = [
"https://storage.googleapis.com/mirror.tensorflow.org/ftp.exim.org/pub/pcre/pcre-8.44.tar.gz", "https://storage.googleapis.com/mirror.tensorflow.org/ftp.exim.org/pub/pcre/pcre-8.44.tar.gz",
"https://ftp.exim.org/pub/pcre/pcre-8.44.tar.gz", "https://ftp.exim.org/pub/pcre/pcre-8.44.tar.gz",
@ -640,10 +640,10 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "curl", name = "curl",
build_file = clean_dep("//third_party:curl.BUILD"), build_file = "//third_party:curl.BUILD",
sha256 = "01ae0c123dee45b01bbaef94c0bc00ed2aec89cb2ee0fd598e0d302a6b5e0a98", sha256 = "01ae0c123dee45b01bbaef94c0bc00ed2aec89cb2ee0fd598e0d302a6b5e0a98",
strip_prefix = "curl-7.69.1", strip_prefix = "curl-7.69.1",
system_build_file = clean_dep("//third_party/systemlibs:curl.BUILD"), system_build_file = "//third_party/systemlibs:curl.BUILD",
urls = [ urls = [
"https://storage.googleapis.com/mirror.tensorflow.org/curl.haxx.se/download/curl-7.69.1.tar.gz", "https://storage.googleapis.com/mirror.tensorflow.org/curl.haxx.se/download/curl-7.69.1.tar.gz",
"https://curl.haxx.se/download/curl-7.69.1.tar.gz", "https://curl.haxx.se/download/curl-7.69.1.tar.gz",
@ -655,8 +655,8 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
name = "com_github_grpc_grpc", name = "com_github_grpc_grpc",
sha256 = "b956598d8cbe168b5ee717b5dafa56563eb5201a947856a6688bbeac9cac4e1f", sha256 = "b956598d8cbe168b5ee717b5dafa56563eb5201a947856a6688bbeac9cac4e1f",
strip_prefix = "grpc-b54a5b338637f92bfcf4b0bc05e0f57a5fd8fadd", strip_prefix = "grpc-b54a5b338637f92bfcf4b0bc05e0f57a5fd8fadd",
system_build_file = clean_dep("//third_party/systemlibs:grpc.BUILD"), system_build_file = "//third_party/systemlibs:grpc.BUILD",
patch_file = clean_dep("//third_party/grpc:generate_cc_env_fix.patch"), patch_file = "//third_party/grpc:generate_cc_env_fix.patch",
system_link_files = { system_link_files = {
"//third_party/systemlibs:BUILD": "bazel/BUILD", "//third_party/systemlibs:BUILD": "bazel/BUILD",
"//third_party/systemlibs:grpc.BUILD": "src/compiler/BUILD", "//third_party/systemlibs:grpc.BUILD": "src/compiler/BUILD",
@ -674,7 +674,7 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "linenoise", name = "linenoise",
build_file = clean_dep("//third_party:linenoise.BUILD"), build_file = "//third_party:linenoise.BUILD",
sha256 = "7f51f45887a3d31b4ce4fa5965210a5e64637ceac12720cfce7954d6a2e812f7", sha256 = "7f51f45887a3d31b4ce4fa5965210a5e64637ceac12720cfce7954d6a2e812f7",
strip_prefix = "linenoise-c894b9e59f02203dbe4e2be657572cf88c4230c3", strip_prefix = "linenoise-c894b9e59f02203dbe4e2be657572cf88c4230c3",
urls = [ urls = [
@ -696,7 +696,7 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
strip_prefix = "llvm-project-" + LLVM_COMMIT, strip_prefix = "llvm-project-" + LLVM_COMMIT,
urls = LLVM_URLS, urls = LLVM_URLS,
additional_build_files = { additional_build_files = {
clean_dep("//third_party/llvm:llvm.autogenerated.BUILD"): "llvm/BUILD", "//third_party/llvm:llvm.autogenerated.BUILD": "llvm/BUILD",
"//third_party/mlir:BUILD": "mlir/BUILD", "//third_party/mlir:BUILD": "mlir/BUILD",
"//third_party/mlir:test.BUILD": "mlir/test/BUILD", "//third_party/mlir:test.BUILD": "mlir/test/BUILD",
}, },
@ -705,7 +705,7 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
# Intel openMP that is part of LLVM sources. # Intel openMP that is part of LLVM sources.
tf_http_archive( tf_http_archive(
name = "llvm_openmp", name = "llvm_openmp",
build_file = clean_dep("//third_party/llvm_openmp:BUILD"), build_file = "//third_party/llvm_openmp:BUILD",
sha256 = "d19f728c8e04fb1e94566c8d76aef50ec926cd2f95ef3bf1e0a5de4909b28b44", sha256 = "d19f728c8e04fb1e94566c8d76aef50ec926cd2f95ef3bf1e0a5de4909b28b44",
strip_prefix = "openmp-10.0.1.src", strip_prefix = "openmp-10.0.1.src",
urls = [ urls = [
@ -716,10 +716,10 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "lmdb", name = "lmdb",
build_file = clean_dep("//third_party:lmdb.BUILD"), build_file = "//third_party:lmdb.BUILD",
sha256 = "f3927859882eb608868c8c31586bb7eb84562a40a6bf5cc3e13b6b564641ea28", sha256 = "f3927859882eb608868c8c31586bb7eb84562a40a6bf5cc3e13b6b564641ea28",
strip_prefix = "lmdb-LMDB_0.9.22/libraries/liblmdb", strip_prefix = "lmdb-LMDB_0.9.22/libraries/liblmdb",
system_build_file = clean_dep("//third_party/systemlibs:lmdb.BUILD"), system_build_file = "//third_party/systemlibs:lmdb.BUILD",
urls = [ urls = [
"https://storage.googleapis.com/mirror.tensorflow.org/github.com/LMDB/lmdb/archive/LMDB_0.9.22.tar.gz", "https://storage.googleapis.com/mirror.tensorflow.org/github.com/LMDB/lmdb/archive/LMDB_0.9.22.tar.gz",
"https://github.com/LMDB/lmdb/archive/LMDB_0.9.22.tar.gz", "https://github.com/LMDB/lmdb/archive/LMDB_0.9.22.tar.gz",
@ -728,10 +728,10 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "jsoncpp_git", name = "jsoncpp_git",
build_file = clean_dep("//third_party:jsoncpp.BUILD"), build_file = "//third_party:jsoncpp.BUILD",
sha256 = "77a402fb577b2e0e5d0bdc1cf9c65278915cdb25171e3452c68b6da8a561f8f0", sha256 = "77a402fb577b2e0e5d0bdc1cf9c65278915cdb25171e3452c68b6da8a561f8f0",
strip_prefix = "jsoncpp-1.9.2", strip_prefix = "jsoncpp-1.9.2",
system_build_file = clean_dep("//third_party/systemlibs:jsoncpp.BUILD"), system_build_file = "//third_party/systemlibs:jsoncpp.BUILD",
urls = [ urls = [
"https://storage.googleapis.com/mirror.tensorflow.org/github.com/open-source-parsers/jsoncpp/archive/1.9.2.tar.gz", "https://storage.googleapis.com/mirror.tensorflow.org/github.com/open-source-parsers/jsoncpp/archive/1.9.2.tar.gz",
"https://github.com/open-source-parsers/jsoncpp/archive/1.9.2.tar.gz", "https://github.com/open-source-parsers/jsoncpp/archive/1.9.2.tar.gz",
@ -742,7 +742,7 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
name = "boringssl", name = "boringssl",
sha256 = "a9c3b03657d507975a32732f04563132b4553c20747cec6dc04de475c8bdf29f", sha256 = "a9c3b03657d507975a32732f04563132b4553c20747cec6dc04de475c8bdf29f",
strip_prefix = "boringssl-80ca9f9f6ece29ab132cce4cf807a9465a18cfac", strip_prefix = "boringssl-80ca9f9f6ece29ab132cce4cf807a9465a18cfac",
system_build_file = clean_dep("//third_party/systemlibs:boringssl.BUILD"), system_build_file = "//third_party/systemlibs:boringssl.BUILD",
urls = [ urls = [
"https://storage.googleapis.com/mirror.tensorflow.org/github.com/google/boringssl/archive/80ca9f9f6ece29ab132cce4cf807a9465a18cfac.tar.gz", "https://storage.googleapis.com/mirror.tensorflow.org/github.com/google/boringssl/archive/80ca9f9f6ece29ab132cce4cf807a9465a18cfac.tar.gz",
"https://github.com/google/boringssl/archive/80ca9f9f6ece29ab132cce4cf807a9465a18cfac.tar.gz", "https://github.com/google/boringssl/archive/80ca9f9f6ece29ab132cce4cf807a9465a18cfac.tar.gz",
@ -751,10 +751,10 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "zlib", name = "zlib",
build_file = clean_dep("//third_party:zlib.BUILD"), build_file = "//third_party:zlib.BUILD",
sha256 = "c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1", sha256 = "c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1",
strip_prefix = "zlib-1.2.11", strip_prefix = "zlib-1.2.11",
system_build_file = clean_dep("//third_party/systemlibs:zlib.BUILD"), system_build_file = "//third_party/systemlibs:zlib.BUILD",
urls = [ urls = [
"https://storage.googleapis.com/mirror.tensorflow.org/zlib.net/zlib-1.2.11.tar.gz", "https://storage.googleapis.com/mirror.tensorflow.org/zlib.net/zlib-1.2.11.tar.gz",
"https://zlib.net/zlib-1.2.11.tar.gz", "https://zlib.net/zlib-1.2.11.tar.gz",
@ -763,7 +763,7 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "fft2d", name = "fft2d",
build_file = clean_dep("//third_party/fft2d:fft2d.BUILD"), build_file = "//third_party/fft2d:fft2d.BUILD",
sha256 = "5f4dabc2ae21e1f537425d58a49cdca1c49ea11db0d6271e2a4b27e9697548eb", sha256 = "5f4dabc2ae21e1f537425d58a49cdca1c49ea11db0d6271e2a4b27e9697548eb",
strip_prefix = "OouraFFT-1.0", strip_prefix = "OouraFFT-1.0",
urls = [ urls = [
@ -774,10 +774,10 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "snappy", name = "snappy",
build_file = clean_dep("//third_party:snappy.BUILD"), build_file = "//third_party:snappy.BUILD",
sha256 = "16b677f07832a612b0836178db7f374e414f94657c138e6993cbfc5dcc58651f", sha256 = "16b677f07832a612b0836178db7f374e414f94657c138e6993cbfc5dcc58651f",
strip_prefix = "snappy-1.1.8", strip_prefix = "snappy-1.1.8",
system_build_file = clean_dep("//third_party/systemlibs:snappy.BUILD"), system_build_file = "//third_party/systemlibs:snappy.BUILD",
urls = [ urls = [
"https://storage.googleapis.com/mirror.tensorflow.org/github.com/google/snappy/archive/1.1.8.tar.gz", "https://storage.googleapis.com/mirror.tensorflow.org/github.com/google/snappy/archive/1.1.8.tar.gz",
"https://github.com/google/snappy/archive/1.1.8.tar.gz", "https://github.com/google/snappy/archive/1.1.8.tar.gz",
@ -786,8 +786,8 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "nccl_archive", name = "nccl_archive",
build_file = clean_dep("//third_party:nccl/archive.BUILD"), build_file = "//third_party:nccl/archive.BUILD",
patch_file = clean_dep("//third_party/nccl:archive.patch"), patch_file = "//third_party/nccl:archive.patch",
sha256 = "3ae89ddb2956fff081e406a94ff54ae5e52359f5d645ce977c7eba09b3b782e6", sha256 = "3ae89ddb2956fff081e406a94ff54ae5e52359f5d645ce977c7eba09b3b782e6",
strip_prefix = "nccl-2.8.3-1", strip_prefix = "nccl-2.8.3-1",
urls = [ urls = [
@ -867,7 +867,7 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "com_google_pprof", name = "com_google_pprof",
build_file = clean_dep("//third_party:pprof.BUILD"), build_file = "//third_party:pprof.BUILD",
sha256 = "e0928ca4aa10ea1e0551e2d7ce4d1d7ea2d84b2abbdef082b0da84268791d0c4", sha256 = "e0928ca4aa10ea1e0551e2d7ce4d1d7ea2d84b2abbdef082b0da84268791d0c4",
strip_prefix = "pprof-c0fb62ec88c411cc91194465e54db2632845b650", strip_prefix = "pprof-c0fb62ec88c411cc91194465e54db2632845b650",
urls = [ urls = [
@ -880,7 +880,7 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
# once TF drops support for CUDA 10. # once TF drops support for CUDA 10.
tf_http_archive( tf_http_archive(
name = "cub_archive", name = "cub_archive",
build_file = clean_dep("//third_party:cub.BUILD"), build_file = "//third_party:cub.BUILD",
sha256 = "162514b3cc264ac89d91898b58450190b8192e2af1142cf8ccac2d59aa160dda", sha256 = "162514b3cc264ac89d91898b58450190b8192e2af1142cf8ccac2d59aa160dda",
strip_prefix = "cub-1.9.9", strip_prefix = "cub-1.9.9",
urls = [ urls = [
@ -891,11 +891,11 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "cython", name = "cython",
build_file = clean_dep("//third_party:cython.BUILD"), build_file = "//third_party:cython.BUILD",
delete = ["BUILD.bazel"], delete = ["BUILD.bazel"],
sha256 = "e2e38e1f0572ca54d6085df3dec8b607d20e81515fb80215aed19c81e8fe2079", sha256 = "e2e38e1f0572ca54d6085df3dec8b607d20e81515fb80215aed19c81e8fe2079",
strip_prefix = "cython-0.29.21", strip_prefix = "cython-0.29.21",
system_build_file = clean_dep("//third_party/systemlibs:cython.BUILD"), system_build_file = "//third_party/systemlibs:cython.BUILD",
urls = [ urls = [
"https://storage.googleapis.com/mirror.tensorflow.org/github.com/cython/cython/archive/0.29.21.tar.gz", "https://storage.googleapis.com/mirror.tensorflow.org/github.com/cython/cython/archive/0.29.21.tar.gz",
"https://github.com/cython/cython/archive/0.29.21.tar.gz", "https://github.com/cython/cython/archive/0.29.21.tar.gz",
@ -904,7 +904,7 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "arm_neon_2_x86_sse", name = "arm_neon_2_x86_sse",
build_file = clean_dep("//third_party:arm_neon_2_x86_sse.BUILD"), build_file = "//third_party:arm_neon_2_x86_sse.BUILD",
sha256 = "213733991310b904b11b053ac224fee2d4e0179e46b52fe7f8735b8831e04dcc", sha256 = "213733991310b904b11b053ac224fee2d4e0179e46b52fe7f8735b8831e04dcc",
strip_prefix = "ARM_NEON_2_x86_SSE-1200fe90bb174a6224a525ee60148671a786a71f", strip_prefix = "ARM_NEON_2_x86_SSE-1200fe90bb174a6224a525ee60148671a786a71f",
urls = [ urls = [
@ -915,10 +915,10 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "double_conversion", name = "double_conversion",
build_file = clean_dep("//third_party:double_conversion.BUILD"), build_file = "//third_party:double_conversion.BUILD",
sha256 = "2f7fbffac0d98d201ad0586f686034371a6d152ca67508ab611adc2386ad30de", sha256 = "2f7fbffac0d98d201ad0586f686034371a6d152ca67508ab611adc2386ad30de",
strip_prefix = "double-conversion-3992066a95b823efc8ccc1baf82a1cfc73f6e9b8", strip_prefix = "double-conversion-3992066a95b823efc8ccc1baf82a1cfc73f6e9b8",
system_build_file = clean_dep("//third_party/systemlibs:double_conversion.BUILD"), system_build_file = "//third_party/systemlibs:double_conversion.BUILD",
urls = [ urls = [
"https://storage.googleapis.com/mirror.tensorflow.org/github.com/google/double-conversion/archive/3992066a95b823efc8ccc1baf82a1cfc73f6e9b8.zip", "https://storage.googleapis.com/mirror.tensorflow.org/github.com/google/double-conversion/archive/3992066a95b823efc8ccc1baf82a1cfc73f6e9b8.zip",
"https://github.com/google/double-conversion/archive/3992066a95b823efc8ccc1baf82a1cfc73f6e9b8.zip", "https://github.com/google/double-conversion/archive/3992066a95b823efc8ccc1baf82a1cfc73f6e9b8.zip",
@ -927,7 +927,7 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "tflite_mobilenet_float", name = "tflite_mobilenet_float",
build_file = clean_dep("//third_party:tflite_mobilenet_float.BUILD"), build_file = "//third_party:tflite_mobilenet_float.BUILD",
sha256 = "2fadeabb9968ec6833bee903900dda6e61b3947200535874ce2fe42a8493abc0", sha256 = "2fadeabb9968ec6833bee903900dda6e61b3947200535874ce2fe42a8493abc0",
urls = [ urls = [
"https://storage.googleapis.com/download.tensorflow.org/models/mobilenet_v1_2018_08_02/mobilenet_v1_1.0_224.tgz", "https://storage.googleapis.com/download.tensorflow.org/models/mobilenet_v1_2018_08_02/mobilenet_v1_1.0_224.tgz",
@ -937,7 +937,7 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "tflite_mobilenet_quant", name = "tflite_mobilenet_quant",
build_file = clean_dep("//third_party:tflite_mobilenet_quant.BUILD"), build_file = "//third_party:tflite_mobilenet_quant.BUILD",
sha256 = "d32432d28673a936b2d6281ab0600c71cf7226dfe4cdcef3012555f691744166", sha256 = "d32432d28673a936b2d6281ab0600c71cf7226dfe4cdcef3012555f691744166",
urls = [ urls = [
"https://storage.googleapis.com/download.tensorflow.org/models/mobilenet_v1_2018_08_02/mobilenet_v1_1.0_224_quant.tgz", "https://storage.googleapis.com/download.tensorflow.org/models/mobilenet_v1_2018_08_02/mobilenet_v1_1.0_224_quant.tgz",
@ -988,7 +988,7 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "tflite_ovic_testdata", name = "tflite_ovic_testdata",
build_file = clean_dep("//third_party:tflite_ovic_testdata.BUILD"), build_file = "//third_party:tflite_ovic_testdata.BUILD",
sha256 = "033c941b7829b05ca55a124a26a6a0581b1ececc154a2153cafcfdb54f80dca2", sha256 = "033c941b7829b05ca55a124a26a6a0581b1ececc154a2153cafcfdb54f80dca2",
strip_prefix = "ovic", strip_prefix = "ovic",
urls = [ urls = [
@ -1093,7 +1093,7 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "nlohmann_json_lib", name = "nlohmann_json_lib",
build_file = clean_dep("//third_party:nlohmann_json.BUILD"), build_file = "//third_party:nlohmann_json.BUILD",
sha256 = "c377963a95989270c943d522bfefe7b889ef5ed0e1e15d535fd6f6f16ed70732", sha256 = "c377963a95989270c943d522bfefe7b889ef5ed0e1e15d535fd6f6f16ed70732",
strip_prefix = "json-3.4.0", strip_prefix = "json-3.4.0",
urls = [ urls = [
@ -1110,16 +1110,16 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
], ],
sha256 = "90b705137b69ee3b5fc655eaca66d0dc9862ea1759226f7ccd3098425ae69571", sha256 = "90b705137b69ee3b5fc655eaca66d0dc9862ea1759226f7ccd3098425ae69571",
strip_prefix = "pybind11-2.6.0", strip_prefix = "pybind11-2.6.0",
build_file = clean_dep("//third_party:pybind11.BUILD"), build_file = "//third_party:pybind11.BUILD",
system_build_file = clean_dep("//third_party/systemlibs:pybind11.BUILD"), system_build_file = "//third_party/systemlibs:pybind11.BUILD",
) )
tf_http_archive( tf_http_archive(
name = "wrapt", name = "wrapt",
build_file = clean_dep("//third_party:wrapt.BUILD"), build_file = "//third_party:wrapt.BUILD",
sha256 = "8a6fb40e8f8b6a66b4ba81a4044c68e6a7b1782f21cfabc06fb765332b4c3e51", sha256 = "8a6fb40e8f8b6a66b4ba81a4044c68e6a7b1782f21cfabc06fb765332b4c3e51",
strip_prefix = "wrapt-1.11.1/src/wrapt", strip_prefix = "wrapt-1.11.1/src/wrapt",
system_build_file = clean_dep("//third_party/systemlibs:wrapt.BUILD"), system_build_file = "//third_party/systemlibs:wrapt.BUILD",
urls = [ urls = [
"https://storage.googleapis.com/mirror.tensorflow.org/github.com/GrahamDumpleton/wrapt/archive/1.11.1.tar.gz", "https://storage.googleapis.com/mirror.tensorflow.org/github.com/GrahamDumpleton/wrapt/archive/1.11.1.tar.gz",
"https://github.com/GrahamDumpleton/wrapt/archive/1.11.1.tar.gz", "https://github.com/GrahamDumpleton/wrapt/archive/1.11.1.tar.gz",
@ -1129,7 +1129,7 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
name = "coremltools", name = "coremltools",
sha256 = "0d594a714e8a5fd5bd740ad112ef59155c0482e25fdc8f8efa5758f90abdcf1e", sha256 = "0d594a714e8a5fd5bd740ad112ef59155c0482e25fdc8f8efa5758f90abdcf1e",
strip_prefix = "coremltools-3.3", strip_prefix = "coremltools-3.3",
build_file = clean_dep("//third_party:coremltools.BUILD"), build_file = "//third_party:coremltools.BUILD",
urls = [ urls = [
"http://mirror.tensorflow.org/github.com/apple/coremltools/archive/3.3.zip", "http://mirror.tensorflow.org/github.com/apple/coremltools/archive/3.3.zip",
"https://github.com/apple/coremltools/archive/3.3.zip", "https://github.com/apple/coremltools/archive/3.3.zip",

116
third_party/repo.bzl vendored
View File

@ -38,11 +38,9 @@ def _get_env_var(ctx, name):
# Checks if we should use the system lib instead of the bundled one # Checks if we should use the system lib instead of the bundled one
def _use_system_lib(ctx, name): def _use_system_lib(ctx, name):
syslibenv = _get_env_var(ctx, "TF_SYSTEM_LIBS") syslibenv = _get_env_var(ctx, "TF_SYSTEM_LIBS")
if syslibenv: if not syslibenv:
for n in syslibenv.strip().split(","): return False
if n.strip() == name: return name in [n.strip() for n in syslibenv.split(",")]
return True
return False
# Executes specified command with arguments and calls 'fail' if it exited with # Executes specified command with arguments and calls 'fail' if it exited with
# non-zero code # non-zero code
@ -57,9 +55,6 @@ def _execute_and_check_ret_code(repo_ctx, cmd_and_args):
result.stderr, result.stderr,
)) ))
def _repos_are_siblings():
return Label("@foo//bar").workspace_root.startswith("../")
# Apply a patch_file to the repository root directory. # Apply a patch_file to the repository root directory.
def _apply_patch(ctx, patch_file): def _apply_patch(ctx, patch_file):
ctx.patch(patch_file, strip = 1) ctx.patch(patch_file, strip = 1)
@ -73,7 +68,23 @@ def _apply_delete(ctx, paths):
cmd = _wrap_bash_cmd(ctx, ["rm", "-rf"] + [ctx.path(path) for path in paths]) cmd = _wrap_bash_cmd(ctx, ["rm", "-rf"] + [ctx.path(path) for path in paths])
_execute_and_check_ret_code(ctx, cmd) _execute_and_check_ret_code(ctx, cmd)
def _maybe_label(label_string):
return Label(label_string) if label_string else None
def _label_path_dict(ctx, dict):
return {Label(k): ctx.path(v) for k, v in dict.items()}
def _tf_http_archive(ctx): def _tf_http_archive(ctx):
# Construct all labels early on to prevent rule restart. We want the
# attributes to be strings instead of labels because they refer to files
# in the TensorFlow repository, not files in repos depending on TensorFlow.
# See also https://github.com/bazelbuild/bazel/issues/10515.
patch_file = _maybe_label(ctx.attr.patch_file)
build_file = _maybe_label(ctx.attr.build_file)
system_build_file = _maybe_label(ctx.attr.system_build_file)
system_link_files = _label_path_dict(ctx, ctx.attr.system_link_files)
additional_build_files = _label_path_dict(ctx, ctx.attr.additional_build_files)
if ("mirror.tensorflow.org" not in ctx.attr.urls[0] and if ("mirror.tensorflow.org" not in ctx.attr.urls[0] and
(len(ctx.attr.urls) < 2 and (len(ctx.attr.urls) < 2 and
ctx.attr.name not in _SINGLE_URL_WHITELIST.to_list())): ctx.attr.name not in _SINGLE_URL_WHITELIST.to_list())):
@ -85,14 +96,6 @@ def _tf_http_archive(ctx):
use_syslib = _use_system_lib(ctx, ctx.attr.name) use_syslib = _use_system_lib(ctx, ctx.attr.name)
# Work around the bazel bug that redownloads the whole library.
# Remove this after https://github.com/bazelbuild/bazel/issues/10515 is fixed.
if ctx.attr.additional_build_files:
for internal_src in ctx.attr.additional_build_files:
_ = ctx.path(Label(internal_src))
# End of workaround.
if not use_syslib: if not use_syslib:
ctx.download_and_extract( ctx.download_and_extract(
ctx.attr.urls, ctx.attr.urls,
@ -101,32 +104,26 @@ def _tf_http_archive(ctx):
ctx.attr.type, ctx.attr.type,
ctx.attr.strip_prefix, ctx.attr.strip_prefix,
) )
if ctx.attr.delete: if ctx.attr.delete: # TODO(csigg): use a patch instead.
_apply_delete(ctx, ctx.attr.delete) _apply_delete(ctx, ctx.attr.delete)
if ctx.attr.patch_file != None: if patch_file:
_apply_patch(ctx, ctx.attr.patch_file) _apply_patch(ctx, patch_file)
if use_syslib and ctx.attr.system_build_file != None: if use_syslib and system_build_file:
# Use BUILD.bazel to avoid conflict with third party projects with # Use BUILD.bazel to avoid conflict with third party projects with
# BUILD or build (directory) underneath. # BUILD or build (directory) underneath.
ctx.template("BUILD.bazel", ctx.attr.system_build_file, { ctx.template("BUILD.bazel", system_build_file, executable = False)
"%prefix%": ".." if _repos_are_siblings() else "external", elif build_file:
}, False)
elif ctx.attr.build_file != None:
# Use BUILD.bazel to avoid conflict with third party projects with # Use BUILD.bazel to avoid conflict with third party projects with
# BUILD or build (directory) underneath. # BUILD or build (directory) underneath.
ctx.template("BUILD.bazel", ctx.attr.build_file, { ctx.template("BUILD.bazel", build_file, executable = False)
"%prefix%": ".." if _repos_are_siblings() else "external",
}, False)
if use_syslib: if use_syslib:
for internal_src, external_dest in ctx.attr.system_link_files.items(): for label, path in system_link_files.items():
ctx.symlink(Label(internal_src), ctx.path(external_dest)) ctx.symlink(label, path)
if ctx.attr.additional_build_files: for label, path in additional_build_files.items():
for internal_src, external_dest in ctx.attr.additional_build_files.items(): ctx.symlink(label, path)
ctx.symlink(Label(internal_src), ctx.path(external_dest))
tf_http_archive = repository_rule( tf_http_archive = repository_rule(
attrs = { attrs = {
@ -138,9 +135,9 @@ tf_http_archive = repository_rule(
"strip_prefix": attr.string(), "strip_prefix": attr.string(),
"type": attr.string(), "type": attr.string(),
"delete": attr.string_list(), "delete": attr.string_list(),
"patch_file": attr.label(), "patch_file": attr.string(),
"build_file": attr.label(), "build_file": attr.string(),
"system_build_file": attr.label(), "system_build_file": attr.string(),
"system_link_files": attr.string_dict(), "system_link_files": attr.string_dict(),
"additional_build_files": attr.string_dict(), "additional_build_files": attr.string_dict(),
}, },
@ -148,16 +145,29 @@ tf_http_archive = repository_rule(
"TF_SYSTEM_LIBS", "TF_SYSTEM_LIBS",
], ],
implementation = _tf_http_archive, implementation = _tf_http_archive,
) doc = """Downloads and creates Bazel repos for dependencies.
"""Downloads and creates Bazel repos for dependencies.
This is a swappable replacement for both http_archive() and This is a swappable replacement for both http_archive() and
new_http_archive() that offers some additional features. It also helps new_http_archive() that offers some additional features. It also helps
ensure best practices are followed. ensure best practices are followed.
"""
File arguments are relative to the TensorFlow repository by default. Dependent
repositories that use this rule should refer to files either with absolute
labels (e.g. '@foo//:bar') or from a label created in their repository (e.g.
'str(Label("//:bar"))').""",
)
def _third_party_http_archive(ctx): def _third_party_http_archive(ctx):
# Construct all labels early on to prevent rule restart. We want the
# attributes to be strings instead of labels because they refer to files
# in the TensorFlow repository, not files in repos depending on TensorFlow.
# See also https://github.com/bazelbuild/bazel/issues/10515.
build_file = _maybe_label(ctx.attr.build_file)
system_build_file = _maybe_label(ctx.attr.system_build_file)
patch_file = _maybe_label(ctx.attr.patch_file)
link_files = _label_path_dict(ctx, ctx.attr.link_files)
system_link_files = _label_path_dict(ctx, ctx.attr.system_link_files)
if ("mirror.tensorflow.org" not in ctx.attr.urls[0] and if ("mirror.tensorflow.org" not in ctx.attr.urls[0] and
(len(ctx.attr.urls) < 2 and (len(ctx.attr.urls) < 2 and
ctx.attr.name not in _SINGLE_URL_WHITELIST.to_list())): ctx.attr.name not in _SINGLE_URL_WHITELIST.to_list())):
@ -189,23 +199,23 @@ def _third_party_http_archive(ctx):
ctx.attr.type, ctx.attr.type,
ctx.attr.strip_prefix, ctx.attr.strip_prefix,
) )
if ctx.attr.delete: if ctx.attr.delete: # TODO(csigg): use a patch instead.
_apply_delete(ctx, ctx.attr.delete) _apply_delete(ctx, ctx.attr.delete)
if ctx.attr.patch_file != None: if ctx.attr.patch_file:
_apply_patch(ctx, ctx.attr.patch_file) _apply_patch(ctx, Label(ctx.attr.patch_file))
ctx.symlink(Label(ctx.attr.build_file), buildfile_path) ctx.symlink(Label(ctx.attr.build_file), buildfile_path)
link_dict = {} link_dict = {}
if use_syslib: if use_syslib:
link_dict.update(ctx.attr.system_link_files) link_dict.update(system_link_files)
for internal_src, external_dest in ctx.attr.link_files.items(): for label, path in link_files.items():
# if syslib and link exists in both, use the system one # if syslib and link exists in both, use the system one
if external_dest not in link_dict.values(): if path not in link_dict.values():
link_dict[internal_src] = external_dest link_dict[label] = path
for internal_src, external_dest in link_dict.items(): for label, path in link_dict.items():
ctx.symlink(Label(internal_src), ctx.path(external_dest)) ctx.symlink(label, path)
# Downloads and creates Bazel repos for dependencies. # Downloads and creates Bazel repos for dependencies.
# #
@ -224,13 +234,11 @@ third_party_http_archive = repository_rule(
"type": attr.string(), "type": attr.string(),
"delete": attr.string_list(), "delete": attr.string_list(),
"build_file": attr.string(mandatory = True), "build_file": attr.string(mandatory = True),
"system_build_file": attr.string(mandatory = False), "system_build_file": attr.string(),
"patch_file": attr.label(), "patch_file": attr.string(),
"link_files": attr.string_dict(), "link_files": attr.string_dict(),
"system_link_files": attr.string_dict(), "system_link_files": attr.string_dict(),
}, },
environ = [ environ = ["TF_SYSTEM_LIBS"],
"TF_SYSTEM_LIBS",
],
implementation = _third_party_http_archive, implementation = _third_party_http_archive,
) )

View File

@ -29,13 +29,13 @@ def _arm_compiler_configure_impl(repository_ctx):
)), )),
"%{PYTHON_INCLUDE_PATH}%": python_include_path, "%{PYTHON_INCLUDE_PATH}%": python_include_path,
}) })
repository_ctx.symlink(repository_ctx.attr.build_file, "BUILD") repository_ctx.symlink(Label(repository_ctx.attr.build_file), "BUILD")
arm_compiler_configure = repository_rule( arm_compiler_configure = repository_rule(
implementation = _arm_compiler_configure_impl, implementation = _arm_compiler_configure_impl,
attrs = { attrs = {
"remote_config_repo_arm": attr.string(mandatory = False, default = ""), "remote_config_repo_arm": attr.string(mandatory = False, default = ""),
"remote_config_repo_aarch64": attr.string(mandatory = False, default = ""), "remote_config_repo_aarch64": attr.string(mandatory = False, default = ""),
"build_file": attr.label(), "build_file": attr.string(),
}, },
) )

View File

@ -29,13 +29,13 @@ def _arm_linux_toolchain_configure_impl(repository_ctx):
)), )),
"%{PYTHON_INCLUDE_PATH}%": python_include_path, "%{PYTHON_INCLUDE_PATH}%": python_include_path,
}) })
repository_ctx.symlink(repository_ctx.attr.build_file, "BUILD") repository_ctx.symlink(Label(repository_ctx.attr.build_file), "BUILD")
arm_linux_toolchain_configure = repository_rule( arm_linux_toolchain_configure = repository_rule(
implementation = _arm_linux_toolchain_configure_impl, implementation = _arm_linux_toolchain_configure_impl,
attrs = { attrs = {
"aarch64_repo": attr.string(mandatory = True, default = ""), "aarch64_repo": attr.string(mandatory = True, default = ""),
"armhf_repo": attr.string(mandatory = True, default = ""), "armhf_repo": attr.string(mandatory = True, default = ""),
"build_file": attr.label(), "build_file": attr.string(),
}, },
) )