blob: 8a6f0271d747ceedc0d25c21f424309181d54ab8 [file] [log] [blame]
# Copyright 2024 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
workspace(name = "cros_tflite")
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
# Update `bazel_external_uris` in ebuild as well when upgrading TensorFlow, and
# all the required dependencies need to be upload to our mirror first.
TENSORFLOW_VERSION = "2.15.0"
# Use the provided tensorflow repo if it exists. Currently the ebuild will
# download and unpack tensorflow for us.
# TODO: b/314854484 - Move the tensorflow building logic and patch management
# from ebuild to here.
maybe(
http_archive,
name = "org_tensorflow",
patch_args = ["-p1"],
patch_tool = "patch",
patches = [
"//patch:tensorflow-2.15.0-0001-workspace.patch",
"//patch:tensorflow-2.15.0-0002-ashmem-create.patch",
"//patch:tensorflow-2.15.0-0003-nnapi-delegates.patch",
"//patch:tensorflow-2.15.0-0005-gpu.patch",
"//patch:tensorflow-2.15.0-0006-nnapi-loading-errors.patch",
"//patch:tensorflow-2.15.0-0008-remove-llvm-repo.patch",
"//patch:tensorflow-2.15.0-0010-Convolution2DTransposeBias-nnapi.patch",
"//patch:tensorflow-2.15.0-0011-Convolution2DTransposeBias.patch",
"//patch:tensorflow-2.15.0-0012-clvk-amd.patch",
"//patch:tensorflow-2.15.0-0013-absl-syslib.patch",
"//patch:tensorflow-2.15.0-0014-ruy-amd-cpu.patch",
"//patch:tensorflow-2.15.0-0015-UPSTREAM-7cf223d-removed_usage_of_qcom_hints_in_clvk.patch",
"//patch:tensorflow-2.15.0-0016-memory-usage-monitor.patch",
# TODO: b/305999831 - Temporary patch. MediaTek must submit their
# settings schema (configuration.proto) changes to upstream TensorFlow
# repo to work with Google internal TFLite libraries and avoid
# potential ordinal collisions.
"//patch:tensorflow-2.15.0-0017-mtk-neuron.patch",
"//patch:tensorflow-2.15.0-0018-absl-log.patch",
],
sha256 = "9cec5acb0ecf2d47b16891f8bc5bc6fbfdffe1700bdadc0d9ebe27ea34f0c220",
strip_prefix = "tensorflow-{}".format(TENSORFLOW_VERSION),
url = "https://github.com/tensorflow/tensorflow/archive/v{}.tar.gz".format(TENSORFLOW_VERSION),
)
# Python is required before initializing TensorFlow.
http_archive(
name = "rules_python",
sha256 = "9d04041ac92a0985e344235f5d946f71ac543f1b1565f2cdbc9a2aaee8adf55b",
strip_prefix = "rules_python-0.26.0",
url = "https://github.com/bazelbuild/rules_python/releases/download/0.26.0/rules_python-0.26.0.tar.gz",
)
load("@rules_python//python:repositories.bzl", "py_repositories", "python_register_toolchains")
py_repositories()
load(
"@org_tensorflow//tensorflow/tools/toolchains/python:python_repo.bzl",
"python_repository",
)
python_repository(name = "python_version_repo")
load("@python_version_repo//:py_version.bzl", "HERMETIC_PYTHON_VERSION")
python_register_toolchains(
name = "python",
ignore_root_user_error = True,
python_version = HERMETIC_PYTHON_VERSION,
)
# Initialize TensorFlow and its external dependencies.
load("@org_tensorflow//tensorflow:workspace3.bzl", "tf_workspace3")
tf_workspace3()
load("@org_tensorflow//tensorflow:workspace2.bzl", "tf_workspace2")
tf_workspace2()
load("@org_tensorflow//tensorflow:workspace1.bzl", "tf_workspace1")
tf_workspace1()
load("@org_tensorflow//tensorflow:workspace0.bzl", "tf_workspace0")
tf_workspace0()