xref: /aosp_15_r20/external/executorch/backends/vulkan/serialization/targets.bzl (revision 523fa7a60841cd1ecfb9cc4201f1ca8b03ed023a)
1*523fa7a6SAndroid Build Coastguard Workerload("@fbsource//xplat/executorch/build:runtime_wrapper.bzl", "runtime")
2*523fa7a6SAndroid Build Coastguard Worker
3*523fa7a6SAndroid Build Coastguard Workerdef define_common_targets(is_fbcode = False):
4*523fa7a6SAndroid Build Coastguard Worker    runtime.genrule(
5*523fa7a6SAndroid Build Coastguard Worker        name = "gen_vk_delegate_schema",
6*523fa7a6SAndroid Build Coastguard Worker        srcs = ["schema.fbs"],
7*523fa7a6SAndroid Build Coastguard Worker        # We're only generating a single file, so it seems like we could use
8*523fa7a6SAndroid Build Coastguard Worker        # `out`, but `flatc` takes a directory as a parameter, not a single
9*523fa7a6SAndroid Build Coastguard Worker        # file. Use `outs` so that `${OUT}` is expanded as the containing
10*523fa7a6SAndroid Build Coastguard Worker        # directory instead of the file itself.
11*523fa7a6SAndroid Build Coastguard Worker        outs = {
12*523fa7a6SAndroid Build Coastguard Worker            "schema_generated.h": ["schema_generated.h"],
13*523fa7a6SAndroid Build Coastguard Worker        },
14*523fa7a6SAndroid Build Coastguard Worker        cmd = " ".join([
15*523fa7a6SAndroid Build Coastguard Worker            "$(exe {})".format(runtime.external_dep_location("flatc")),
16*523fa7a6SAndroid Build Coastguard Worker            "--cpp",
17*523fa7a6SAndroid Build Coastguard Worker            "--cpp-std c++11",
18*523fa7a6SAndroid Build Coastguard Worker            "--scoped-enums",
19*523fa7a6SAndroid Build Coastguard Worker            "-o ${OUT}",
20*523fa7a6SAndroid Build Coastguard Worker            "${SRCS}",
21*523fa7a6SAndroid Build Coastguard Worker        ]),
22*523fa7a6SAndroid Build Coastguard Worker        default_outs = ["."],
23*523fa7a6SAndroid Build Coastguard Worker    )
24*523fa7a6SAndroid Build Coastguard Worker
25*523fa7a6SAndroid Build Coastguard Worker    runtime.cxx_library(
26*523fa7a6SAndroid Build Coastguard Worker        name = "vk_delegate_schema",
27*523fa7a6SAndroid Build Coastguard Worker        srcs = [],
28*523fa7a6SAndroid Build Coastguard Worker        visibility = [
29*523fa7a6SAndroid Build Coastguard Worker            "//executorch/backends/vulkan/...",
30*523fa7a6SAndroid Build Coastguard Worker        ],
31*523fa7a6SAndroid Build Coastguard Worker        exported_headers = {
32*523fa7a6SAndroid Build Coastguard Worker            "schema_generated.h": ":gen_vk_delegate_schema[schema_generated.h]",
33*523fa7a6SAndroid Build Coastguard Worker        },
34*523fa7a6SAndroid Build Coastguard Worker        exported_external_deps = [
35*523fa7a6SAndroid Build Coastguard Worker            "flatbuffers-api",
36*523fa7a6SAndroid Build Coastguard Worker        ],
37*523fa7a6SAndroid Build Coastguard Worker    )
38*523fa7a6SAndroid Build Coastguard Worker
39*523fa7a6SAndroid Build Coastguard Worker    if is_fbcode:
40*523fa7a6SAndroid Build Coastguard Worker        runtime.python_library(
41*523fa7a6SAndroid Build Coastguard Worker            name = "lib",
42*523fa7a6SAndroid Build Coastguard Worker            srcs = [
43*523fa7a6SAndroid Build Coastguard Worker                "vulkan_graph_builder.py",
44*523fa7a6SAndroid Build Coastguard Worker                "vulkan_graph_schema.py",
45*523fa7a6SAndroid Build Coastguard Worker                "vulkan_graph_serialize.py",
46*523fa7a6SAndroid Build Coastguard Worker            ],
47*523fa7a6SAndroid Build Coastguard Worker            resources = [
48*523fa7a6SAndroid Build Coastguard Worker                "schema.fbs",
49*523fa7a6SAndroid Build Coastguard Worker            ],
50*523fa7a6SAndroid Build Coastguard Worker            visibility = [
51*523fa7a6SAndroid Build Coastguard Worker                "//executorch/...",
52*523fa7a6SAndroid Build Coastguard Worker                "//executorch/vulkan/...",
53*523fa7a6SAndroid Build Coastguard Worker                "@EXECUTORCH_CLIENTS",
54*523fa7a6SAndroid Build Coastguard Worker            ],
55*523fa7a6SAndroid Build Coastguard Worker            deps = [
56*523fa7a6SAndroid Build Coastguard Worker                "//executorch/exir:graph_module",
57*523fa7a6SAndroid Build Coastguard Worker                "//executorch/exir/_serialize:_bindings",
58*523fa7a6SAndroid Build Coastguard Worker                "//executorch/exir/_serialize:lib",
59*523fa7a6SAndroid Build Coastguard Worker            ],
60*523fa7a6SAndroid Build Coastguard Worker        )
61