blob: ad0e0003dfc88f89d45c05f7defb8d4059a38bed [file] [log] [blame]
Yiwei Zhang1c9c0722018-12-19 14:40:36 -08001filegroup {
2 name: "deqp_spirv.debuginfo.grammar.json",
3 srcs: ["source/extinst.debuginfo.grammar.json"],
4}
5
6genrule {
7 name: "deqp_gen_spvtools_grammar_tables_1.0",
8 out: [
9 "core.insts-1.0.inc",
10 "operand.kinds-1.0.inc",
11 "glsl.std.450.insts.inc",
12 "opencl.std.insts.inc",
13 ],
14 srcs: [
15 ":deqp_spirv.core.grammar.json-1.0",
16 ":deqp_spirv.glsl.grammar.json",
17 ":deqp_spirv.opencl.grammar.json",
18 ":deqp_spirv.debuginfo.grammar.json",
19 ],
20 tool_files: ["utils/generate_grammar_tables.py"],
21 cmd: "$(location) --spirv-core-grammar=$(location :deqp_spirv.core.grammar.json-1.0) "+
22 "--extinst-glsl-grammar=$(location :deqp_spirv.glsl.grammar.json) "+
23 "--extinst-opencl-grammar=$(location :deqp_spirv.opencl.grammar.json) "+
24 "--extinst-debuginfo-grammar=$(location :deqp_spirv.debuginfo.grammar.json) "+
25 "--core-insts-output=$(location core.insts-1.0.inc) "+
26 "--glsl-insts-output=$(location glsl.std.450.insts.inc) "+
27 "--opencl-insts-output=$(location opencl.std.insts.inc) "+
28 "--operand-kinds-output=$(location operand.kinds-1.0.inc)",
29}
30
31genrule {
32 name: "deqp_gen_spvtools_grammar_tables_1.1",
33 out: [
34 "core.insts-1.1.inc",
35 "operand.kinds-1.1.inc",
36 ],
37 srcs: [
38 ":deqp_spirv.core.grammar.json-1.1",
39 ":deqp_spirv.debuginfo.grammar.json",
40 ],
41 tool_files: ["utils/generate_grammar_tables.py"],
42 cmd: "$(location) --spirv-core-grammar=$(location :deqp_spirv.core.grammar.json-1.1) "+
43 "--extinst-debuginfo-grammar=$(location :deqp_spirv.debuginfo.grammar.json) "+
44 "--core-insts-output=$(location core.insts-1.1.inc) "+
45 "--operand-kinds-output=$(location operand.kinds-1.1.inc)",
46}
47
48genrule {
49 name: "deqp_gen_spvtools_grammar_tables_1.2",
50 out: [
51 "core.insts-1.2.inc",
52 "operand.kinds-1.2.inc",
53 ],
54 srcs: [
55 ":deqp_spirv.core.grammar.json-1.2",
56 ":deqp_spirv.debuginfo.grammar.json",
57 ],
58 tool_files: ["utils/generate_grammar_tables.py"],
59 cmd: "$(location) --spirv-core-grammar=$(location :deqp_spirv.core.grammar.json-1.2) "+
60 "--extinst-debuginfo-grammar=$(location :deqp_spirv.debuginfo.grammar.json) "+
61 "--core-insts-output=$(location core.insts-1.2.inc) "+
62 "--operand-kinds-output=$(location operand.kinds-1.2.inc)",
63}
64
65genrule {
66 name: "deqp_gen_spvtools_grammar_tables_unified1",
67 out: [
68 "core.insts-unified1.inc",
69 "operand.kinds-unified1.inc",
70 ],
71 srcs: [
72 ":deqp_spirv.core.grammar.json-unified1",
73 ":deqp_spirv.debuginfo.grammar.json",
74 ],
75 tool_files: ["utils/generate_grammar_tables.py"],
76 cmd: "$(location) --spirv-core-grammar=$(location :deqp_spirv.core.grammar.json-unified1) "+
77 "--extinst-debuginfo-grammar=$(location :deqp_spirv.debuginfo.grammar.json) "+
78 "--core-insts-output=$(location core.insts-unified1.inc) "+
79 "--operand-kinds-output=$(location operand.kinds-unified1.inc)",
80}
81
82genrule {
83 name: "deqp_gen_spvtools_grammar_tables_debuginfo",
84 out: [
85 "debuginfo.insts.inc",
86 ],
87 srcs: [
88 ":deqp_spirv.debuginfo.grammar.json",
89 ],
90 tool_files: ["utils/generate_grammar_tables.py"],
91 cmd: "$(location) --extinst-vendor-grammar=$(in) "+
92 "--vendor-insts-output=$(out)"
93}
94
95genrule {
96 name: "deqp_gen_spvtools_grammar_tables_amd-gcn-shader",
97 out: [
98 "spv-amd-gcn-shader.insts.inc",
99 ],
100 srcs: [
101 "source/extinst.spv-amd-gcn-shader.grammar.json",
102 ],
103 tool_files: ["utils/generate_grammar_tables.py"],
104 cmd: "$(location) --extinst-vendor-grammar=$(in) "+
105 "--vendor-insts-output=$(out)"
106}
107
108genrule {
109 name: "deqp_gen_spvtools_grammar_tables_amd-shader-ballot",
110 out: [
111 "spv-amd-shader-ballot.insts.inc",
112 ],
113 srcs: [
114 "source/extinst.spv-amd-shader-ballot.grammar.json",
115 ],
116 tool_files: ["utils/generate_grammar_tables.py"],
117 cmd: "$(location) --extinst-vendor-grammar=$(in) "+
118 "--vendor-insts-output=$(out)"
119}
120
121genrule {
122 name: "deqp_gen_spvtools_grammar_tables_amd-shader-explicit-vertex-parameter",
123 out: [
124 "spv-amd-shader-explicit-vertex-parameter.insts.inc",
125 ],
126 srcs: [
127 "source/extinst.spv-amd-shader-explicit-vertex-parameter.grammar.json",
128 ],
129 tool_files: ["utils/generate_grammar_tables.py"],
130 cmd: "$(location) --extinst-vendor-grammar=$(in) "+
131 "--vendor-insts-output=$(out)"
132}
133
134genrule {
135 name: "deqp_gen_spvtools_grammar_tables_amd-shader-trinary-minmax",
136 out: [
137 "spv-amd-shader-trinary-minmax.insts.inc",
138 ],
139 srcs: [
140 "source/extinst.spv-amd-shader-trinary-minmax.grammar.json",
141 ],
142 tool_files: ["utils/generate_grammar_tables.py"],
143 cmd: "$(location) --extinst-vendor-grammar=$(in) "+
144 "--vendor-insts-output=$(out)"
145}
146
147genrule {
148 name: "deqp_gen_spvtools_lang_headers",
149 out: [
150 "DebugInfo.h",
151 ],
152 srcs: [
153 ":deqp_spirv.debuginfo.grammar.json",
154 ],
155 tool_files: ["utils/generate_language_headers.py"],
156 cmd: "$(location) --extinst-name=DebugInfo "+
157 "--extinst-grammar=$(location :deqp_spirv.debuginfo.grammar.json) "+
158 "--extinst-output-base=$$(dirname $(location DebugInfo.h))/DebugInfo",
159}
160
161genrule {
162 name: "deqp_gen_spvtools_enum_string_mapping",
163 out: [
164 "extension_enum.inc",
165 "enum_string_mapping.inc",
166 ],
167 srcs: [
168 ":deqp_spirv.core.grammar.json-unified1",
169 ":deqp_spirv.debuginfo.grammar.json",
170 ],
171 tool_files: ["utils/generate_grammar_tables.py"],
172 cmd: "$(location) --spirv-core-grammar=$(location :deqp_spirv.core.grammar.json-unified1) "+
173 "--extinst-debuginfo-grammar=$(location :deqp_spirv.debuginfo.grammar.json) "+
174 "--extension-enum-output=$(location extension_enum.inc) "+
175 "--enum-string-mapping-output=$(location enum_string_mapping.inc) "
176}
177
178genrule {
179 name: "deqp_gen_spvtools_generators_inc",
180 out: [
181 "generators.inc"
182 ],
183 srcs: [
184 ":deqp_spirv.registry.xml"
185 ],
186 tool_files: ["utils/generate_registry_tables.py"],
187 cmd: "$(location) --xml=$(location :deqp_spirv.registry.xml) --generator-output=$(location generators.inc)",
188}
189
190genrule { // FIXME this relies on `git` which is no good on build machines
191 name: "deqp_gen_spvtools_build_version_inc",
192 out: ["build-version.inc"],
193 srcs: ["CHANGES"],
194 tool_files: ["utils/update_build_version.py"],
195 cmd: "$(location) $$(dirname $(location CHANGES)) " +
196 "$(location build-version.inc)",
197}
198
199cc_library {
200 name: "deqp_spirv-tools",
201 sdk_version: "27",
202 srcs: [
203 "source/*.cpp",
204 "source/util/*.cpp",
205 "source/val/*.cpp",
206 "source/opt/*.cpp",
207 ],
208 local_include_dirs: [
209 "source",
210 ],
211 export_include_dirs: [
212 "include",
213 ],
214 include_dirs: [
215 "external/deqp-deps/SPIRV-Headers/include"
216 ],
217 generated_headers: [
218 "deqp_gen_spvtools_grammar_tables_1.0",
219 "deqp_gen_spvtools_grammar_tables_1.1",
220 "deqp_gen_spvtools_grammar_tables_1.2",
221 "deqp_gen_spvtools_grammar_tables_unified1",
222 "deqp_gen_spvtools_grammar_tables_debuginfo",
223 "deqp_gen_spvtools_grammar_tables_amd-gcn-shader",
224 "deqp_gen_spvtools_grammar_tables_amd-shader-ballot",
225 "deqp_gen_spvtools_grammar_tables_amd-shader-explicit-vertex-parameter",
226 "deqp_gen_spvtools_grammar_tables_amd-shader-trinary-minmax",
227 "deqp_gen_spvtools_enum_string_mapping",
228 "deqp_gen_spvtools_generators_inc",
229 "deqp_gen_spvtools_build_version_inc",
230 "deqp_gen_spvtools_lang_headers",
231 ],
232 stl: "libc++_static",
233 cppflags: [
234 "-Wno-implicit-fallthrough"
235 ],
236}