d78d52a86f
This reverts commit bfc9b94840
.
Reason for revert: new dependency causing Android build error
Original change's description:
> Add Perfetto library (gn & bazel) and bare-bones SkPerfTrace class
>
> First incremental step to incorporating Perfetto tracing into Skia, more CLs to follow
>
> NOTE: The presubmit check is failing. This appears to be due to the known issue where the presubmit check bugs out if the DEPS file is edited, which it was on this CL (modified to include Perfetto).
>
> Bug: skia:13303
> Change-Id: I908be0392b520e8da14b34588b842bf6d955bd93
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543081
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Nicolette Prevost <nicolettep@google.com>
Bug: skia:13303
Change-Id: Ia2b883bbab1f8fb4f3914b63104a39240cc60e86
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/544239
Reviewed-by: Tyler Denniston <tdenniston@google.com>
Auto-Submit: Tyler Denniston <tdenniston@google.com>
Reviewed-by: Nicolette Prevost <nicolettep@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Tyler Denniston <tdenniston@google.com>
233 lines
8.8 KiB
Plaintext
233 lines
8.8 KiB
Plaintext
workspace(name = "skia")
|
|
|
|
load("//toolchain:download_toolchains.bzl", "download_toolchains_for_skia")
|
|
|
|
download_toolchains_for_skia("clang_linux_amd64", "clang_mac_m1")
|
|
|
|
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
|
|
|
# See https://github.com/emscripten-core/emsdk/tree/85d27a4a2a60d591613a305b14ae438c2bb3ce11/bazel#setup-instructions
|
|
http_archive(
|
|
name = "emsdk",
|
|
sha256 = "99de90a1827044c5430b926db947bcb266c8bdab1a0f20fe34a62431d9174376",
|
|
strip_prefix = "emsdk-3.1.9/bazel",
|
|
urls = [
|
|
"https://github.com/emscripten-core/emsdk/archive/refs/tags/3.1.9.tar.gz",
|
|
"https://storage.googleapis.com/skia-world-readable/bazel/99de90a1827044c5430b926db947bcb266c8bdab1a0f20fe34a62431d9174376.tar.gz",
|
|
],
|
|
)
|
|
|
|
load("@emsdk//:deps.bzl", emsdk_deps = "deps")
|
|
|
|
# One of the deps here is build_bazel_rules_nodejs, currently version 4.4.1
|
|
# If we try to install it ourselves after this, it won't work.
|
|
emsdk_deps()
|
|
|
|
load("@emsdk//:emscripten_deps.bzl", emsdk_emscripten_deps = "emscripten_deps")
|
|
|
|
emsdk_emscripten_deps(emscripten_version = "3.1.9")
|
|
|
|
http_archive(
|
|
name = "bazel_skylib",
|
|
sha256 = "c6966ec828da198c5d9adbaa94c05e3a1c7f21bd012a0b29ba8ddbccb2c93b0d",
|
|
urls = [
|
|
"https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.1.1/bazel-skylib-1.1.1.tar.gz",
|
|
"https://github.com/bazelbuild/bazel-skylib/releases/download/1.1.1/bazel-skylib-1.1.1.tar.gz",
|
|
],
|
|
)
|
|
|
|
load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace")
|
|
|
|
bazel_skylib_workspace()
|
|
|
|
http_archive(
|
|
name = "bazel_toolchains",
|
|
sha256 = "e52789d4e89c3e2dc0e3446a9684626a626b6bec3fde787d70bae37c6ebcc47f",
|
|
strip_prefix = "bazel-toolchains-5.1.1",
|
|
urls = [
|
|
"https://github.com/bazelbuild/bazel-toolchains/archive/refs/tags/v5.1.1.tar.gz",
|
|
"https://storage.googleapis.com/skia-world-readable/bazel/e52789d4e89c3e2dc0e3446a9684626a626b6bec3fde787d70bae37c6ebcc47f.tar.gz",
|
|
],
|
|
)
|
|
|
|
load("@bazel_toolchains//repositories:repositories.bzl", bazel_toolchains_repositories = "repositories")
|
|
|
|
bazel_toolchains_repositories()
|
|
|
|
#######################################################################################
|
|
# Python
|
|
#######################################################################################
|
|
|
|
# https://github.com/bazelbuild/rules_python
|
|
http_archive(
|
|
name = "rules_python",
|
|
sha256 = "9fcf91dbcc31fde6d1edb15f117246d912c33c36f44cf681976bd886538deba6",
|
|
strip_prefix = "rules_python-0.8.0",
|
|
urls = [
|
|
"https://github.com/bazelbuild/rules_python/archive/refs/tags/0.8.0.tar.gz",
|
|
"https://storage.googleapis.com/skia-world-readable/bazel/9fcf91dbcc31fde6d1edb15f117246d912c33c36f44cf681976bd886538deba6.tar.gz",
|
|
],
|
|
)
|
|
|
|
# This sets up a hermetic python3, rather than depending on what is installed.
|
|
load("@rules_python//python:repositories.bzl", "python_register_toolchains")
|
|
|
|
python_register_toolchains(
|
|
name = "python3_9",
|
|
# https://github.com/bazelbuild/rules_python/blob/main/python/versions.bzl
|
|
python_version = "3.9",
|
|
)
|
|
|
|
load("@python3_9//:defs.bzl", "interpreter")
|
|
load("@rules_python//python:pip.bzl", "pip_install")
|
|
|
|
pip_install(
|
|
name = "py_deps",
|
|
python_interpreter_target = interpreter,
|
|
requirements = "//:requirements.txt",
|
|
)
|
|
|
|
#######################################################################################
|
|
# Gazelle
|
|
#######################################################################################
|
|
http_archive(
|
|
name = "io_bazel_rules_go",
|
|
sha256 = "2b1641428dff9018f9e85c0384f03ec6c10660d935b750e3fa1492a281a53b0f",
|
|
urls = [
|
|
"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.29.0/rules_go-v0.29.0.zip",
|
|
"https://github.com/bazelbuild/rules_go/releases/download/v0.29.0/rules_go-v0.29.0.zip",
|
|
],
|
|
)
|
|
|
|
http_archive(
|
|
name = "bazel_gazelle",
|
|
sha256 = "de69a09dc70417580aabf20a28619bb3ef60d038470c7cf8442fafcf627c21cb",
|
|
urls = [
|
|
"https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.24.0/bazel-gazelle-v0.24.0.tar.gz",
|
|
"https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.24.0/bazel-gazelle-v0.24.0.tar.gz",
|
|
],
|
|
)
|
|
|
|
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
|
|
load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies")
|
|
load("//:go_repositories.bzl", "go_repositories")
|
|
|
|
# gazelle:repository_macro go_repositories.bzl%go_repositories
|
|
go_repositories()
|
|
|
|
go_rules_dependencies()
|
|
|
|
go_register_toolchains(version = "1.17.2")
|
|
|
|
gazelle_dependencies(go_repository_default_config = "//:WORKSPACE.bazel")
|
|
|
|
# Because the skia infra repo has a dependency on google.golang.org/grpc (aka
|
|
# @org_golang_google_grpc), we need to have this library available to build protos.
|
|
# https://github.com/bazelbuild/rules_go#protobuf-and-grpc
|
|
http_archive(
|
|
name = "com_google_protobuf",
|
|
sha256 = "d0f5f605d0d656007ce6c8b5a82df3037e1d8fe8b121ed42e536f569dec16113",
|
|
strip_prefix = "protobuf-3.14.0",
|
|
urls = [
|
|
"https://mirror.bazel.build/github.com/protocolbuffers/protobuf/archive/v3.14.0.tar.gz",
|
|
"https://github.com/protocolbuffers/protobuf/archive/v3.14.0.tar.gz",
|
|
],
|
|
)
|
|
|
|
load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps")
|
|
|
|
protobuf_deps()
|
|
|
|
###################################################
|
|
# JavaScript / TypeScript rules and dependencies. #
|
|
###################################################
|
|
|
|
# The npm_install rule runs anytime the package.json or package-lock.json file changes. It also
|
|
# extracts any Bazel rules distributed in an npm package.
|
|
load("@build_bazel_rules_nodejs//:index.bzl", "npm_install")
|
|
|
|
# Manages the node_modules directory.
|
|
npm_install(
|
|
name = "npm",
|
|
package_json = "//:package.json",
|
|
package_lock_json = "//:package-lock.json",
|
|
)
|
|
|
|
# io_bazel_rules_webtesting allows us to download browsers in a hermetic, repeatable way. This
|
|
# currently includes Chromium and Firefox. Note that the version on this does not necessarily
|
|
# match the version below of the browsers-X.Y.Z below that is available.
|
|
http_archive(
|
|
name = "io_bazel_rules_webtesting",
|
|
sha256 = "e9abb7658b6a129740c0b3ef6f5a2370864e102a5ba5ffca2cea565829ed825a",
|
|
urls = [
|
|
"https://github.com/bazelbuild/rules_webtesting/releases/download/0.3.5/rules_webtesting.tar.gz",
|
|
"https://storage.googleapis.com/skia-world-readable/bazel/e9abb7658b6a129740c0b3ef6f5a2370864e102a5ba5ffca2cea565829ed825a.tar.gz",
|
|
],
|
|
)
|
|
|
|
# https://github.com/bazelbuild/rules_webtesting/blob/e9cf17123068b1123c68219edf9b274bf057b9cc/web/versioned/browsers-0.3.3.bzl
|
|
load("@io_bazel_rules_webtesting//web/versioned:browsers-0.3.3.bzl", "browser_repositories")
|
|
|
|
browser_repositories(
|
|
chromium = True,
|
|
firefox = True,
|
|
)
|
|
|
|
###################################################
|
|
# External C++ deps with Bazel support #
|
|
###################################################
|
|
# https://bazel.build/reference/be/workspace#local_repository
|
|
local_repository(
|
|
name = "abseil_cpp",
|
|
path = "third_party/externals/abseil-cpp",
|
|
)
|
|
|
|
local_repository(
|
|
name = "spirv_tools",
|
|
path = "third_party/externals/spirv-tools",
|
|
)
|
|
|
|
local_repository(
|
|
# This name is important because spirv_tools expects @spirv_headers to exist by that name.
|
|
name = "spirv_headers",
|
|
path = "third_party/externals/spirv-headers",
|
|
)
|
|
|
|
###############################################################################
|
|
# External C++ deps with NO Bazel support #
|
|
# In this case, we need to supply a BUILD file which exposes targets/files #
|
|
# we need. If these deps depend on other deps (e.g. @dawn -> @spirv_tools), #
|
|
# then we need to specify those here as well. The workspace_file_content is #
|
|
# generally ignored; external repos (i.e. the ones starting with @) will be #
|
|
# resolved with Skia's version of those repos, which is how Bazel avoids #
|
|
# multiple versions of the same project being compiled together. #
|
|
###############################################################################
|
|
# https://bazel.build/reference/be/workspace#new_local_repository
|
|
new_local_repository(
|
|
name = "vulkanmemoryallocator",
|
|
build_file = "bazel/external/vulkanmemoryallocator/BUILD.bazel",
|
|
path = "third_party/externals/vulkanmemoryallocator",
|
|
workspace_file_content = "",
|
|
)
|
|
|
|
new_local_repository(
|
|
name = "dawn",
|
|
build_file = "bazel/external/dawn/BUILD.bazel",
|
|
path = "third_party/externals/dawn",
|
|
workspace_file_content = "",
|
|
)
|
|
|
|
new_local_repository(
|
|
name = "vulkan_headers",
|
|
build_file = "bazel/external/vulkan_headers/BUILD.bazel",
|
|
path = "third_party/externals/vulkan-headers",
|
|
workspace_file_content = "",
|
|
)
|
|
|
|
new_local_repository(
|
|
name = "vulkan_tools",
|
|
build_file = "bazel/external/vulkan_tools/BUILD.bazel",
|
|
path = "third_party/externals/vulkan-tools",
|
|
workspace_file_content = "",
|
|
)
|