xref: /aosp_15_r20/external/skia/third_party/vello/BUILD.bazel (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Workerload("@rules_rust//rust:defs.bzl", "rust_static_library")
2*c8dee2aaSAndroid Build Coastguard Workerload("//bazel:rust_cxx_bridge.bzl", "rust_cxx_bridge")
3*c8dee2aaSAndroid Build Coastguard Workerload(
4*c8dee2aaSAndroid Build Coastguard Worker    "//bazel:skia_rules.bzl",
5*c8dee2aaSAndroid Build Coastguard Worker    "select_multi",
6*c8dee2aaSAndroid Build Coastguard Worker    "skia_cc_library",
7*c8dee2aaSAndroid Build Coastguard Worker)
8*c8dee2aaSAndroid Build Coastguard Worker
9*c8dee2aaSAndroid Build Coastguard Worker# C++ sources
10*c8dee2aaSAndroid Build Coastguard Workerskia_cc_library(
11*c8dee2aaSAndroid Build Coastguard Worker    name = "cpp",
12*c8dee2aaSAndroid Build Coastguard Worker    hdrs = [
13*c8dee2aaSAndroid Build Coastguard Worker        "cpp/path_iterator.h",
14*c8dee2aaSAndroid Build Coastguard Worker    ],
15*c8dee2aaSAndroid Build Coastguard Worker)
16*c8dee2aaSAndroid Build Coastguard Worker
17*c8dee2aaSAndroid Build Coastguard Worker# Generated C++ cxxbridge output
18*c8dee2aaSAndroid Build Coastguard Workerrust_cxx_bridge(
19*c8dee2aaSAndroid Build Coastguard Worker    name = "ffi_gen",
20*c8dee2aaSAndroid Build Coastguard Worker    src = "src/lib.rs",
21*c8dee2aaSAndroid Build Coastguard Worker    crate_features = select_multi(
22*c8dee2aaSAndroid Build Coastguard Worker        {
23*c8dee2aaSAndroid Build Coastguard Worker            "@vello//:msl_shaders": ["msl"],
24*c8dee2aaSAndroid Build Coastguard Worker            "@vello//:wgsl_shaders": ["wgsl"],
25*c8dee2aaSAndroid Build Coastguard Worker        },
26*c8dee2aaSAndroid Build Coastguard Worker    ),
27*c8dee2aaSAndroid Build Coastguard Worker    deps = [":cpp"],
28*c8dee2aaSAndroid Build Coastguard Worker)
29*c8dee2aaSAndroid Build Coastguard Worker
30*c8dee2aaSAndroid Build Coastguard Worker# Linked rust code
31*c8dee2aaSAndroid Build Coastguard Workerrust_static_library(
32*c8dee2aaSAndroid Build Coastguard Worker    name = "vello_rust",
33*c8dee2aaSAndroid Build Coastguard Worker    srcs = [
34*c8dee2aaSAndroid Build Coastguard Worker        "src/encoding.rs",
35*c8dee2aaSAndroid Build Coastguard Worker        "src/lib.rs",
36*c8dee2aaSAndroid Build Coastguard Worker        "src/shaders.rs",
37*c8dee2aaSAndroid Build Coastguard Worker    ],
38*c8dee2aaSAndroid Build Coastguard Worker    crate_features = select_multi(
39*c8dee2aaSAndroid Build Coastguard Worker        {
40*c8dee2aaSAndroid Build Coastguard Worker            "@vello//:msl_shaders": ["msl"],
41*c8dee2aaSAndroid Build Coastguard Worker            "@vello//:wgsl_shaders": ["wgsl"],
42*c8dee2aaSAndroid Build Coastguard Worker        },
43*c8dee2aaSAndroid Build Coastguard Worker    ),
44*c8dee2aaSAndroid Build Coastguard Worker    deps = [
45*c8dee2aaSAndroid Build Coastguard Worker        "@cxx",
46*c8dee2aaSAndroid Build Coastguard Worker        "@vello//:vello_encoding",
47*c8dee2aaSAndroid Build Coastguard Worker        "@vello//:vello_shaders",
48*c8dee2aaSAndroid Build Coastguard Worker        "@vello_deps//:bytemuck",
49*c8dee2aaSAndroid Build Coastguard Worker        "@vello_deps//:peniko",
50*c8dee2aaSAndroid Build Coastguard Worker    ],
51*c8dee2aaSAndroid Build Coastguard Worker)
52*c8dee2aaSAndroid Build Coastguard Worker
53*c8dee2aaSAndroid Build Coastguard Worker# Linked C++ bridge code
54*c8dee2aaSAndroid Build Coastguard Workercc_library(
55*c8dee2aaSAndroid Build Coastguard Worker    name = "vello_ffi",
56*c8dee2aaSAndroid Build Coastguard Worker    srcs = [":ffi_gen/filegroup"],
57*c8dee2aaSAndroid Build Coastguard Worker    defines = select_multi(
58*c8dee2aaSAndroid Build Coastguard Worker        {
59*c8dee2aaSAndroid Build Coastguard Worker            "@vello//:msl_shaders": ["VELLO_MSL_SHADERS=true"],
60*c8dee2aaSAndroid Build Coastguard Worker            "@vello//:wgsl_shaders": ["VELLO_WGSL_SHADERS=true"],
61*c8dee2aaSAndroid Build Coastguard Worker        },
62*c8dee2aaSAndroid Build Coastguard Worker    ),
63*c8dee2aaSAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
64*c8dee2aaSAndroid Build Coastguard Worker    deps = [
65*c8dee2aaSAndroid Build Coastguard Worker        ":cpp",
66*c8dee2aaSAndroid Build Coastguard Worker        ":ffi_gen/include",
67*c8dee2aaSAndroid Build Coastguard Worker        ":vello_rust",
68*c8dee2aaSAndroid Build Coastguard Worker    ],
69*c8dee2aaSAndroid Build Coastguard Worker)
70