blob: f88bf0816e03ad8444e09232ba0ce5291b2cc85c [file] [log] [blame]
load(
"//bazel:skia_rules.bzl",
"exports_files_legacy",
"select_multi",
"skia_cc_deps",
"skia_cc_library",
"skia_filegroup",
)
load("@rules_rust//rust:defs.bzl", "rust_static_library")
load("//bazel:rust_cxx_bridge.bzl", "rust_cxx_bridge")
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",
crate_features = select_multi(
{
"@vello//:msl_shaders": ["msl"],
"@vello//:wgsl_shaders": ["wgsl"],
},
),
src = "src/lib.rs",
deps = [":cpp"]
)
# Linked rust code
rust_static_library(
name = "vello_rust",
crate_features = select_multi(
{
"@vello//:msl_shaders": ["msl"],
"@vello//:wgsl_shaders": ["wgsl"],
},
),
srcs = [
"src/encoding.rs",
"src/lib.rs",
"src/shaders.rs",
],
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" ],
deps = [
":cpp",
":ffi_gen/include",
":vello_rust"
],
visibility = ["//visibility:public"],
)