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