| # Rules for building C++ things in general | |
| bazel_dep(name = "rules_cc", version = "0.1.1") | |
| bazel_dep(name = "platforms", version = "0.0.11") | |
| # TODO(kjlubick) publish to https://registry.bazel.build/ for better interop | |
| # bazel_dep(name = "skia", version = "137.0.0") | |
| # A real client should download a pinned version of Skia by putting the following | |
| # in a file called skia.bzl: | |
| # | |
| # load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") | |
| # | |
| # def _skia_ext_impl(ctx): | |
| # git_repository( | |
| # name = "skia", | |
| # commit = "99822dd8249dfe3773cbd7ca56bb1767bf92fa22", | |
| # remote = "https://skia.googlesource.com/skia", | |
| # ) | |
| # | |
| # skia_ext = module_extension( | |
| # implementation = _skia_ext_impl, | |
| # ) | |
| # | |
| # and then in MODULE.bazel: | |
| # skia_ext = use_extension("//:skia.bzl", "skia_ext") | |
| # use_repo(skia_ext, "skia") | |
| # We use local_repository to allow us to test Skia at head as if it were checked | |
| # out via git_repository. | |
| bazel_dep(name = "skia") | |
| local_path_override( | |
| module_name = "skia", | |
| path = "../..", | |
| ) | |
| # Clients need to define a target here named "skia_user_config" that points to a | |
| # Bazel workspace with: | |
| # - a user_config cc_library rule that has SkiaUserConfig.h available and | |
| # the SK_USE_BAZEL_CONFIG_HEADER define set. | |
| # - A copts.bzl file with at least two string lists: DEFAULT_COPTS, DEFAULT_OBJC_COPTS | |
| # These lists can be empty if you want to use the toolchain's default. | |
| # - a linkopts.bzl file with at least the string list DEFAULT_LINKOPTS | |
| # This list can be empty if you want to use the toolchain's default. | |
| bazel_dep(name = "skia_user_config") | |
| local_path_override( | |
| module_name = "skia_user_config", | |
| path = "custom_skia_config", | |
| ) | |
| # bzlmod doesn't allow for transitive dependencies, so if your rules depend on | |
| # these headers directly, you must include them. Ideally, you'd use bazel_dep | |
| # from the registry, but some of them aren't there, so you may have to make | |
| # your own rules. Feel free to crib them off Skia's bazel/external directory. | |
| skia_deps = use_extension("@skia//bazel:cpp_modules.bzl", "cpp_modules") | |
| skia_deps.from_file(deps_json = "@skia//bazel:deps.json") | |
| use_repo( | |
| skia_deps, | |
| "dawn", | |
| "delaunator", | |
| "dng_sdk", | |
| "expat", | |
| "freetype", | |
| "harfbuzz", | |
| "icu", | |
| "icu4x", | |
| "imgui", | |
| "libavif", | |
| "libgav1", | |
| "libjpeg_turbo", | |
| "libjxl", | |
| "libpng", | |
| "libwebp", | |
| "libyuv", | |
| "perfetto", | |
| "piex", | |
| "spirv_cross", | |
| "spirv_headers", | |
| "spirv_tools", | |
| "vello", | |
| "vulkan_headers", | |
| "vulkan_tools", | |
| "vulkan_utility_libraries", | |
| "vulkanmemoryallocator", | |
| "wuffs", | |
| "zlib", | |
| ) |