@@ -16,6 +16,12 @@ SCHEMA_GEN_RULE_NAME = "qc_compiler_spec_generated"
16
16
17
17
SCHEMA_LIRRARY_NAME = SCHEMA_NAME
18
18
19
+ QC_BINARY_INFO_SCHEMA = "qc_binary_info"
20
+ QC_BINARY_INFO_INPUT_SCHEMA = "serialization/" + QC_BINARY_INFO_SCHEMA + ".fbs"
21
+ QC_BINARY_INFO_SCHEMA_GEN_RULE_NAME = QC_BINARY_INFO_SCHEMA + "_generated"
22
+ QC_BINARY_INFO_OUTPUT_SCHEMA_HEADER = QC_BINARY_INFO_SCHEMA_GEN_RULE_NAME + ".h"
23
+ QC_BINARY_INFO_SCHEMA_LIRRARY_NAME = QC_BINARY_INFO_SCHEMA
24
+
19
25
def generate_schema_header (rule_name , srcs , headers , default_header ):
20
26
"""Generate header file given flatbuffer schema
21
27
"""
@@ -77,6 +83,33 @@ def define_common_targets():
77
83
platforms = [ANDROID ],
78
84
)
79
85
86
+ generate_schema_header (
87
+ QC_BINARY_INFO_SCHEMA_GEN_RULE_NAME ,
88
+ [QC_BINARY_INFO_INPUT_SCHEMA ],
89
+ [QC_BINARY_INFO_OUTPUT_SCHEMA_HEADER ],
90
+ QC_BINARY_INFO_OUTPUT_SCHEMA_HEADER ,
91
+ )
92
+
93
+ runtime .cxx_library (
94
+ name = "qc_binary_info_schema" ,
95
+ srcs = [],
96
+ visibility = [
97
+ # Lock this down as tightly as possible to ensure that flatbuffers
98
+ # are an implementation detail. Ideally this list would only include
99
+ # //executorch/runtime/executor/...
100
+ "//executorch/codegen/tools/..." ,
101
+ "//executorch/runtime/executor/..." ,
102
+ "//executorch/backends/qualcomm/..." ,
103
+ "//executorch/backends/qualcomm/runtime/..." ,
104
+ ],
105
+ exported_headers = {
106
+ QC_BINARY_INFO_OUTPUT_SCHEMA_HEADER : ":{}[{}]" .format ( QC_BINARY_INFO_SCHEMA_GEN_RULE_NAME , QC_BINARY_INFO_OUTPUT_SCHEMA_HEADER ),
107
+ },
108
+ exported_external_deps = ["flatbuffers-api" ],
109
+ define_static_target = True ,
110
+ platforms = [ANDROID ],
111
+ )
112
+
80
113
runtime .cxx_library (
81
114
name = "qnn_executorch_backend" ,
82
115
srcs = [],
0 commit comments