workspace(name = "skia")

load("//toolchain:download_toolchains.bzl", "download_toolchains_for_skia")

download_toolchains_for_skia("clang_linux_amd64", "clang_mac", "ndk_linux_amd64")

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 = "74c7c54b3544555ec38d1e9dcc7e90b9f49ed0e04f2cc3fd44663c598af24124",
    strip_prefix = "emsdk-3.1.15/bazel",
    urls = [
        "https://github.com/emscripten-core/emsdk/archive/refs/tags/3.1.15.tar.gz",
        "https://storage.googleapis.com/skia-world-readable/bazel/74c7c54b3544555ec38d1e9dcc7e90b9f49ed0e04f2cc3fd44663c598af24124.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://storage.googleapis.com/skia-world-readable/bazel/e52789d4e89c3e2dc0e3446a9684626a626b6bec3fde787d70bae37c6ebcc47f.tar.gz",
        "https://github.com/bazelbuild/bazel-toolchains/archive/refs/tags/v5.1.1.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 = "5fa3c738d33acca3b97622a13a741129f67ef43f5fdfcec63b29374cc0574c29",
    strip_prefix = "rules_python-0.9.0",
    urls = [
        "https://storage.googleapis.com/skia-world-readable/bazel/5fa3c738d33acca3b97622a13a741129f67ef43f5fdfcec63b29374cc0574c29.tar.gz",
        "https://github.com/bazelbuild/rules_python/archive/refs/tags/0.9.0.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",
)

#######################################################################################
# Maven
#######################################################################################

# https://github.com/bazelbuild/rules_jvm_external
http_archive(
    name = "rules_jvm_external",
    sha256 = "cd1a77b7b02e8e008439ca76fd34f5b07aecb8c752961f9640dea15e9e5ba1ca",
    strip_prefix = "rules_jvm_external-4.2",
    urls = [
        "https://storage.googleapis.com/skia-world-readable/bazel/cd1a77b7b02e8e008439ca76fd34f5b07aecb8c752961f9640dea15e9e5ba1ca.zip",
        "https://github.com/bazelbuild/rules_jvm_external/archive/4.2.zip",
    ],
)

load("@rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps")

rules_jvm_external_deps()

load("@rules_jvm_external//:setup.bzl", "rules_jvm_external_setup")

rules_jvm_external_setup()

load("@rules_jvm_external//:defs.bzl", "maven_install")

maven_install(
    artifacts = [
        # The version released after this one (1.6.0-rc1) did not resolve unknown symbol errors when
        # building.
        # https://b.corp.google.com/issues/269331711
        "androidx.annotation:annotation:1.5.0",
    ],
    repositories = [
        "https://maven.google.com",
        "https://repo1.maven.org/maven2",
    ],
)

#######################################################################################
# Gazelle
#######################################################################################
http_archive(
    name = "io_bazel_rules_go",
    sha256 = "099a9fb96a376ccbbb7d291ed4ecbdfd42f6bc822ab77ae6f1b5cb9e914e94fa",
    urls = [
        "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.35.0/rules_go-v0.35.0.zip",
        "https://github.com/bazelbuild/rules_go/releases/download/v0.35.0/rules_go-v0.35.0.zip",
    ],
)

http_archive(
    name = "bazel_gazelle",
    sha256 = "ecba0f04f96b4960a5b250c8e8eeec42281035970aa8852dda73098274d14a1d",
    urls = [
        "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.29.0/bazel-gazelle-v0.29.0.tar.gz",
        "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.29.0/bazel-gazelle-v0.29.0.tar.gz",
    ],
)

load("@io_bazel_rules_go//go:deps.bzl", "go_download_sdk", "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()

# For our Linux RBE pool
go_download_sdk(
    name = "go_sdk_linux_amd64",
    goarch = "amd64",
    goos = "linux",
    version = "1.18",
)

# For the host machine
go_download_sdk(
    name = "go_sdk",
    version = "1.18",
)

# Do not specify a version here or it will be an error (because we
# specified the version above when downloading SDKs)
go_register_toolchains()

gazelle_dependencies(
    go_repository_default_config = "//:WORKSPACE.bazel",
    go_sdk = "go_sdk",
)

# 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 = "b8ab9bbdf0c6968cf20060794bc61e231fae82aaf69d6e3577c154181991f576",
    strip_prefix = "protobuf-3.18.1",
    urls = [
        "https://storage.googleapis.com/skia-world-readable/bazel/b8ab9bbdf0c6968cf20060794bc61e231fae82aaf69d6e3577c154181991f576.tar.gz",
        "https://github.com/protocolbuffers/protobuf/releases/download/v3.18.1/protobuf-all-3.18.1.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,
)

###################################################
# Rust rules and dependencies.                    #
###################################################

http_archive(
    name = "rules_rust",
    sha256 = "950a3ad4166ae60c8ccd628d1a8e64396106e7f98361ebe91b0bcfe60d8e4b60",
    urls = [
        "https://github.com/bazelbuild/rules_rust/releases/download/0.20.0/rules_rust-v0.20.0.tar.gz",
        "https://storage.googleapis.com/skia-world-readable/bazel/950a3ad4166ae60c8ccd628d1a8e64396106e7f98361ebe91b0bcfe60d8e4b60.tar.gz",
    ],
)

load("@rules_rust//rust:repositories.bzl", "rules_rust_dependencies", "rust_register_toolchains")

# https://github.com/bazelbuild/rules_rust/blob/eaf51386596523af4d9d5b1b5d2dcc6fe39a8465/rust/repositories.bzl#L48
rules_rust_dependencies()

rust_register_toolchains(
    edition = "2021",
    versions = [
        # supported versions from https://github.com/bazelbuild/rules_rust/blob/dab425760656c449d3a0f73c490be92c240b6ef2/util/fetch_shas_VERSIONS.txt
        # The rust rules validate a toolchain by sha256 hash, as listed in https://github.com/bazelbuild/rules_rust/blob/dab425760656c449d3a0f73c490be92c240b6ef2/rust/known_shas.bzl
        "1.68.2",
    ],
)

# https://bazelbuild.github.io/rules_rust/crate_universe.html
load("@rules_rust//crate_universe:repositories.bzl", "crate_universe_dependencies")

crate_universe_dependencies()

# cxxbridge-cmd is a binary only Rust crate, so we follow these instructions for it
# http://bazelbuild.github.io/rules_rust/crate_universe.html#binary-dependencies
# If we need to update this, replace the Cargo.lock files with empty (existing) files and then
# CARGO_BAZEL_REPIN=1 bazel sync --only=crate_index
http_archive(
    name = "cxxbridge_cmd",
    build_file = "//bazel/external/cxxbridge_cmd:BUILD.bazel.skia",
    sha256 = "b20c2a31fb5a2e2aeebced19e35d78a974301171391b39e36d5ebb00bea2aa93",
    strip_prefix = "cxxbridge-cmd-1.0.94",
    type = "tar.gz",
    urls = [
        "https://crates.io/api/v1/crates/cxxbridge-cmd/1.0.94/download",
        "https://storage.googleapis.com/skia-world-readable/bazel/b20c2a31fb5a2e2aeebced19e35d78a974301171391b39e36d5ebb00bea2aa93.tar.gz",
    ],
)

load("@rules_rust//crate_universe:defs.bzl", "crates_repository")

# This finds all the dependencies needed to build cxxbridge_cmd...
crates_repository(
    name = "cxxbridge_cmd_deps",
    cargo_lockfile = "//bazel/external/cxxbridge_cmd:Cargo.lock",
    manifests = ["@cxxbridge_cmd//:Cargo.toml"],
)

load("@cxxbridge_cmd_deps//:defs.bzl", cxxbridge_cmd_deps = "crate_repositories")

# ... and adds them to the workspace.
cxxbridge_cmd_deps()

# The cxx crate needs a custom BUILD.bazel file because the one that would be autogenerated
# by http://bazelbuild.github.io/rules_rust/crate_universe.html#direct-packages does not work.
# Thus, we download it ourselves, as if it were a binary-only package.
http_archive(
    name = "cxx",
    build_file = "//bazel/external/cxx:BUILD.bazel.skia",
    sha256 = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93",
    strip_prefix = "cxx-1.0.94",
    type = "tar.gz",
    urls = [
        "https://crates.io/api/v1/crates/cxx/1.0.94/download",
        "https://storage.googleapis.com/skia-world-readable/bazel/f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93.tar.gz",
    ],
)

# This finds all the dependencies needed to build cxx...
crates_repository(
    name = "cxx_deps",
    cargo_lockfile = "//bazel/external/cxx:Cargo.lock",
    manifests = ["@cxx//:Cargo.toml"],
)

load("@cxx_deps//:defs.bzl", cxx_deps = "crate_repositories")

# ... and adds them to the workspace.
cxx_deps()

# The fontations repository consists of multiple crates. We download those
# listed in the external/fontations/Cargo.* files.
# Add this entry to have a root repository from which the individual
# fontations crates can be fetched.
# This allows them to be used as deps in other bazel targets.
crates_repository(
    name = "fontations",
    cargo_lockfile = "//bazel/external/fontations:Cargo.lock",
    manifests = ["//bazel/external/fontations:Cargo.toml"],
)

load("@fontations//:defs.bzl", fontations_crates = "crate_repositories")

fontations_crates()

# Skia uses crates from the vello repository that are under development and have not been published
# to crates.io. Normally we could fetch them directly from the git mirror in the Cargo.lock file as
# Bazel supports compiling them without any custom build rules. However, since Bazel's repository
# rules don't play well with the vello_shader crate's build script, we compile the vello
# crates from source using the rules defined in bazel/external/vello/BUILD.bazel and the
# new_git_repository rule.
#
# vello_deps contains the dependencies of the two crates we build out of the vello repo (namely
# vello_shaders and vello_encoding).
#
# See comments in bazel/external/vello/BUILD.bazel for more information.
crates_repository(
    name = "vello_deps",
    cargo_lockfile = "//bazel/external/vello:Cargo.lock",
    manifests = ["//bazel/external/vello:Cargo.toml"],
)

load("@vello_deps//:defs.bzl", vello_deps = "crate_repositories")

vello_deps()

###############################################################

# Bazel will look for env variables ANDROID_HOME and ANDROID_NDK_HOME.
# This is NOT hermetic as it requires the user to handle downloading the SDK  and accepting the
# license independently.
android_sdk_repository(name = "androidsdk")
# TODO: skbug.com/14128
# Uncomment the following after setting ANDROID_NDK_HOME to build for Android:
# android_ndk_repository(name = "androidndk")

# Clients must specify their own version of skia_user_config to overwrite SkUserConfig.h
local_repository(
    name = "skia_user_config",
    path = "include/config",
)

load("//bazel:deps.bzl", "git_repos_from_deps")

# This are two lists of Bazel repository names, which is brought in by the following macro.
# It is here for easier grepping, i.e. someone trying to find where a label like @brotli//:brotlidec
# was defined. If a dep has its own BUILD rules, then one will need to go to its git repository
# to find the BUILD or BUILD.bazel file with the rule. If a dep does not have Bazel support, then
# that means someone on the Skia team wrote a BUILD.bazel file and put it in
# //bazel/external/<dep_name> and one can go find it there.
#
#### START GENERATED LIST OF THIRD_PARTY DEPS
# @abseil_cpp - https://skia.googlesource.com/external/github.com/abseil/abseil-cpp.git
# @brotli - https://skia.googlesource.com/external/github.com/google/brotli.git
# @highway - https://chromium.googlesource.com/external/github.com/google/highway.git
# @spirv_headers - https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git
# @spirv_tools - https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git
#
# @dawn - //bazel/external/dawn:BUILD.bazel
# @dng_sdk - //bazel/external/dng_sdk:BUILD.bazel
# @expat - //bazel/external/expat:BUILD.bazel
# @freetype - //bazel/external/freetype:BUILD.bazel
# @harfbuzz - //bazel/external/harfbuzz:BUILD.bazel
# @icu - //bazel/external/icu:BUILD.bazel
# @imgui - //bazel/external/imgui:BUILD.bazel
# @libavif - //bazel/external/libavif:BUILD.bazel
# @libgav1 - //bazel/external/libgav1:BUILD.bazel
# @libjpeg_turbo - //bazel/external/libjpeg_turbo:BUILD.bazel
# @libjxl - //bazel/external/libjxl:BUILD.bazel
# @libpng - //bazel/external/libpng:BUILD.bazel
# @libwebp - //bazel/external/libwebp:BUILD.bazel
# @libyuv - //bazel/external/libyuv:BUILD.bazel
# @perfetto - //bazel/external/perfetto:BUILD.bazel
# @piex - //bazel/external/piex:BUILD.bazel
# @spirv_cross - //bazel/external/spirv_cross:BUILD.bazel
# @vello - //bazel/external/vello:BUILD.bazel
# @vulkan_headers - //bazel/external/vulkan_headers:BUILD.bazel
# @vulkan_tools - //bazel/external/vulkan_tools:BUILD.bazel
# @vulkanmemoryallocator - //bazel/external/vulkanmemoryallocator:BUILD.bazel
# @wuffs - //bazel/external/wuffs:BUILD.bazel
# @zlib_skia - //bazel/external/zlib_skia:BUILD.bazel
#### END GENERATED LIST OF THIRD_PARTY DEPS
git_repos_from_deps()

# In order to copy the Freetype configurations into the checked out Freetype folder,
# it is easiest to treat them as a third-party dependency from the perspective of Freetype.
# To do that, we put them in their own Bazel workspace and then have our injected BUILD.bazel
# for Freetype reference this workspace.
# https://bazel.build/reference/be/workspace#new_local_repository
local_repository(
    name = "freetype_config",
    path = "bazel/external/freetype/config",
)

local_repository(
    name = "harfbuzz_config",
    path = "bazel/external/harfbuzz/config",
)

local_repository(
    name = "icu_utils",
    path = "bazel/external/icu/utils",
)

local_repository(
    name = "expat_config",
    path = "bazel/external/expat/config",
)

load("//bazel:cipd_install.bzl", "cipd_install")

cipd_install(
    name = "gn_linux_amd64",
    build_file_content = """
exports_files(
    ["gn"],
    visibility = ["//visibility:public"]
)
""",
    cipd_package = "gn/gn/linux-amd64",
    # From https://chrome-infra-packages.appspot.com/p/gn/gn/linux-amd64/+/git_revision:1c4151ff5c1d6fbf7fa800b8d4bb34d3abc03a41
    sha256 = "7195291488d08f3a10e85b85d8c4816e077015f1c5f196f770003a97aa42caf8",
    tag = "git_revision:1c4151ff5c1d6fbf7fa800b8d4bb34d3abc03a41",
)

cipd_install(
    name = "gn_mac_arm64",
    build_file_content = """
exports_files(
    ["gn"],
    visibility = ["//visibility:public"]
)
""",
    cipd_package = "gn/gn/mac-arm64",
    # From https://chrome-infra-packages.appspot.com/p/gn/gn/mac-arm64/+/git_revision:1c4151ff5c1d6fbf7fa800b8d4bb34d3abc03a41
    sha256 = "1123907ac3317530e9dd537d50cd83fd83e852aacc07d286f45753c8fc5287ed",
    tag = "git_revision:1c4151ff5c1d6fbf7fa800b8d4bb34d3abc03a41",
)

cipd_install(
    name = "gn_mac_amd64",
    build_file_content = """
exports_files(
    ["gn"],
    visibility = ["//visibility:public"]
)
""",
    cipd_package = "gn/gn/mac-amd64",
    # From https://chrome-infra-packages.appspot.com/p/gn/gn/mac-amd64/+/git_revision:1c4151ff5c1d6fbf7fa800b8d4bb34d3abc03a41
    sha256 = "ed96f7d2f49b83b016e4bdbed432e4734a5a133accb025d7c07685e01489ba93",
    tag = "git_revision:1c4151ff5c1d6fbf7fa800b8d4bb34d3abc03a41",
)
