xref: /aosp_15_r20/external/executorch/backends/xnnpack/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():
4*523fa7a6SAndroid Build Coastguard Worker    runtime.genrule(
5*523fa7a6SAndroid Build Coastguard Worker        name = "gen_xnnpack_schema",
6*523fa7a6SAndroid Build Coastguard Worker        srcs = [
7*523fa7a6SAndroid Build Coastguard Worker            "runtime_schema.fbs",
8*523fa7a6SAndroid Build Coastguard Worker        ],
9*523fa7a6SAndroid Build Coastguard Worker        # We're only generating a single file, so it seems like we could use
10*523fa7a6SAndroid Build Coastguard Worker        # `out`, but `flatc` takes a directory as a parameter, not a single
11*523fa7a6SAndroid Build Coastguard Worker        # file. Use `outs` so that `${OUT}` is expanded as the containing
12*523fa7a6SAndroid Build Coastguard Worker        # directory instead of the file itself.
13*523fa7a6SAndroid Build Coastguard Worker        outs = {
14*523fa7a6SAndroid Build Coastguard Worker            "schema_generated.h": ["runtime_schema_generated.h"],
15*523fa7a6SAndroid Build Coastguard Worker        },
16*523fa7a6SAndroid Build Coastguard Worker        cmd = " ".join([
17*523fa7a6SAndroid Build Coastguard Worker            "$(exe {})".format(runtime.external_dep_location("flatc")),
18*523fa7a6SAndroid Build Coastguard Worker            "--cpp",
19*523fa7a6SAndroid Build Coastguard Worker            "--cpp-std c++11",
20*523fa7a6SAndroid Build Coastguard Worker            "--scoped-enums",
21*523fa7a6SAndroid Build Coastguard Worker            "-o ${OUT}",
22*523fa7a6SAndroid Build Coastguard Worker            "${SRCS}",
23*523fa7a6SAndroid Build Coastguard Worker        ]),
24*523fa7a6SAndroid Build Coastguard Worker        default_outs = ["."],
25*523fa7a6SAndroid Build Coastguard Worker    )
26*523fa7a6SAndroid Build Coastguard Worker
27*523fa7a6SAndroid Build Coastguard Worker    runtime.cxx_library(
28*523fa7a6SAndroid Build Coastguard Worker        name = "xnnpack_flatbuffer_header",
29*523fa7a6SAndroid Build Coastguard Worker        srcs = [],
30*523fa7a6SAndroid Build Coastguard Worker        visibility = [
31*523fa7a6SAndroid Build Coastguard Worker            "//executorch/backends/xnnpack/...",
32*523fa7a6SAndroid Build Coastguard Worker        ],
33*523fa7a6SAndroid Build Coastguard Worker        exported_headers = {
34*523fa7a6SAndroid Build Coastguard Worker            "schema_generated.h": ":gen_xnnpack_schema[schema_generated.h]",
35*523fa7a6SAndroid Build Coastguard Worker        },
36*523fa7a6SAndroid Build Coastguard Worker        exported_external_deps = ["flatbuffers-api"],
37*523fa7a6SAndroid Build Coastguard Worker    )
38