@@ -16,6 +16,12 @@ SCHEMA_GEN_RULE_NAME = "qc_compiler_spec_generated"
1616
1717SCHEMA_LIRRARY_NAME = SCHEMA_NAME
1818
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+
1925def generate_schema_header (rule_name , srcs , headers , default_header ):
2026 """Generate header file given flatbuffer schema
2127 """
@@ -77,6 +83,33 @@ def define_common_targets():
7783 platforms = [ANDROID ],
7884 )
7985
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+
80113 runtime .cxx_library (
81114 name = "qnn_executorch_backend" ,
82115 srcs = [],
0 commit comments