mirror of https://github.com/tensorflow/tfjs.git
265 lines
8.7 KiB
Python
265 lines
8.7 KiB
Python
# Copyright 2021 Google LLC. All Rights Reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
# =============================================================================
|
|
|
|
workspace(
|
|
name = "tfjs",
|
|
managed_directories = {
|
|
"@npm": ["node_modules"],
|
|
},
|
|
)
|
|
|
|
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
|
|
|
http_archive(
|
|
name = "bazel_skylib",
|
|
sha256 = "1c531376ac7e5a180e0237938a2536de0c54d93f5c278634818e0efc952dd56c",
|
|
urls = [
|
|
"https://github.com/bazelbuild/bazel-skylib/releases/download/1.0.3/bazel-skylib-1.0.3.tar.gz",
|
|
"https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.0.3/bazel-skylib-1.0.3.tar.gz",
|
|
],
|
|
)
|
|
|
|
load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace")
|
|
|
|
bazel_skylib_workspace()
|
|
|
|
http_archive(
|
|
name = "build_bazel_rules_nodejs",
|
|
sha256 = "94070eff79305be05b7699207fbac5d2608054dd53e6109f7d00d923919ff45a",
|
|
urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/5.8.2/rules_nodejs-5.8.2.tar.gz"],
|
|
)
|
|
|
|
# Install rules_nodejs dependencies.
|
|
load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies")
|
|
|
|
build_bazel_rules_nodejs_dependencies()
|
|
|
|
load("@rules_nodejs//nodejs:repositories.bzl", "nodejs_register_toolchains")
|
|
|
|
nodejs_register_toolchains(
|
|
name = "nodejs",
|
|
node_version = "18.13.0",
|
|
)
|
|
|
|
# Install the yarn tool
|
|
load("@rules_nodejs//nodejs:yarn_repositories.bzl", "yarn_repositories")
|
|
|
|
yarn_repositories(
|
|
name = "yarn",
|
|
node_repository = "nodejs",
|
|
)
|
|
|
|
# Install yarn packages
|
|
load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install")
|
|
|
|
yarn_install(
|
|
name = "npm",
|
|
exports_directories_only = False, # Required for ts_library
|
|
package_json = "//:package.json",
|
|
package_path = "/",
|
|
symlink_node_modules = True,
|
|
yarn = "@yarn//:bin/yarn",
|
|
yarn_lock = "//:yarn.lock",
|
|
)
|
|
|
|
# Fetch transitive Bazel dependencies of karma_web_test
|
|
http_archive(
|
|
name = "io_bazel_rules_webtesting",
|
|
sha256 = "9bb461d5ef08e850025480bab185fd269242d4e533bca75bfb748001ceb343c3",
|
|
urls = ["https://github.com/bazelbuild/rules_webtesting/releases/download/0.3.3/rules_webtesting.tar.gz"],
|
|
)
|
|
|
|
# Set up web testing, choose browsers we can test on
|
|
load("@io_bazel_rules_webtesting//web:repositories.bzl", "web_test_repositories")
|
|
|
|
web_test_repositories()
|
|
|
|
load("@io_bazel_rules_webtesting//web/versioned:browsers-0.3.2.bzl", "browser_repositories")
|
|
|
|
browser_repositories(
|
|
chromium = True,
|
|
)
|
|
|
|
# Esbuild toolchain
|
|
load("@build_bazel_rules_nodejs//toolchains/esbuild:esbuild_repositories.bzl", "esbuild_repositories")
|
|
|
|
esbuild_repositories(npm_repository = "npm")
|
|
|
|
# Emscripten toolchain
|
|
http_archive(
|
|
name = "emsdk",
|
|
# TODO: Remove repo_mapping when emsdk updates to rules_nodejs 5
|
|
repo_mapping = {"@nodejs": "@nodejs_host"},
|
|
sha256 = "b8270749b99d8d14922d1831b93781a5560fba6f7bce65cd477fc1b6aa262535",
|
|
strip_prefix = "emsdk-3.1.28/bazel",
|
|
urls = ["https://github.com/emscripten-core/emsdk/archive/refs/tags/3.1.28.tar.gz"],
|
|
)
|
|
|
|
load("@emsdk//:deps.bzl", emsdk_deps = "deps")
|
|
|
|
emsdk_deps()
|
|
|
|
load("@emsdk//:emscripten_deps.bzl", emsdk_emscripten_deps = "emscripten_deps")
|
|
|
|
emsdk_emscripten_deps()
|
|
|
|
load("@emsdk//:toolchains.bzl", "register_emscripten_toolchains")
|
|
|
|
register_emscripten_toolchains()
|
|
|
|
load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")
|
|
|
|
# xnnpack used for fast vectorized wasm operations
|
|
git_repository(
|
|
name = "xnnpack",
|
|
commit = "5e8033a72a8d0f1c2b1f06e29137cc697c6b661d",
|
|
remote = "https://github.com/google/XNNPACK.git",
|
|
shallow_since = "1643627844 -0800",
|
|
)
|
|
|
|
# The libraries below are transitive dependencies of XNNPACK that we need to
|
|
# explicitly enumerate here. See https://docs.bazel.build/versions/master/external.html#transitive-dependencies
|
|
|
|
# FP16 library, used for half-precision conversions
|
|
http_archive(
|
|
name = "FP16",
|
|
build_file = "@xnnpack//third_party:FP16.BUILD",
|
|
sha256 = "0d56bb92f649ec294dbccb13e04865e3c82933b6f6735d1d7145de45da700156",
|
|
strip_prefix = "FP16-3c54eacb74f6f5e39077300c5564156c424d77ba",
|
|
urls = [
|
|
"https://github.com/Maratyszcza/FP16/archive/3c54eacb74f6f5e39077300c5564156c424d77ba.zip",
|
|
],
|
|
)
|
|
|
|
# FXdiv library, used for repeated integer division by the same factor
|
|
http_archive(
|
|
name = "FXdiv",
|
|
sha256 = "ab7dfb08829bee33dca38405d647868fb214ac685e379ec7ef2bebcd234cd44d",
|
|
strip_prefix = "FXdiv-b408327ac2a15ec3e43352421954f5b1967701d1",
|
|
urls = [
|
|
"https://github.com/Maratyszcza/FXdiv/archive/b408327ac2a15ec3e43352421954f5b1967701d1.zip",
|
|
],
|
|
)
|
|
|
|
# pthreadpool library, used for parallelization
|
|
http_archive(
|
|
name = "pthreadpool",
|
|
sha256 = "8461f6540ae9f777ce20d1c0d1d249e5e61c438744fb390c0c6f91940aa69ea3",
|
|
strip_prefix = "pthreadpool-545ebe9f225aec6dca49109516fac02e973a3de2",
|
|
urls = [
|
|
"https://github.com/Maratyszcza/pthreadpool/archive/545ebe9f225aec6dca49109516fac02e973a3de2.zip",
|
|
],
|
|
)
|
|
|
|
# clog library, used for logging
|
|
http_archive(
|
|
name = "clog",
|
|
build_file = "@xnnpack//third_party:clog.BUILD",
|
|
sha256 = "3f2dc1970f397a0e59db72f9fca6ff144b216895c1d606f6c94a507c1e53a025",
|
|
strip_prefix = "cpuinfo-d5e37adf1406cf899d7d9ec1d317c47506ccb970",
|
|
urls = [
|
|
"https://github.com/pytorch/cpuinfo/archive/d5e37adf1406cf899d7d9ec1d317c47506ccb970.tar.gz",
|
|
],
|
|
)
|
|
|
|
# cpuinfo library, used for detecting processor characteristics
|
|
http_archive(
|
|
name = "cpuinfo",
|
|
build_file = "@xnnpack//third_party:cpuinfo.BUILD",
|
|
patches = ["@xnnpack//third_party:cpuinfo.patch"],
|
|
sha256 = "a7f9a188148a1660149878f737f42783e72f33a4f842f3e362fee2c981613e53",
|
|
strip_prefix = "cpuinfo-ed8b86a253800bafdb7b25c5c399f91bff9cb1f3",
|
|
urls = [
|
|
"https://github.com/pytorch/cpuinfo/archive/ed8b86a253800bafdb7b25c5c399f91bff9cb1f3.zip",
|
|
],
|
|
)
|
|
|
|
# psimd library, used for fallback 128-bit SIMD micro-kernels
|
|
http_archive(
|
|
name = "psimd",
|
|
build_file = "@xnnpack//third_party:psimd.BUILD",
|
|
sha256 = "dc615342bcbe51ca885323e51b68b90ed9bb9fa7df0f4419dbfa0297d5e837b7",
|
|
strip_prefix = "psimd-072586a71b55b7f8c584153d223e95687148a900",
|
|
urls = [
|
|
"https://github.com/Maratyszcza/psimd/archive/072586a71b55b7f8c584153d223e95687148a900.zip",
|
|
],
|
|
)
|
|
|
|
git_repository(
|
|
name = "com_google_googletest",
|
|
commit = "cd17fa2abda2a2e4111cdabd62a87aea16835014",
|
|
remote = "https://github.com/google/googletest.git",
|
|
shallow_since = "1570558426 -0400",
|
|
)
|
|
|
|
http_archive(
|
|
name = "rules_cc",
|
|
sha256 = "90d5a66950b492cbf86201cdc49c4b59796a85a4eb9fd63c07afe5f7132ea623",
|
|
strip_prefix = "rules_cc-8346df34b6593b051403b8e429db15c7f4ead937",
|
|
urls = [
|
|
"https://github.com/bazelbuild/rules_cc/archive/8346df34b6593b051403b8e429db15c7f4ead937.zip",
|
|
],
|
|
)
|
|
|
|
http_archive(
|
|
name = "rules_python",
|
|
sha256 = "29a801171f7ca190c543406f9894abf2d483c206e14d6acbd695623662320097",
|
|
strip_prefix = "rules_python-0.18.1",
|
|
url = "https://github.com/bazelbuild/rules_python/releases/download/0.18.1/rules_python-0.18.1.tar.gz",
|
|
)
|
|
|
|
load("@rules_python//python:repositories.bzl", "python_register_toolchains")
|
|
|
|
# TODO(mattSoulanille): Change the docker so it doesn't run as root?
|
|
# https://github.com/bazelbuild/rules_python/pull/713
|
|
# https://github.com/GoogleCloudPlatform/cloud-builders/issues/641
|
|
python_register_toolchains(
|
|
name = "python3_9",
|
|
ignore_root_user_error = True,
|
|
# Available versions are listed in @rules_python//python:versions.bzl.
|
|
python_version = "3.9",
|
|
)
|
|
|
|
load("@python3_9//:defs.bzl", "interpreter")
|
|
load("@rules_python//python:pip.bzl", "pip_parse")
|
|
|
|
pip_parse(
|
|
name = "tensorflowjs_deps",
|
|
python_interpreter_target = interpreter,
|
|
requirements_lock = "@//tfjs-converter/python:requirements_lock.txt",
|
|
)
|
|
|
|
load("@tensorflowjs_deps//:requirements.bzl", install_tfjs_deps = "install_deps")
|
|
|
|
install_tfjs_deps()
|
|
|
|
pip_parse(
|
|
name = "tensorflowjs_dev_deps",
|
|
python_interpreter_target = interpreter,
|
|
requirements_lock = "@//tfjs-converter/python:requirements-dev_lock.txt",
|
|
)
|
|
|
|
load("@tensorflowjs_dev_deps//:requirements.bzl", install_tfjs_dev_deps = "install_deps")
|
|
|
|
install_tfjs_dev_deps()
|
|
|
|
load("//tfjs-tflite:tflite_repositories.bzl", "tflite_repositories")
|
|
|
|
tflite_repositories()
|
|
|
|
load("//tfjs-tfdf:tfdf_repositories.bzl", "tfdf_repositories")
|
|
|
|
tfdf_repositories()
|