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