source/bazel/tensorflow_hdrs.bzl (119 lines of code) (raw):
# https://docs.bazel.build/versions/master/skylark/repository_rules.html
def _impl(repository_ctx):
# The `or` pattern below handles empty strings and unset env variables
# Using a default value only handles unset env variables
version = repository_ctx.os.environ.get("NEUROPOD_TENSORFLOW_VERSION") or "1.12.0"
IS_MAC = repository_ctx.os.name.startswith("mac")
IS_GPU = (repository_ctx.os.environ.get("NEUROPOD_IS_GPU") or None) != None
MAPPING = {
# Linux CPU
"1.12.0-linux-cpu": {
"url": "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.12.0-cp27-none-linux_x86_64.whl",
"sha256": "6064265fd16af798b46a83f42ea2ebc8c9d6710afa143a0f244ac42c40ab9fcd",
},
"1.13.1-linux-cpu": {
"url": "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.13.1-cp27-none-linux_x86_64.whl",
"sha256": "8f5da949e3a56f6440d58281ebad20468325104173e1325a91927557fc683b78",
},
"1.14.0-linux-cpu": {
"url": "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.14.0-cp27-none-linux_x86_64.whl",
"sha256": "f374ca80599d785c23ed467ec668ea0e9caf327857af08fb0ab09d345d6edc7b",
},
"1.15.0-linux-cpu": {
"url": "https://files.pythonhosted.org/packages/ec/98/f968caf5f65759e78873b900cbf0ae20b1699fb11268ecc0f892186419a7/tensorflow-1.15.0-cp27-cp27mu-manylinux2010_x86_64.whl",
"sha256": "af57e0e16adb4d6ccd387954c1d70e34cc4925b74da9135d2b83ca7d3dd9d102",
},
"2.2.0-linux-cpu": {
"url": "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.2.0-cp38-cp38-manylinux2010_x86_64.whl",
"sha256": "8d1b7c1d45e7f582d8703c0d0a034a60d4bac942b11205bed91fa55981124d60",
},
"2.5.0-linux-cpu": {
"url": "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.5.0rc0-cp38-cp38-manylinux2010_x86_64.whl",
"sha256": "",
},
"2.6.2-linux-cpu": {
"url": "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.6.2-cp38-cp38-manylinux2010_x86_64.whl",
"sha256": "1d4ab4b0e1c64370e69b2d3efaae5cacd6d611dd3bfb81e22d86334af617fd59",
},
# Linux GPU
"1.12.0-linux-gpu": {
"url": "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.12.0-cp27-none-linux_x86_64.whl",
"sha256": "435a9a4a37c1a92f9bc80f577f0328775539c593b9bc9e943712a204ada11db5",
},
"1.13.1-linux-gpu": {
"url": "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.13.1-cp27-none-linux_x86_64.whl",
"sha256": "ba010b08c19903cbc183012379e60755af7713c5ad138887c64bdb255c1ac22d",
},
"1.14.0-linux-gpu": {
"url": "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.14.0-cp27-none-linux_x86_64.whl",
"sha256": "8563b56388f6e9efdca10fcea2c9f6f03b3e4c65cd22fa5a93d73caf5e483d78",
},
"1.15.0-linux-gpu": {
"url": "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.15.0-cp27-cp27mu-manylinux2010_x86_64.whl",
"sha256": "829c90021ec0fa33d74c2bcbff4e1e365fc63e875d2f04b60451c5abfeac8382",
},
"2.2.0-linux-gpu": {
"url": "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.2.0-cp38-cp38-manylinux2010_x86_64.whl",
"sha256": "845f261b0b922740bdd7f21fa3a4bed8ffd9e1712decd552fb33621da4d8ec45",
},
"2.5.0-linux-gpu": {
"url": "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.5.0rc0-cp38-cp38-manylinux2010_x86_64.whl",
"sha256": "",
},
"2.6.2-linux-gpu": {
"url": "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.6.2-cp38-cp38-manylinux2010_x86_64.whl",
"sha256": "0c373e6b61d989cf5bf55dffda8cde066f3ad56aaafe57a60c223479c351f933",
},
# Mac CPU
"1.12.0-mac-cpu": {
"url": "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.12.0-py2-none-any.whl",
"sha256": "5cee35f8a6a12e83560f30246811643efdc551c364bc981d27f21fbd0926403d",
},
"1.13.1-mac-cpu": {
"url": "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.13.1-py2-none-any.whl",
"sha256": "0f305f3c461ed2ce5e0b65fccc7b7452f483c7935dd8a52a466d622e642fdea8",
},
"1.14.0-mac-cpu": {
"url": "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.14.0-py2-none-any.whl",
"sha256": "46fc216db780b1a7b7a28cf6536d6ec0a171ef2fa546a24934ffe077c734c891",
},
"1.15.0-mac-cpu": {
"url": "https://files.pythonhosted.org/packages/b9/be/140e6c4deef96ddfe3837ef7ffc396a06cca73c958989835ac8f05773678/tensorflow-1.15.0-cp27-cp27m-macosx_10_11_x86_64.whl",
"sha256": "0a01def34c28298970dc83776dd43877fd59e43fddd8e960d01b6eb849ba9938",
},
"2.2.0-mac-cpu": {
"url": "https://files.pythonhosted.org/packages/1c/fd/dea30c9b6db9305309477b8b6fc0330edbed9b36bc81c3d6094458de8b94/tensorflow-2.2.0rc3-cp35-cp35m-macosx_10_11_x86_64.whl",
"sha256": "bc0030f7ee9b47893cb1ed312a1e91715a911d76d24b121a7934a0d6769b1297",
},
"2.5.0-mac-cpu": {
"url": "https://files.pythonhosted.org/packages/ee/b9/35492679a1a35fb9d8e8c075fb5d4bb26b200fbe214c14717d59e996021e/tensorflow-2.5.0rc0-cp38-cp38-macosx_10_11_x86_64.whl",
"sha256": "",
},
"2.6.2-mac-cpu": {
"url": "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.6.2-cp38-cp38-macosx_10_11_x86_64.whl",
"sha256": "caffa6d919b428901e224f778206d5bac4b553dadc1301409781af971b06e000",
},
}
download_mapping = MAPPING["{}-{}-{}".format(
version,
"mac" if IS_MAC else "linux",
"gpu" if IS_GPU else "cpu",
)]
download_url = download_mapping["url"]
sha256 = download_mapping["sha256"]
repository_ctx.download_and_extract(download_url, type = "zip", sha256 = sha256)
repository_ctx.template(
"BUILD.bazel",
repository_ctx.path(Label(repository_ctx.attr.build_file_template)),
substitutions = {
"{TENSORFLOW_VERSION}": version,
},
)
tensorflow_hdrs_repository = repository_rule(
implementation = _impl,
environ = [
"NEUROPOD_TENSORFLOW_VERSION",
"NEUROPOD_IS_GPU",
],
attrs = {"build_file_template": attr.string(mandatory = True)},
)