| # 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() |