blob: 7ac44a2705b2a672e5e8cd4958ad7cdc62fb08b6 [file] [log] [blame]
load("@rules_rust//rust:defs.bzl", "rust_static_library")
load("//bazel:rust_cxx_bridge.bzl", "rust_cxx_bridge")
load(
"//bazel:skia_rules.bzl",
"exports_files_legacy",
"select_multi",
"skia_cc_library",
)
exports_files_legacy()
# C++ sources
skia_cc_library(
name = "cpp",
hdrs = [
"cpp/path_iterator.h",
],
)
# Generated C++ cxxbridge output
rust_cxx_bridge(
name = "ffi_gen",
src = "src/lib.rs",
crate_features = select_multi(
{
"@vello//:msl_shaders": ["msl"],
"@vello//:wgsl_shaders": ["wgsl"],
},
),
deps = [":cpp"],
)
# Linked rust code
rust_static_library(
name = "vello_rust",
srcs = [
"src/encoding.rs",
"src/lib.rs",
"src/shaders.rs",
],
crate_features = select_multi(
{
"@vello//:msl_shaders": ["msl"],
"@vello//:wgsl_shaders": ["wgsl"],
},
),
deps = [
"@cxx",
"@vello//:vello_encoding",
"@vello//:vello_shaders",
"@vello_deps//:bytemuck",
"@vello_deps//:peniko",
],
)
# Linked C++ bridge code
cc_library(
name = "vello_ffi",
srcs = [":ffi_gen/filegroup"],
visibility = ["//visibility:public"],
deps = [
":cpp",
":ffi_gen/include",
":vello_rust",
],
)