workspace(name = "skia")

load("//bazel:deps.bzl", "bazel_deps", "c_plus_plus_deps")
bazel_deps()

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")
load("//bazel:gcs_mirror.bzl", "gcs_mirror_url")

# See https://github.com/emscripten-core/emsdk/tree/85d27a4a2a60d591613a305b14ae438c2bb3ce11/bazel#setup-instructions
http_archive(
    name = "emsdk",
    sha256 = "cb8cded78f6953283429d724556e89211e51ac4d871fcf38e0b32405ee248e91",
    strip_prefix = "emsdk-3.1.44/bazel",
    urls = gcs_mirror_url(
        sha256 = "cb8cded78f6953283429d724556e89211e51ac4d871fcf38e0b32405ee248e91",
        url = "https://github.com/emscripten-core/emsdk/archive/refs/tags/3.1.44.tar.gz",
    ),
)

load("@emsdk//:deps.bzl", emsdk_deps = "deps")

# One of the deps here is build_bazel_rules_nodejs, currently version 5.8.0
# 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.44")

http_archive(
    name = "bazel_toolchains",
    sha256 = "e52789d4e89c3e2dc0e3446a9684626a626b6bec3fde787d70bae37c6ebcc47f",
    strip_prefix = "bazel-toolchains-5.1.1",
    urls = gcs_mirror_url(
        sha256 = "e52789d4e89c3e2dc0e3446a9684626a626b6bec3fde787d70bae37c6ebcc47f",
        url = "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 = gcs_mirror_url(
        sha256 = "5fa3c738d33acca3b97622a13a741129f67ef43f5fdfcec63b29374cc0574c29",
        url = "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 = gcs_mirror_url(
        sha256 = "cd1a77b7b02e8e008439ca76fd34f5b07aecb8c752961f9640dea15e9e5ba1ca",
        url = "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 = gcs_mirror_url(
        sha256 = "b8ab9bbdf0c6968cf20060794bc61e231fae82aaf69d6e3577c154181991f576",
        url = "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 = gcs_mirror_url(
        sha256 = "e9abb7658b6a129740c0b3ef6f5a2370864e102a5ba5ffca2cea565829ed825a",
        url = "https://github.com/bazelbuild/rules_webtesting/releases/download/0.3.5/rules_webtesting.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 = gcs_mirror_url(
        sha256 = "950a3ad4166ae60c8ccd628d1a8e64396106e7f98361ebe91b0bcfe60d8e4b60",
        url = "https://github.com/bazelbuild/rules_rust/releases/download/0.20.0/rules_rust-v0.20.0.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",
    extra_target_triples = ["aarch64-apple-darwin"],
    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 = gcs_mirror_url(
        ext = ".tar.gz",
        sha256 = "b20c2a31fb5a2e2aeebced19e35d78a974301171391b39e36d5ebb00bea2aa93",
        url = "https://crates.io/api/v1/crates/cxxbridge-cmd/1.0.94/download",
    ),
)

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 = gcs_mirror_url(
        ext = ".tar.gz",
        sha256 = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93",
        url = "https://crates.io/api/v1/crates/cxx/1.0.94/download",
    ),
)

# 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",
)

# 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
c_plus_plus_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 = "git_linux_amd64",
    build_file_content = """
filegroup(
  name = "all_files",
  # The exclude pattern prevents files with spaces in their names from tripping up Bazel.
  srcs = glob(include=["**/*"], exclude=["**/* *"]),
  visibility = ["//visibility:public"],
)
""",
    cipd_package = "infra/3pp/tools/git/linux-amd64",
    # Based on
    # https://skia.googlesource.com/buildbot/+/f1d21dc58818cd6aba0a7822e59d37636aefe936/WORKSPACE#391.
    #
    # Note that the below "git config" commands do not affect the user's Git configuration. These
    # settings are only visible to Bazel targets that depend on @git_linux_amd64//:all_files via
    # the "data" attribute. The result of these commands can be examined as follows:
    #
    #     $ cat $(bazel info output_base)/external/git_linux_amd64/etc/gitconfig
    #     [user]
    #             name = Bazel Test User
    #             email = bazel-test-user@example.com
    postinstall_cmds_posix = [
        "mkdir etc",
        "bin/git config --system user.name \"Bazel Test User\"",
        "bin/git config --system user.email \"bazel-test-user@example.com\"",
    ],
    # From https://chrome-infra-packages.appspot.com/p/infra/3pp/tools/git/linux-amd64/+/version:2.29.2.chromium.6
    sha256 = "36cb96051827d6a3f6f59c5461996fe9490d997bcd2b351687d87dcd4a9b40fa",
    tag = "version:2.29.2.chromium.6",
)

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",
)

cipd_install(
    name = "skimage",
    build_file = "//bazel/external/skimage:BUILD.bazel",
    cipd_package = "skia/bots/skimage",
    # From https://chrome-infra-packages.appspot.com/p/skia/bots/skimage/+/sRladEfUAXeYIBD3Pt3ke0Fd08vtYVLrg4IASKk5F6YC
    sha256 = "b1195a7447d40177982010f73edde47b415dd3cbed6152eb83820048a93917a6",
    tag = "version:47",
)

##################################
# Docker rules and dependencies. #
##################################

http_archive(
    name = "io_bazel_rules_docker",
    sha256 = "27d53c1d646fc9537a70427ad7b034734d08a9c38924cc6357cc973fed300820",
    strip_prefix = "rules_docker-0.24.0",
    urls = gcs_mirror_url(
        sha256 = "27d53c1d646fc9537a70427ad7b034734d08a9c38924cc6357cc973fed300820",
        url = "https://github.com/bazelbuild/rules_docker/releases/download/v0.24.0/rules_docker-v0.24.0.tar.gz",
    ),
)

load(
    "@io_bazel_rules_docker//repositories:repositories.bzl",
    container_repositories = "repositories",
)

container_repositories()

# This is required by the toolchain_container rule.
load(
    "@io_bazel_rules_docker//repositories:go_repositories.bzl",
    container_go_deps = "go_deps",
)

container_go_deps()

load(
    "@io_bazel_rules_docker//container:container.bzl",
    "container_pull",
)

# Pulls the gcr.io/skia-public/debugger-app-base container.
container_pull(
    name = "debugger-app-base",
    digest = "sha256:24c6e5d875d298c741e8c2917a94e1d548400eb8a9517d2a90f93833cbba5469",
    registry = "gcr.io",
    repository = "skia-public/debugger-app-base",
)

# Pulls the gcr.io/skia-public/jsfiddle-base container.
container_pull(
    name = "jsfiddle-base",
    digest = "sha256:2e999b8eedf768b6deae7405789ccdac92dcc01c36720f268c9d1b58fcd8ec1b",
    registry = "gcr.io",
    repository = "skia-public/jsfiddle-base",
)

# Pulls the gcr.io/skia-public/shaders-base container.
container_pull(
    name = "shaders-base",
    digest = "sha256:6246ccdc88e01a5dc92d83e9a0698d76f53529978df070f7c93ecbfb3226d10d",
    registry = "gcr.io",
    repository = "skia-public/shaders-base",
)

# Pulls the gcr.io/skia-public/skottie-base container.
container_pull(
    name = "skottie-base",
    digest = "sha256:3e2b0ed75e491b46f1d2628ecb2aebbf587c06674e9ec249a0e77fe77b43f03c",
    registry = "gcr.io",
    repository = "skia-public/skottie-base",
)
