29dffe9ba4
This reverts commitd78d52a86f
. That reason this CL was reverted in the first place is that it broke the Android roller - perfetto.h could not be located. We now disable the use of perfetto for Android in the gn_to_bp.py script, so the roller should be good to go. Reason for revert: Relanding Original change's description: > Revert "Add Perfetto library (gn & bazel) and bare-bones SkPerfTrace class" > > This reverts commitbfc9b94840
. > > 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> Bug: skia:13303 Change-Id: Ibd369b9c8c0e69fc9615fc05cf588ee4440c8ed5 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/544244 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Nicolette Prevost <nicolettep@google.com>
290 lines
10 KiB
Plaintext
290 lines
10 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 = "dawn",
|
|
build_file = "bazel/external/dawn/BUILD.bazel",
|
|
path = "third_party/externals/dawn",
|
|
workspace_file_content = "",
|
|
)
|
|
|
|
new_local_repository(
|
|
name = "dng_sdk",
|
|
build_file = "bazel/external/dng_sdk/BUILD.bazel",
|
|
path = "third_party/externals/dng_sdk",
|
|
workspace_file_content = "",
|
|
)
|
|
|
|
new_local_repository(
|
|
name = "libjpeg_turbo",
|
|
build_file = "bazel/external/libjpeg_turbo/BUILD.bazel",
|
|
path = "third_party/externals/libjpeg-turbo",
|
|
workspace_file_content = "",
|
|
)
|
|
|
|
new_local_repository(
|
|
name = "libpng",
|
|
build_file = "bazel/external/libpng/BUILD.bazel",
|
|
path = "third_party/externals/libpng",
|
|
workspace_file_content = "",
|
|
)
|
|
|
|
new_local_repository(
|
|
name = "libwebp",
|
|
build_file = "bazel/external/libwebp/BUILD.bazel",
|
|
path = "third_party/externals/libwebp",
|
|
workspace_file_content = "",
|
|
)
|
|
|
|
new_local_repository(
|
|
name = "perfetto",
|
|
build_file = "bazel/external/perfetto/BUILD.bazel",
|
|
path = "third_party/externals/perfetto",
|
|
workspace_file_content = "",
|
|
)
|
|
|
|
new_local_repository(
|
|
name = "piex",
|
|
build_file = "bazel/external/piex/BUILD.bazel",
|
|
path = "third_party/externals/piex",
|
|
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 = "",
|
|
)
|
|
|
|
new_local_repository(
|
|
name = "vulkanmemoryallocator",
|
|
build_file = "bazel/external/vulkanmemoryallocator/BUILD.bazel",
|
|
path = "third_party/externals/vulkanmemoryallocator",
|
|
workspace_file_content = "",
|
|
)
|
|
|
|
new_local_repository(
|
|
name = "wuffs",
|
|
build_file = "bazel/external/wuffs/BUILD.bazel",
|
|
path = "third_party/externals/wuffs",
|
|
workspace_file_content = "",
|
|
)
|
|
|
|
new_local_repository(
|
|
# Some other dependency downloads zlib but with their own rules
|
|
name = "zlib_skia",
|
|
build_file = "bazel/external/zlib/BUILD.bazel",
|
|
path = "third_party/externals/zlib",
|
|
workspace_file_content = "",
|
|
)
|