• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1load("@rules_rust//rust:defs.bzl", "rust_static_library")
2load("//bazel:rust_cxx_bridge.bzl", "rust_cxx_bridge")
3load(
4    "//bazel:skia_rules.bzl",
5    "exports_files_legacy",
6    "select_multi",
7    "skia_cc_library",
8)
9
10exports_files_legacy()
11
12# C++ sources
13skia_cc_library(
14    name = "cpp",
15    hdrs = [
16        "cpp/path_iterator.h",
17    ],
18)
19
20# Generated C++ cxxbridge output
21rust_cxx_bridge(
22    name = "ffi_gen",
23    src = "src/lib.rs",
24    crate_features = select_multi(
25        {
26            "@vello//:msl_shaders": ["msl"],
27            "@vello//:wgsl_shaders": ["wgsl"],
28        },
29    ),
30    deps = [":cpp"],
31)
32
33# Linked rust code
34rust_static_library(
35    name = "vello_rust",
36    srcs = [
37        "src/encoding.rs",
38        "src/lib.rs",
39        "src/shaders.rs",
40    ],
41    crate_features = select_multi(
42        {
43            "@vello//:msl_shaders": ["msl"],
44            "@vello//:wgsl_shaders": ["wgsl"],
45        },
46    ),
47    deps = [
48        "@cxx",
49        "@vello//:vello_encoding",
50        "@vello//:vello_shaders",
51        "@vello_deps//:bytemuck",
52        "@vello_deps//:peniko",
53    ],
54)
55
56# Linked C++ bridge code
57cc_library(
58    name = "vello_ffi",
59    srcs = [":ffi_gen/filegroup"],
60    visibility = ["//visibility:public"],
61    deps = [
62        ":cpp",
63        ":ffi_gen/include",
64        ":vello_rust",
65    ],
66)
67