xref: /aosp_15_r20/external/executorch/devtools/etdump/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 WorkerSCALAR_TYPE_STEM = "scalar_type"
4*523fa7a6SAndroid Build Coastguard WorkerSCALAR_TYPE = SCALAR_TYPE_STEM + ".fbs"
5*523fa7a6SAndroid Build Coastguard Worker
6*523fa7a6SAndroid Build Coastguard Worker# flatcc
7*523fa7a6SAndroid Build Coastguard WorkerETDUMP_STEM_FLATCC = "etdump_schema_flatcc"
8*523fa7a6SAndroid Build Coastguard WorkerETDUMP_SCHEMA_FLATCC = ETDUMP_STEM_FLATCC + ".fbs"
9*523fa7a6SAndroid Build Coastguard WorkerETDUMP_GEN_RULE_NAME_FLATCC = "generate_etdump" + "_flatcc"
10*523fa7a6SAndroid Build Coastguard Worker
11*523fa7a6SAndroid Build Coastguard WorkerETDUMP_SCHEMA_FLATCC_BUILDER = ETDUMP_STEM_FLATCC + "_builder.h"
12*523fa7a6SAndroid Build Coastguard WorkerETDUMP_SCHEMA_FLATCC_READER = ETDUMP_STEM_FLATCC + "_reader.h"
13*523fa7a6SAndroid Build Coastguard WorkerETDUMP_SCHEMA_FLATCC_VERIFIER = ETDUMP_STEM_FLATCC + "_verifier.h"
14*523fa7a6SAndroid Build Coastguard Worker
15*523fa7a6SAndroid Build Coastguard WorkerSCALAR_TYPE_BUILDER = SCALAR_TYPE_STEM + "_builder.h"
16*523fa7a6SAndroid Build Coastguard WorkerSCALAR_TYPE_READER = SCALAR_TYPE_STEM + "_reader.h"
17*523fa7a6SAndroid Build Coastguard WorkerSCALAR_TYPE_VERIFIER = SCALAR_TYPE_STEM + "_verifier.h"
18*523fa7a6SAndroid Build Coastguard Worker
19*523fa7a6SAndroid Build Coastguard WorkerFLATBUFFERS_COMMON_STEM = "flatbuffers_common"
20*523fa7a6SAndroid Build Coastguard WorkerFLATBUFFERS_COMMON_BUILDER = FLATBUFFERS_COMMON_STEM + "_builder.h"
21*523fa7a6SAndroid Build Coastguard WorkerFLATBUFFERS_COMMON_READER = FLATBUFFERS_COMMON_STEM + "_reader.h"
22*523fa7a6SAndroid Build Coastguard Worker
23*523fa7a6SAndroid Build Coastguard Workerdef generate_schema_header_flatcc(rule_name, srcs, headers, default_headers):
24*523fa7a6SAndroid Build Coastguard Worker    """
25*523fa7a6SAndroid Build Coastguard Worker    Generate header files for ETDump schema
26*523fa7a6SAndroid Build Coastguard Worker    """
27*523fa7a6SAndroid Build Coastguard Worker    runtime.genrule(
28*523fa7a6SAndroid Build Coastguard Worker        name = rule_name,
29*523fa7a6SAndroid Build Coastguard Worker        srcs = srcs,
30*523fa7a6SAndroid Build Coastguard Worker        outs = {header: [header] for header in headers},
31*523fa7a6SAndroid Build Coastguard Worker        default_outs = default_headers,
32*523fa7a6SAndroid Build Coastguard Worker        cmd = " ".join([
33*523fa7a6SAndroid Build Coastguard Worker            "$(exe {})".format(runtime.external_dep_location("flatcc-cli")),
34*523fa7a6SAndroid Build Coastguard Worker            "-cwr",
35*523fa7a6SAndroid Build Coastguard Worker            "-o ${OUT}",
36*523fa7a6SAndroid Build Coastguard Worker            "${SRCS}",
37*523fa7a6SAndroid Build Coastguard Worker            # Let our infra know that the file was generated.
38*523fa7a6SAndroid Build Coastguard Worker            " ".join(["&& echo // @" + "generated >> ${OUT}/" + header for header in headers]),
39*523fa7a6SAndroid Build Coastguard Worker        ]),
40*523fa7a6SAndroid Build Coastguard Worker    )
41*523fa7a6SAndroid Build Coastguard Worker
42*523fa7a6SAndroid Build Coastguard Workerdef define_common_targets():
43*523fa7a6SAndroid Build Coastguard Worker    """Defines targets that should be shared between fbcode and xplat.
44*523fa7a6SAndroid Build Coastguard Worker
45*523fa7a6SAndroid Build Coastguard Worker    The directory containing this targets.bzl file should also contain both
46*523fa7a6SAndroid Build Coastguard Worker    TARGETS and BUCK files that call this function.
47*523fa7a6SAndroid Build Coastguard Worker    """
48*523fa7a6SAndroid Build Coastguard Worker    runtime.export_file(
49*523fa7a6SAndroid Build Coastguard Worker        name = ETDUMP_SCHEMA_FLATCC,
50*523fa7a6SAndroid Build Coastguard Worker        visibility = ["@EXECUTORCH_CLIENTS"],
51*523fa7a6SAndroid Build Coastguard Worker    )
52*523fa7a6SAndroid Build Coastguard Worker
53*523fa7a6SAndroid Build Coastguard Worker    generate_schema_header_flatcc(
54*523fa7a6SAndroid Build Coastguard Worker        ETDUMP_GEN_RULE_NAME_FLATCC,
55*523fa7a6SAndroid Build Coastguard Worker        [ETDUMP_SCHEMA_FLATCC, SCALAR_TYPE],
56*523fa7a6SAndroid Build Coastguard Worker        [
57*523fa7a6SAndroid Build Coastguard Worker            ETDUMP_SCHEMA_FLATCC_BUILDER,
58*523fa7a6SAndroid Build Coastguard Worker            ETDUMP_SCHEMA_FLATCC_READER,
59*523fa7a6SAndroid Build Coastguard Worker            ETDUMP_SCHEMA_FLATCC_VERIFIER,
60*523fa7a6SAndroid Build Coastguard Worker            SCALAR_TYPE_BUILDER,
61*523fa7a6SAndroid Build Coastguard Worker            SCALAR_TYPE_READER,
62*523fa7a6SAndroid Build Coastguard Worker            SCALAR_TYPE_VERIFIER,
63*523fa7a6SAndroid Build Coastguard Worker            FLATBUFFERS_COMMON_BUILDER,
64*523fa7a6SAndroid Build Coastguard Worker            FLATBUFFERS_COMMON_READER,
65*523fa7a6SAndroid Build Coastguard Worker        ],
66*523fa7a6SAndroid Build Coastguard Worker        [
67*523fa7a6SAndroid Build Coastguard Worker            ETDUMP_SCHEMA_FLATCC_BUILDER,
68*523fa7a6SAndroid Build Coastguard Worker            ETDUMP_SCHEMA_FLATCC_READER,
69*523fa7a6SAndroid Build Coastguard Worker            ETDUMP_SCHEMA_FLATCC_VERIFIER,
70*523fa7a6SAndroid Build Coastguard Worker        ],
71*523fa7a6SAndroid Build Coastguard Worker    )
72*523fa7a6SAndroid Build Coastguard Worker
73*523fa7a6SAndroid Build Coastguard Worker    runtime.cxx_library(
74*523fa7a6SAndroid Build Coastguard Worker        name = ETDUMP_STEM_FLATCC,
75*523fa7a6SAndroid Build Coastguard Worker        srcs = [],
76*523fa7a6SAndroid Build Coastguard Worker        visibility = ["//executorch/...", "@EXECUTORCH_CLIENTS"],
77*523fa7a6SAndroid Build Coastguard Worker        exported_headers = {
78*523fa7a6SAndroid Build Coastguard Worker            ETDUMP_SCHEMA_FLATCC_BUILDER: ":{}[{}]".format(ETDUMP_GEN_RULE_NAME_FLATCC, ETDUMP_SCHEMA_FLATCC_BUILDER),
79*523fa7a6SAndroid Build Coastguard Worker            ETDUMP_SCHEMA_FLATCC_READER: ":{}[{}]".format(ETDUMP_GEN_RULE_NAME_FLATCC, ETDUMP_SCHEMA_FLATCC_READER),
80*523fa7a6SAndroid Build Coastguard Worker            ETDUMP_SCHEMA_FLATCC_VERIFIER: ":{}[{}]".format(ETDUMP_GEN_RULE_NAME_FLATCC, ETDUMP_SCHEMA_FLATCC_VERIFIER),
81*523fa7a6SAndroid Build Coastguard Worker            SCALAR_TYPE_BUILDER: ":{}[{}]".format(ETDUMP_GEN_RULE_NAME_FLATCC, SCALAR_TYPE_BUILDER),
82*523fa7a6SAndroid Build Coastguard Worker            SCALAR_TYPE_READER: ":{}[{}]".format(ETDUMP_GEN_RULE_NAME_FLATCC, SCALAR_TYPE_READER),
83*523fa7a6SAndroid Build Coastguard Worker            SCALAR_TYPE_VERIFIER: ":{}[{}]".format(ETDUMP_GEN_RULE_NAME_FLATCC, SCALAR_TYPE_VERIFIER),
84*523fa7a6SAndroid Build Coastguard Worker            FLATBUFFERS_COMMON_BUILDER: ":{}[{}]".format(ETDUMP_GEN_RULE_NAME_FLATCC, FLATBUFFERS_COMMON_BUILDER),
85*523fa7a6SAndroid Build Coastguard Worker            FLATBUFFERS_COMMON_READER: ":{}[{}]".format(ETDUMP_GEN_RULE_NAME_FLATCC, FLATBUFFERS_COMMON_READER),
86*523fa7a6SAndroid Build Coastguard Worker        },
87*523fa7a6SAndroid Build Coastguard Worker        exported_external_deps = ["flatccrt"],
88*523fa7a6SAndroid Build Coastguard Worker    )
89*523fa7a6SAndroid Build Coastguard Worker
90*523fa7a6SAndroid Build Coastguard Worker    for aten_mode in (True, False):
91*523fa7a6SAndroid Build Coastguard Worker        aten_suffix = "_aten" if aten_mode else ""
92*523fa7a6SAndroid Build Coastguard Worker        runtime.cxx_library(
93*523fa7a6SAndroid Build Coastguard Worker            name = "etdump_flatcc" + aten_suffix,
94*523fa7a6SAndroid Build Coastguard Worker            srcs = [
95*523fa7a6SAndroid Build Coastguard Worker                "etdump_flatcc.cpp",
96*523fa7a6SAndroid Build Coastguard Worker                "emitter.cpp",
97*523fa7a6SAndroid Build Coastguard Worker            ],
98*523fa7a6SAndroid Build Coastguard Worker            headers = [
99*523fa7a6SAndroid Build Coastguard Worker                "emitter.h",
100*523fa7a6SAndroid Build Coastguard Worker            ],
101*523fa7a6SAndroid Build Coastguard Worker            exported_headers = [
102*523fa7a6SAndroid Build Coastguard Worker                "etdump_flatcc.h",
103*523fa7a6SAndroid Build Coastguard Worker            ],
104*523fa7a6SAndroid Build Coastguard Worker            deps = [
105*523fa7a6SAndroid Build Coastguard Worker                "//executorch/runtime/platform:platform",
106*523fa7a6SAndroid Build Coastguard Worker            ],
107*523fa7a6SAndroid Build Coastguard Worker            exported_deps = [
108*523fa7a6SAndroid Build Coastguard Worker                ":etdump_schema_flatcc",
109*523fa7a6SAndroid Build Coastguard Worker                "//executorch/runtime/core:event_tracer" + aten_suffix,
110*523fa7a6SAndroid Build Coastguard Worker                "//executorch/runtime/core/exec_aten/util:scalar_type_util" + aten_suffix,
111*523fa7a6SAndroid Build Coastguard Worker            ],
112*523fa7a6SAndroid Build Coastguard Worker            visibility = [
113*523fa7a6SAndroid Build Coastguard Worker                "//executorch/...",
114*523fa7a6SAndroid Build Coastguard Worker                "@EXECUTORCH_CLIENTS",
115*523fa7a6SAndroid Build Coastguard Worker            ],
116*523fa7a6SAndroid Build Coastguard Worker        )
117