xref: /aosp_15_r20/external/swiftshader/third_party/SPIRV-Tools/BUILD.bazel (revision 03ce13f70fcc45d86ee91b7ee4cab1936a95046e)
1*03ce13f7SAndroid Build Coastguard Workerload(
2*03ce13f7SAndroid Build Coastguard Worker    ":build_defs.bzl",
3*03ce13f7SAndroid Build Coastguard Worker    "CLDEBUGINFO100_GRAMMAR_JSON_FILE",
4*03ce13f7SAndroid Build Coastguard Worker    "COMMON_COPTS",
5*03ce13f7SAndroid Build Coastguard Worker    "DEBUGINFO_GRAMMAR_JSON_FILE",
6*03ce13f7SAndroid Build Coastguard Worker    "SHDEBUGINFO100_GRAMMAR_JSON_FILE",
7*03ce13f7SAndroid Build Coastguard Worker    "TEST_COPTS",
8*03ce13f7SAndroid Build Coastguard Worker    "generate_core_tables",
9*03ce13f7SAndroid Build Coastguard Worker    "generate_enum_string_mapping",
10*03ce13f7SAndroid Build Coastguard Worker    "generate_extinst_lang_headers",
11*03ce13f7SAndroid Build Coastguard Worker    "generate_glsl_tables",
12*03ce13f7SAndroid Build Coastguard Worker    "generate_opencl_tables",
13*03ce13f7SAndroid Build Coastguard Worker    "generate_vendor_tables",
14*03ce13f7SAndroid Build Coastguard Worker    "incompatible_with",
15*03ce13f7SAndroid Build Coastguard Worker)
16*03ce13f7SAndroid Build Coastguard Worker
17*03ce13f7SAndroid Build Coastguard Workerpackage(
18*03ce13f7SAndroid Build Coastguard Worker    default_visibility = ["//visibility:private"],
19*03ce13f7SAndroid Build Coastguard Worker    features = [
20*03ce13f7SAndroid Build Coastguard Worker        "layering_check",
21*03ce13f7SAndroid Build Coastguard Worker    ],
22*03ce13f7SAndroid Build Coastguard Worker)
23*03ce13f7SAndroid Build Coastguard Worker
24*03ce13f7SAndroid Build Coastguard Workerlicenses(["notice"])
25*03ce13f7SAndroid Build Coastguard Worker
26*03ce13f7SAndroid Build Coastguard Workerexports_files([
27*03ce13f7SAndroid Build Coastguard Worker    "CHANGES",
28*03ce13f7SAndroid Build Coastguard Worker    "LICENSE",
29*03ce13f7SAndroid Build Coastguard Worker])
30*03ce13f7SAndroid Build Coastguard Worker
31*03ce13f7SAndroid Build Coastguard Workerpy_binary(
32*03ce13f7SAndroid Build Coastguard Worker    name = "generate_grammar_tables",
33*03ce13f7SAndroid Build Coastguard Worker    srcs = ["utils/generate_grammar_tables.py"],
34*03ce13f7SAndroid Build Coastguard Worker)
35*03ce13f7SAndroid Build Coastguard Worker
36*03ce13f7SAndroid Build Coastguard Workerpy_binary(
37*03ce13f7SAndroid Build Coastguard Worker    name = "generate_language_headers",
38*03ce13f7SAndroid Build Coastguard Worker    srcs = ["utils/generate_language_headers.py"],
39*03ce13f7SAndroid Build Coastguard Worker)
40*03ce13f7SAndroid Build Coastguard Worker
41*03ce13f7SAndroid Build Coastguard Workergenerate_core_tables(version = "unified1")
42*03ce13f7SAndroid Build Coastguard Worker
43*03ce13f7SAndroid Build Coastguard Workergenerate_enum_string_mapping(version = "unified1")
44*03ce13f7SAndroid Build Coastguard Worker
45*03ce13f7SAndroid Build Coastguard Workergenerate_opencl_tables(version = "unified1")
46*03ce13f7SAndroid Build Coastguard Worker
47*03ce13f7SAndroid Build Coastguard Workergenerate_glsl_tables(version = "unified1")
48*03ce13f7SAndroid Build Coastguard Worker
49*03ce13f7SAndroid Build Coastguard Workergenerate_vendor_tables(extension = "spv-amd-shader-explicit-vertex-parameter")
50*03ce13f7SAndroid Build Coastguard Worker
51*03ce13f7SAndroid Build Coastguard Workergenerate_vendor_tables(extension = "spv-amd-shader-trinary-minmax")
52*03ce13f7SAndroid Build Coastguard Worker
53*03ce13f7SAndroid Build Coastguard Workergenerate_vendor_tables(extension = "spv-amd-gcn-shader")
54*03ce13f7SAndroid Build Coastguard Worker
55*03ce13f7SAndroid Build Coastguard Workergenerate_vendor_tables(extension = "spv-amd-shader-ballot")
56*03ce13f7SAndroid Build Coastguard Worker
57*03ce13f7SAndroid Build Coastguard Workergenerate_vendor_tables(extension = "debuginfo")
58*03ce13f7SAndroid Build Coastguard Worker
59*03ce13f7SAndroid Build Coastguard Workergenerate_vendor_tables(extension = "nonsemantic.clspvreflection")
60*03ce13f7SAndroid Build Coastguard Worker
61*03ce13f7SAndroid Build Coastguard Workergenerate_vendor_tables(extension = "nonsemantic.vkspreflection")
62*03ce13f7SAndroid Build Coastguard Worker
63*03ce13f7SAndroid Build Coastguard Workergenerate_vendor_tables(
64*03ce13f7SAndroid Build Coastguard Worker    extension = "opencl.debuginfo.100",
65*03ce13f7SAndroid Build Coastguard Worker    operand_kind_prefix = "CLDEBUG100_",
66*03ce13f7SAndroid Build Coastguard Worker)
67*03ce13f7SAndroid Build Coastguard Worker
68*03ce13f7SAndroid Build Coastguard Workergenerate_vendor_tables(
69*03ce13f7SAndroid Build Coastguard Worker    extension = "nonsemantic.shader.debuginfo.100",
70*03ce13f7SAndroid Build Coastguard Worker    operand_kind_prefix = "SHDEBUG100_",
71*03ce13f7SAndroid Build Coastguard Worker)
72*03ce13f7SAndroid Build Coastguard Worker
73*03ce13f7SAndroid Build Coastguard Workergenerate_extinst_lang_headers(
74*03ce13f7SAndroid Build Coastguard Worker    name = "DebugInfo",
75*03ce13f7SAndroid Build Coastguard Worker    grammar = DEBUGINFO_GRAMMAR_JSON_FILE,
76*03ce13f7SAndroid Build Coastguard Worker)
77*03ce13f7SAndroid Build Coastguard Worker
78*03ce13f7SAndroid Build Coastguard Workergenerate_extinst_lang_headers(
79*03ce13f7SAndroid Build Coastguard Worker    name = "OpenCLDebugInfo100",
80*03ce13f7SAndroid Build Coastguard Worker    grammar = CLDEBUGINFO100_GRAMMAR_JSON_FILE,
81*03ce13f7SAndroid Build Coastguard Worker)
82*03ce13f7SAndroid Build Coastguard Worker
83*03ce13f7SAndroid Build Coastguard Workergenerate_extinst_lang_headers(
84*03ce13f7SAndroid Build Coastguard Worker    name = "NonSemanticShaderDebugInfo100",
85*03ce13f7SAndroid Build Coastguard Worker    grammar = SHDEBUGINFO100_GRAMMAR_JSON_FILE,
86*03ce13f7SAndroid Build Coastguard Worker)
87*03ce13f7SAndroid Build Coastguard Worker
88*03ce13f7SAndroid Build Coastguard Workerpy_binary(
89*03ce13f7SAndroid Build Coastguard Worker    name = "generate_registry_tables",
90*03ce13f7SAndroid Build Coastguard Worker    srcs = ["utils/generate_registry_tables.py"],
91*03ce13f7SAndroid Build Coastguard Worker)
92*03ce13f7SAndroid Build Coastguard Worker
93*03ce13f7SAndroid Build Coastguard Workergenrule(
94*03ce13f7SAndroid Build Coastguard Worker    name = "generators_inc",
95*03ce13f7SAndroid Build Coastguard Worker    srcs = ["@spirv_headers//:spirv_xml_registry"],
96*03ce13f7SAndroid Build Coastguard Worker    outs = ["generators.inc"],
97*03ce13f7SAndroid Build Coastguard Worker    cmd = "$(location :generate_registry_tables) --xml=$(location @spirv_headers//:spirv_xml_registry) --generator-output=$(location generators.inc)",
98*03ce13f7SAndroid Build Coastguard Worker    cmd_bat = "$(location :generate_registry_tables) --xml=$(location @spirv_headers//:spirv_xml_registry) --generator-output=$(location generators.inc)",
99*03ce13f7SAndroid Build Coastguard Worker    tools = [":generate_registry_tables"],
100*03ce13f7SAndroid Build Coastguard Worker)
101*03ce13f7SAndroid Build Coastguard Worker
102*03ce13f7SAndroid Build Coastguard Workerpy_binary(
103*03ce13f7SAndroid Build Coastguard Worker    name = "update_build_version",
104*03ce13f7SAndroid Build Coastguard Worker    srcs = ["utils/update_build_version.py"],
105*03ce13f7SAndroid Build Coastguard Worker)
106*03ce13f7SAndroid Build Coastguard Worker
107*03ce13f7SAndroid Build Coastguard Workergenrule(
108*03ce13f7SAndroid Build Coastguard Worker    name = "build_version_inc",
109*03ce13f7SAndroid Build Coastguard Worker    srcs = ["CHANGES"],
110*03ce13f7SAndroid Build Coastguard Worker    outs = ["build-version.inc"],
111*03ce13f7SAndroid Build Coastguard Worker    cmd = "SOURCE_DATE_EPOCH=0 $(location :update_build_version) $(location CHANGES) $(location build-version.inc)",
112*03ce13f7SAndroid Build Coastguard Worker    cmd_bat = "set SOURCE_DATE_EPOCH=0  && $(location :update_build_version) $(location CHANGES) $(location build-version.inc)",
113*03ce13f7SAndroid Build Coastguard Worker    local = True,
114*03ce13f7SAndroid Build Coastguard Worker    tools = [":update_build_version"],
115*03ce13f7SAndroid Build Coastguard Worker)
116*03ce13f7SAndroid Build Coastguard Worker
117*03ce13f7SAndroid Build Coastguard Worker# Libraries
118*03ce13f7SAndroid Build Coastguard Worker
119*03ce13f7SAndroid Build Coastguard Workercc_library(
120*03ce13f7SAndroid Build Coastguard Worker    name = "spirv_tools",
121*03ce13f7SAndroid Build Coastguard Worker    hdrs = [
122*03ce13f7SAndroid Build Coastguard Worker        "include/spirv-tools/libspirv.h",
123*03ce13f7SAndroid Build Coastguard Worker        "include/spirv-tools/libspirv.hpp",
124*03ce13f7SAndroid Build Coastguard Worker    ],
125*03ce13f7SAndroid Build Coastguard Worker    copts = COMMON_COPTS,
126*03ce13f7SAndroid Build Coastguard Worker    includes = ["include"],
127*03ce13f7SAndroid Build Coastguard Worker    linkstatic = 1,
128*03ce13f7SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
129*03ce13f7SAndroid Build Coastguard Worker    deps = [
130*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_internal",
131*03ce13f7SAndroid Build Coastguard Worker    ],
132*03ce13f7SAndroid Build Coastguard Worker)
133*03ce13f7SAndroid Build Coastguard Worker
134*03ce13f7SAndroid Build Coastguard Workercc_library(
135*03ce13f7SAndroid Build Coastguard Worker    name = "spirv_tools_internal",
136*03ce13f7SAndroid Build Coastguard Worker    srcs = glob([
137*03ce13f7SAndroid Build Coastguard Worker        "source/*.cpp",
138*03ce13f7SAndroid Build Coastguard Worker        "source/util/*.cpp",
139*03ce13f7SAndroid Build Coastguard Worker        "source/val/*.cpp",
140*03ce13f7SAndroid Build Coastguard Worker    ]) + [
141*03ce13f7SAndroid Build Coastguard Worker        ":build_version_inc",
142*03ce13f7SAndroid Build Coastguard Worker        ":gen_core_tables_unified1",
143*03ce13f7SAndroid Build Coastguard Worker        ":gen_enum_string_mapping",
144*03ce13f7SAndroid Build Coastguard Worker        ":gen_extinst_lang_headers_DebugInfo",
145*03ce13f7SAndroid Build Coastguard Worker        ":gen_extinst_lang_headers_NonSemanticShaderDebugInfo100",
146*03ce13f7SAndroid Build Coastguard Worker        ":gen_extinst_lang_headers_OpenCLDebugInfo100",
147*03ce13f7SAndroid Build Coastguard Worker        ":gen_glsl_tables_unified1",
148*03ce13f7SAndroid Build Coastguard Worker        ":gen_opencl_tables_unified1",
149*03ce13f7SAndroid Build Coastguard Worker        ":gen_vendor_tables_debuginfo",
150*03ce13f7SAndroid Build Coastguard Worker        ":gen_vendor_tables_nonsemantic_clspvreflection",
151*03ce13f7SAndroid Build Coastguard Worker        ":gen_vendor_tables_nonsemantic_vkspreflection",
152*03ce13f7SAndroid Build Coastguard Worker        ":gen_vendor_tables_nonsemantic_shader_debuginfo_100",
153*03ce13f7SAndroid Build Coastguard Worker        ":gen_vendor_tables_opencl_debuginfo_100",
154*03ce13f7SAndroid Build Coastguard Worker        ":gen_vendor_tables_spv_amd_gcn_shader",
155*03ce13f7SAndroid Build Coastguard Worker        ":gen_vendor_tables_spv_amd_shader_ballot",
156*03ce13f7SAndroid Build Coastguard Worker        ":gen_vendor_tables_spv_amd_shader_explicit_vertex_parameter",
157*03ce13f7SAndroid Build Coastguard Worker        ":gen_vendor_tables_spv_amd_shader_trinary_minmax",
158*03ce13f7SAndroid Build Coastguard Worker        ":generators_inc",
159*03ce13f7SAndroid Build Coastguard Worker    ],
160*03ce13f7SAndroid Build Coastguard Worker    hdrs = [
161*03ce13f7SAndroid Build Coastguard Worker        "include/spirv-tools/libspirv.h",
162*03ce13f7SAndroid Build Coastguard Worker        "include/spirv-tools/libspirv.hpp",
163*03ce13f7SAndroid Build Coastguard Worker        ":gen_extinst_lang_headers_DebugInfo",
164*03ce13f7SAndroid Build Coastguard Worker        ":gen_extinst_lang_headers_NonSemanticShaderDebugInfo100",
165*03ce13f7SAndroid Build Coastguard Worker        ":gen_extinst_lang_headers_OpenCLDebugInfo100",
166*03ce13f7SAndroid Build Coastguard Worker    ] + glob([
167*03ce13f7SAndroid Build Coastguard Worker        "source/*.h",
168*03ce13f7SAndroid Build Coastguard Worker        "source/util/*.h",
169*03ce13f7SAndroid Build Coastguard Worker        "source/val/*.h",
170*03ce13f7SAndroid Build Coastguard Worker    ]),
171*03ce13f7SAndroid Build Coastguard Worker    copts = COMMON_COPTS,
172*03ce13f7SAndroid Build Coastguard Worker    includes = ["include"],
173*03ce13f7SAndroid Build Coastguard Worker    deps = [
174*03ce13f7SAndroid Build Coastguard Worker        "@spirv_headers//:spirv_common_headers",
175*03ce13f7SAndroid Build Coastguard Worker        "@spirv_headers//:spirv_cpp11_headers",
176*03ce13f7SAndroid Build Coastguard Worker    ],
177*03ce13f7SAndroid Build Coastguard Worker)
178*03ce13f7SAndroid Build Coastguard Worker
179*03ce13f7SAndroid Build Coastguard Workercc_library(
180*03ce13f7SAndroid Build Coastguard Worker    name = "spirv_tools_opt",
181*03ce13f7SAndroid Build Coastguard Worker    hdrs = [
182*03ce13f7SAndroid Build Coastguard Worker        "include/spirv-tools/instrument.hpp",
183*03ce13f7SAndroid Build Coastguard Worker        "include/spirv-tools/optimizer.hpp",
184*03ce13f7SAndroid Build Coastguard Worker    ],
185*03ce13f7SAndroid Build Coastguard Worker    copts = COMMON_COPTS,
186*03ce13f7SAndroid Build Coastguard Worker    linkstatic = 1,
187*03ce13f7SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
188*03ce13f7SAndroid Build Coastguard Worker    deps = [
189*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools",
190*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_opt_internal",
191*03ce13f7SAndroid Build Coastguard Worker    ],
192*03ce13f7SAndroid Build Coastguard Worker)
193*03ce13f7SAndroid Build Coastguard Worker
194*03ce13f7SAndroid Build Coastguard Workercc_library(
195*03ce13f7SAndroid Build Coastguard Worker    name = "spirv_tools_opt_internal",
196*03ce13f7SAndroid Build Coastguard Worker    srcs = glob(["source/opt/*.cpp"]) + [
197*03ce13f7SAndroid Build Coastguard Worker        ":gen_vendor_tables_spv_amd_shader_ballot",
198*03ce13f7SAndroid Build Coastguard Worker    ],
199*03ce13f7SAndroid Build Coastguard Worker    hdrs = glob(["source/opt/*.h"]) + [
200*03ce13f7SAndroid Build Coastguard Worker        "include/spirv-tools/instrument.hpp",
201*03ce13f7SAndroid Build Coastguard Worker        "include/spirv-tools/optimizer.hpp",
202*03ce13f7SAndroid Build Coastguard Worker    ],
203*03ce13f7SAndroid Build Coastguard Worker    copts = COMMON_COPTS,
204*03ce13f7SAndroid Build Coastguard Worker    deps = [
205*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_internal",
206*03ce13f7SAndroid Build Coastguard Worker        "@spirv_headers//:spirv_common_headers",
207*03ce13f7SAndroid Build Coastguard Worker    ],
208*03ce13f7SAndroid Build Coastguard Worker)
209*03ce13f7SAndroid Build Coastguard Worker
210*03ce13f7SAndroid Build Coastguard Workercc_library(
211*03ce13f7SAndroid Build Coastguard Worker    name = "spirv_tools_reduce",
212*03ce13f7SAndroid Build Coastguard Worker    srcs = glob(["source/reduce/*.cpp"]),
213*03ce13f7SAndroid Build Coastguard Worker    hdrs = glob(["source/reduce/*.h"]),
214*03ce13f7SAndroid Build Coastguard Worker    copts = COMMON_COPTS,
215*03ce13f7SAndroid Build Coastguard Worker    deps = [
216*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_internal",
217*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_opt_internal",
218*03ce13f7SAndroid Build Coastguard Worker    ],
219*03ce13f7SAndroid Build Coastguard Worker)
220*03ce13f7SAndroid Build Coastguard Worker
221*03ce13f7SAndroid Build Coastguard Workercc_library(
222*03ce13f7SAndroid Build Coastguard Worker    name = "spirv_tools_link",
223*03ce13f7SAndroid Build Coastguard Worker    srcs = glob(["source/link/*.cpp"]),
224*03ce13f7SAndroid Build Coastguard Worker    hdrs = ["include/spirv-tools/linker.hpp"],
225*03ce13f7SAndroid Build Coastguard Worker    copts = COMMON_COPTS,
226*03ce13f7SAndroid Build Coastguard Worker    linkstatic = 1,
227*03ce13f7SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
228*03ce13f7SAndroid Build Coastguard Worker    deps = [
229*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_internal",
230*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_opt_internal",
231*03ce13f7SAndroid Build Coastguard Worker    ],
232*03ce13f7SAndroid Build Coastguard Worker)
233*03ce13f7SAndroid Build Coastguard Worker
234*03ce13f7SAndroid Build Coastguard Workercc_library(
235*03ce13f7SAndroid Build Coastguard Worker    name = "spirv_tools_lint_internal",
236*03ce13f7SAndroid Build Coastguard Worker    srcs = glob([
237*03ce13f7SAndroid Build Coastguard Worker        "source/lint/*.cpp",
238*03ce13f7SAndroid Build Coastguard Worker        "source/lint/*.h",
239*03ce13f7SAndroid Build Coastguard Worker    ]),
240*03ce13f7SAndroid Build Coastguard Worker    hdrs = ["include/spirv-tools/linter.hpp"] + glob([
241*03ce13f7SAndroid Build Coastguard Worker        "source/lint/*.h",
242*03ce13f7SAndroid Build Coastguard Worker    ]),
243*03ce13f7SAndroid Build Coastguard Worker    copts = COMMON_COPTS,
244*03ce13f7SAndroid Build Coastguard Worker    includes = ["include"],
245*03ce13f7SAndroid Build Coastguard Worker    deps = [
246*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_internal",
247*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_opt_internal",
248*03ce13f7SAndroid Build Coastguard Worker    ],
249*03ce13f7SAndroid Build Coastguard Worker)
250*03ce13f7SAndroid Build Coastguard Worker
251*03ce13f7SAndroid Build Coastguard Workercc_library(
252*03ce13f7SAndroid Build Coastguard Worker    name = "spirv_tools_lint",
253*03ce13f7SAndroid Build Coastguard Worker    hdrs = ["include/spirv-tools/linter.hpp"],
254*03ce13f7SAndroid Build Coastguard Worker    copts = COMMON_COPTS,
255*03ce13f7SAndroid Build Coastguard Worker    includes = ["include"],
256*03ce13f7SAndroid Build Coastguard Worker    linkstatic = 1,
257*03ce13f7SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
258*03ce13f7SAndroid Build Coastguard Worker    deps = [
259*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools",
260*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_lint_internal",
261*03ce13f7SAndroid Build Coastguard Worker    ],
262*03ce13f7SAndroid Build Coastguard Worker)
263*03ce13f7SAndroid Build Coastguard Worker
264*03ce13f7SAndroid Build Coastguard Workercc_library(
265*03ce13f7SAndroid Build Coastguard Worker    name = "tools_util",
266*03ce13f7SAndroid Build Coastguard Worker    srcs = glob(["tools/util/*.cpp"]),
267*03ce13f7SAndroid Build Coastguard Worker    hdrs = glob(["tools/util/*.h"]),
268*03ce13f7SAndroid Build Coastguard Worker    copts = COMMON_COPTS,
269*03ce13f7SAndroid Build Coastguard Worker    deps = [":spirv_tools"],
270*03ce13f7SAndroid Build Coastguard Worker)
271*03ce13f7SAndroid Build Coastguard Worker
272*03ce13f7SAndroid Build Coastguard Workercc_library(
273*03ce13f7SAndroid Build Coastguard Worker    name = "tools_io",
274*03ce13f7SAndroid Build Coastguard Worker    hdrs = ["tools/io.h"],
275*03ce13f7SAndroid Build Coastguard Worker    copts = COMMON_COPTS,
276*03ce13f7SAndroid Build Coastguard Worker)
277*03ce13f7SAndroid Build Coastguard Worker
278*03ce13f7SAndroid Build Coastguard Worker# Tools
279*03ce13f7SAndroid Build Coastguard Worker
280*03ce13f7SAndroid Build Coastguard Workercc_binary(
281*03ce13f7SAndroid Build Coastguard Worker    name = "spirv-as",
282*03ce13f7SAndroid Build Coastguard Worker    srcs = [
283*03ce13f7SAndroid Build Coastguard Worker        "tools/as/as.cpp",
284*03ce13f7SAndroid Build Coastguard Worker    ],
285*03ce13f7SAndroid Build Coastguard Worker    copts = COMMON_COPTS,
286*03ce13f7SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
287*03ce13f7SAndroid Build Coastguard Worker    deps = [
288*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_internal",
289*03ce13f7SAndroid Build Coastguard Worker        ":tools_io",
290*03ce13f7SAndroid Build Coastguard Worker        ":tools_util",
291*03ce13f7SAndroid Build Coastguard Worker    ],
292*03ce13f7SAndroid Build Coastguard Worker)
293*03ce13f7SAndroid Build Coastguard Worker
294*03ce13f7SAndroid Build Coastguard Workercc_binary(
295*03ce13f7SAndroid Build Coastguard Worker    name = "spirv-dis",
296*03ce13f7SAndroid Build Coastguard Worker    srcs = [
297*03ce13f7SAndroid Build Coastguard Worker        "tools/dis/dis.cpp",
298*03ce13f7SAndroid Build Coastguard Worker    ],
299*03ce13f7SAndroid Build Coastguard Worker    copts = COMMON_COPTS,
300*03ce13f7SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
301*03ce13f7SAndroid Build Coastguard Worker    deps = [
302*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools",
303*03ce13f7SAndroid Build Coastguard Worker        ":tools_io",
304*03ce13f7SAndroid Build Coastguard Worker        ":tools_util",
305*03ce13f7SAndroid Build Coastguard Worker    ],
306*03ce13f7SAndroid Build Coastguard Worker)
307*03ce13f7SAndroid Build Coastguard Worker
308*03ce13f7SAndroid Build Coastguard Workercc_binary(
309*03ce13f7SAndroid Build Coastguard Worker    name = "spirv-objdump",
310*03ce13f7SAndroid Build Coastguard Worker    srcs = [
311*03ce13f7SAndroid Build Coastguard Worker        "tools/objdump/extract_source.cpp",
312*03ce13f7SAndroid Build Coastguard Worker        "tools/objdump/extract_source.h",
313*03ce13f7SAndroid Build Coastguard Worker        "tools/objdump/objdump.cpp",
314*03ce13f7SAndroid Build Coastguard Worker    ],
315*03ce13f7SAndroid Build Coastguard Worker    copts = COMMON_COPTS,
316*03ce13f7SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
317*03ce13f7SAndroid Build Coastguard Worker    deps = [
318*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_internal",
319*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_opt_internal",
320*03ce13f7SAndroid Build Coastguard Worker        ":tools_io",
321*03ce13f7SAndroid Build Coastguard Worker        ":tools_util",
322*03ce13f7SAndroid Build Coastguard Worker        "@spirv_headers//:spirv_cpp_headers",
323*03ce13f7SAndroid Build Coastguard Worker    ],
324*03ce13f7SAndroid Build Coastguard Worker)
325*03ce13f7SAndroid Build Coastguard Worker
326*03ce13f7SAndroid Build Coastguard Workercc_binary(
327*03ce13f7SAndroid Build Coastguard Worker    name = "spirv-val",
328*03ce13f7SAndroid Build Coastguard Worker    srcs = [
329*03ce13f7SAndroid Build Coastguard Worker        "tools/val/val.cpp",
330*03ce13f7SAndroid Build Coastguard Worker    ],
331*03ce13f7SAndroid Build Coastguard Worker    copts = COMMON_COPTS,
332*03ce13f7SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
333*03ce13f7SAndroid Build Coastguard Worker    deps = [
334*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_internal",
335*03ce13f7SAndroid Build Coastguard Worker        ":tools_io",
336*03ce13f7SAndroid Build Coastguard Worker        ":tools_util",
337*03ce13f7SAndroid Build Coastguard Worker    ],
338*03ce13f7SAndroid Build Coastguard Worker)
339*03ce13f7SAndroid Build Coastguard Worker
340*03ce13f7SAndroid Build Coastguard Workercc_binary(
341*03ce13f7SAndroid Build Coastguard Worker    name = "spirv-opt",
342*03ce13f7SAndroid Build Coastguard Worker    srcs = [
343*03ce13f7SAndroid Build Coastguard Worker        "tools/opt/opt.cpp",
344*03ce13f7SAndroid Build Coastguard Worker    ],
345*03ce13f7SAndroid Build Coastguard Worker    copts = COMMON_COPTS,
346*03ce13f7SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
347*03ce13f7SAndroid Build Coastguard Worker    deps = [
348*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_internal",
349*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_opt_internal",
350*03ce13f7SAndroid Build Coastguard Worker        ":tools_io",
351*03ce13f7SAndroid Build Coastguard Worker        ":tools_util",
352*03ce13f7SAndroid Build Coastguard Worker    ],
353*03ce13f7SAndroid Build Coastguard Worker)
354*03ce13f7SAndroid Build Coastguard Worker
355*03ce13f7SAndroid Build Coastguard Workercc_binary(
356*03ce13f7SAndroid Build Coastguard Worker    name = "spirv-reduce",
357*03ce13f7SAndroid Build Coastguard Worker    srcs = [
358*03ce13f7SAndroid Build Coastguard Worker        "tools/reduce/reduce.cpp",
359*03ce13f7SAndroid Build Coastguard Worker    ],
360*03ce13f7SAndroid Build Coastguard Worker    copts = COMMON_COPTS,
361*03ce13f7SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
362*03ce13f7SAndroid Build Coastguard Worker    deps = [
363*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_internal",
364*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_opt_internal",
365*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_reduce",
366*03ce13f7SAndroid Build Coastguard Worker        ":tools_io",
367*03ce13f7SAndroid Build Coastguard Worker        ":tools_util",
368*03ce13f7SAndroid Build Coastguard Worker    ],
369*03ce13f7SAndroid Build Coastguard Worker)
370*03ce13f7SAndroid Build Coastguard Worker
371*03ce13f7SAndroid Build Coastguard Workercc_binary(
372*03ce13f7SAndroid Build Coastguard Worker    name = "spirv-link",
373*03ce13f7SAndroid Build Coastguard Worker    srcs = [
374*03ce13f7SAndroid Build Coastguard Worker        "tools/link/linker.cpp",
375*03ce13f7SAndroid Build Coastguard Worker    ],
376*03ce13f7SAndroid Build Coastguard Worker    copts = COMMON_COPTS,
377*03ce13f7SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
378*03ce13f7SAndroid Build Coastguard Worker    deps = [
379*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_internal",
380*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_link",
381*03ce13f7SAndroid Build Coastguard Worker        ":tools_io",
382*03ce13f7SAndroid Build Coastguard Worker        ":tools_util",
383*03ce13f7SAndroid Build Coastguard Worker    ],
384*03ce13f7SAndroid Build Coastguard Worker)
385*03ce13f7SAndroid Build Coastguard Worker
386*03ce13f7SAndroid Build Coastguard Workercc_binary(
387*03ce13f7SAndroid Build Coastguard Worker    name = "spirv-lint",
388*03ce13f7SAndroid Build Coastguard Worker    srcs = [
389*03ce13f7SAndroid Build Coastguard Worker        "tools/lint/lint.cpp",
390*03ce13f7SAndroid Build Coastguard Worker    ],
391*03ce13f7SAndroid Build Coastguard Worker    copts = COMMON_COPTS,
392*03ce13f7SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
393*03ce13f7SAndroid Build Coastguard Worker    deps = [
394*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_lint",
395*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_opt_internal",
396*03ce13f7SAndroid Build Coastguard Worker        ":tools_io",
397*03ce13f7SAndroid Build Coastguard Worker        ":tools_util",
398*03ce13f7SAndroid Build Coastguard Worker    ],
399*03ce13f7SAndroid Build Coastguard Worker)
400*03ce13f7SAndroid Build Coastguard Worker
401*03ce13f7SAndroid Build Coastguard Workercc_binary(
402*03ce13f7SAndroid Build Coastguard Worker    name = "spirv-cfg",
403*03ce13f7SAndroid Build Coastguard Worker    srcs = [
404*03ce13f7SAndroid Build Coastguard Worker        "tools/cfg/bin_to_dot.cpp",
405*03ce13f7SAndroid Build Coastguard Worker        "tools/cfg/bin_to_dot.h",
406*03ce13f7SAndroid Build Coastguard Worker        "tools/cfg/cfg.cpp",
407*03ce13f7SAndroid Build Coastguard Worker    ],
408*03ce13f7SAndroid Build Coastguard Worker    copts = COMMON_COPTS,
409*03ce13f7SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
410*03ce13f7SAndroid Build Coastguard Worker    deps = [
411*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_internal",
412*03ce13f7SAndroid Build Coastguard Worker        ":tools_io",
413*03ce13f7SAndroid Build Coastguard Worker        ":tools_util",
414*03ce13f7SAndroid Build Coastguard Worker    ],
415*03ce13f7SAndroid Build Coastguard Worker)
416*03ce13f7SAndroid Build Coastguard Worker
417*03ce13f7SAndroid Build Coastguard Worker# Unit tests
418*03ce13f7SAndroid Build Coastguard Worker
419*03ce13f7SAndroid Build Coastguard Workercc_library(
420*03ce13f7SAndroid Build Coastguard Worker    name = "test_lib",
421*03ce13f7SAndroid Build Coastguard Worker    testonly = 1,
422*03ce13f7SAndroid Build Coastguard Worker    srcs = [
423*03ce13f7SAndroid Build Coastguard Worker        "test/unit_spirv.cpp",
424*03ce13f7SAndroid Build Coastguard Worker    ],
425*03ce13f7SAndroid Build Coastguard Worker    hdrs = [
426*03ce13f7SAndroid Build Coastguard Worker        "test/test_fixture.h",
427*03ce13f7SAndroid Build Coastguard Worker        "test/unit_spirv.h",
428*03ce13f7SAndroid Build Coastguard Worker    ],
429*03ce13f7SAndroid Build Coastguard Worker    copts = TEST_COPTS,
430*03ce13f7SAndroid Build Coastguard Worker    deps = [
431*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_internal",
432*03ce13f7SAndroid Build Coastguard Worker        "@googletest//:gtest",
433*03ce13f7SAndroid Build Coastguard Worker    ],
434*03ce13f7SAndroid Build Coastguard Worker)
435*03ce13f7SAndroid Build Coastguard Worker
436*03ce13f7SAndroid Build Coastguard Worker# PCH (precompiled header) tests only work when using CMake and MSVC on Windows,
437*03ce13f7SAndroid Build Coastguard Worker# so they will be skipped in the Bazel builds.
438*03ce13f7SAndroid Build Coastguard Worker
439*03ce13f7SAndroid Build Coastguard Worker[cc_test(
440*03ce13f7SAndroid Build Coastguard Worker    name = "base_{testcase}_test".format(testcase = f[len("test/"):-len("_test.cpp")]),
441*03ce13f7SAndroid Build Coastguard Worker    size = "small",
442*03ce13f7SAndroid Build Coastguard Worker    srcs = [f],
443*03ce13f7SAndroid Build Coastguard Worker    copts = TEST_COPTS + ["-DTESTING"],
444*03ce13f7SAndroid Build Coastguard Worker    linkstatic = 1,
445*03ce13f7SAndroid Build Coastguard Worker    target_compatible_with = {
446*03ce13f7SAndroid Build Coastguard Worker        "test/timer_test.cpp": incompatible_with(["@bazel_tools//src/conditions:windows"]),
447*03ce13f7SAndroid Build Coastguard Worker    }.get(f, []),
448*03ce13f7SAndroid Build Coastguard Worker    deps = [
449*03ce13f7SAndroid Build Coastguard Worker        "tools_util",
450*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_internal",
451*03ce13f7SAndroid Build Coastguard Worker        ":test_lib",
452*03ce13f7SAndroid Build Coastguard Worker        "@googletest//:gtest",
453*03ce13f7SAndroid Build Coastguard Worker        "@googletest//:gtest_main",
454*03ce13f7SAndroid Build Coastguard Worker    ],
455*03ce13f7SAndroid Build Coastguard Worker) for f in glob(
456*03ce13f7SAndroid Build Coastguard Worker    [
457*03ce13f7SAndroid Build Coastguard Worker        "test/*_test.cpp",
458*03ce13f7SAndroid Build Coastguard Worker        "test/tools/*_test.cpp",
459*03ce13f7SAndroid Build Coastguard Worker    ],
460*03ce13f7SAndroid Build Coastguard Worker    exclude = [
461*03ce13f7SAndroid Build Coastguard Worker        "test/cpp_interface_test.cpp",
462*03ce13f7SAndroid Build Coastguard Worker        "test/pch_test.cpp",
463*03ce13f7SAndroid Build Coastguard Worker    ],
464*03ce13f7SAndroid Build Coastguard Worker)]
465*03ce13f7SAndroid Build Coastguard Worker
466*03ce13f7SAndroid Build Coastguard Workercc_test(
467*03ce13f7SAndroid Build Coastguard Worker    name = "base_cpp_interface_test",
468*03ce13f7SAndroid Build Coastguard Worker    size = "small",
469*03ce13f7SAndroid Build Coastguard Worker    srcs = ["test/cpp_interface_test.cpp"],
470*03ce13f7SAndroid Build Coastguard Worker    linkstatic = 1,
471*03ce13f7SAndroid Build Coastguard Worker    deps = [
472*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_opt_internal",
473*03ce13f7SAndroid Build Coastguard Worker        "@googletest//:gtest",
474*03ce13f7SAndroid Build Coastguard Worker        "@googletest//:gtest_main",
475*03ce13f7SAndroid Build Coastguard Worker        "@spirv_headers//:spirv_cpp11_headers",
476*03ce13f7SAndroid Build Coastguard Worker    ],
477*03ce13f7SAndroid Build Coastguard Worker)
478*03ce13f7SAndroid Build Coastguard Worker
479*03ce13f7SAndroid Build Coastguard Workercc_test(
480*03ce13f7SAndroid Build Coastguard Worker    name = "base_ilist_test",
481*03ce13f7SAndroid Build Coastguard Worker    size = "small",
482*03ce13f7SAndroid Build Coastguard Worker    srcs = ["test/util/ilist_test.cpp"],
483*03ce13f7SAndroid Build Coastguard Worker    copts = TEST_COPTS,
484*03ce13f7SAndroid Build Coastguard Worker    linkstatic = 1,
485*03ce13f7SAndroid Build Coastguard Worker    deps = [
486*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_internal",
487*03ce13f7SAndroid Build Coastguard Worker        "@googletest//:gtest",
488*03ce13f7SAndroid Build Coastguard Worker        "@googletest//:gtest_main",
489*03ce13f7SAndroid Build Coastguard Worker    ],
490*03ce13f7SAndroid Build Coastguard Worker)
491*03ce13f7SAndroid Build Coastguard Worker
492*03ce13f7SAndroid Build Coastguard Workercc_library(
493*03ce13f7SAndroid Build Coastguard Worker    name = "link_test_lib",
494*03ce13f7SAndroid Build Coastguard Worker    testonly = 1,
495*03ce13f7SAndroid Build Coastguard Worker    hdrs = ["test/link/linker_fixture.h"],
496*03ce13f7SAndroid Build Coastguard Worker    copts = TEST_COPTS,
497*03ce13f7SAndroid Build Coastguard Worker    deps = [
498*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_internal",
499*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_link",
500*03ce13f7SAndroid Build Coastguard Worker        ":test_lib",
501*03ce13f7SAndroid Build Coastguard Worker        "@com_google_effcee//:effcee",
502*03ce13f7SAndroid Build Coastguard Worker        "@com_googlesource_code_re2//:re2",
503*03ce13f7SAndroid Build Coastguard Worker    ],
504*03ce13f7SAndroid Build Coastguard Worker)
505*03ce13f7SAndroid Build Coastguard Worker
506*03ce13f7SAndroid Build Coastguard Worker[cc_test(
507*03ce13f7SAndroid Build Coastguard Worker    name = "link_{testcase}_test".format(testcase = f[len("test/link/"):-len("_test.cpp")]),
508*03ce13f7SAndroid Build Coastguard Worker    size = "small",
509*03ce13f7SAndroid Build Coastguard Worker    srcs = [f],
510*03ce13f7SAndroid Build Coastguard Worker    copts = TEST_COPTS,
511*03ce13f7SAndroid Build Coastguard Worker    linkstatic = 1,
512*03ce13f7SAndroid Build Coastguard Worker    deps = [
513*03ce13f7SAndroid Build Coastguard Worker        ":link_test_lib",
514*03ce13f7SAndroid Build Coastguard Worker        "@googletest//:gtest",
515*03ce13f7SAndroid Build Coastguard Worker        "@googletest//:gtest_main",
516*03ce13f7SAndroid Build Coastguard Worker    ],
517*03ce13f7SAndroid Build Coastguard Worker) for f in glob(
518*03ce13f7SAndroid Build Coastguard Worker    ["test/link/*_test.cpp"],
519*03ce13f7SAndroid Build Coastguard Worker)]
520*03ce13f7SAndroid Build Coastguard Worker
521*03ce13f7SAndroid Build Coastguard Worker[cc_test(
522*03ce13f7SAndroid Build Coastguard Worker    name = "lint_{testcase}_test".format(testcase = f[len("test/lint/"):-len("_test.cpp")]),
523*03ce13f7SAndroid Build Coastguard Worker    size = "small",
524*03ce13f7SAndroid Build Coastguard Worker    srcs = [f],
525*03ce13f7SAndroid Build Coastguard Worker    copts = TEST_COPTS,
526*03ce13f7SAndroid Build Coastguard Worker    linkstatic = 1,
527*03ce13f7SAndroid Build Coastguard Worker    deps = [
528*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools",
529*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_lint_internal",
530*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_opt_internal",
531*03ce13f7SAndroid Build Coastguard Worker        "@googletest//:gtest",
532*03ce13f7SAndroid Build Coastguard Worker        "@googletest//:gtest_main",
533*03ce13f7SAndroid Build Coastguard Worker    ],
534*03ce13f7SAndroid Build Coastguard Worker) for f in glob(
535*03ce13f7SAndroid Build Coastguard Worker    ["test/lint/*_test.cpp"],
536*03ce13f7SAndroid Build Coastguard Worker)]
537*03ce13f7SAndroid Build Coastguard Worker
538*03ce13f7SAndroid Build Coastguard Workercc_library(
539*03ce13f7SAndroid Build Coastguard Worker    name = "opt_test_lib",
540*03ce13f7SAndroid Build Coastguard Worker    testonly = 1,
541*03ce13f7SAndroid Build Coastguard Worker    srcs = [
542*03ce13f7SAndroid Build Coastguard Worker        "test/opt/pass_utils.cpp",
543*03ce13f7SAndroid Build Coastguard Worker    ],
544*03ce13f7SAndroid Build Coastguard Worker    hdrs = [
545*03ce13f7SAndroid Build Coastguard Worker        "test/opt/assembly_builder.h",
546*03ce13f7SAndroid Build Coastguard Worker        "test/opt/function_utils.h",
547*03ce13f7SAndroid Build Coastguard Worker        "test/opt/module_utils.h",
548*03ce13f7SAndroid Build Coastguard Worker        "test/opt/pass_fixture.h",
549*03ce13f7SAndroid Build Coastguard Worker        "test/opt/pass_utils.h",
550*03ce13f7SAndroid Build Coastguard Worker    ],
551*03ce13f7SAndroid Build Coastguard Worker    copts = TEST_COPTS,
552*03ce13f7SAndroid Build Coastguard Worker    deps = [
553*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_internal",
554*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_opt_internal",
555*03ce13f7SAndroid Build Coastguard Worker        "@com_google_effcee//:effcee",
556*03ce13f7SAndroid Build Coastguard Worker        "@googletest//:gtest",
557*03ce13f7SAndroid Build Coastguard Worker    ],
558*03ce13f7SAndroid Build Coastguard Worker)
559*03ce13f7SAndroid Build Coastguard Worker
560*03ce13f7SAndroid Build Coastguard Worker[cc_test(
561*03ce13f7SAndroid Build Coastguard Worker    name = "opt_{testcase}_test".format(testcase = f[len("test/opt/"):-len("_test.cpp")]),
562*03ce13f7SAndroid Build Coastguard Worker    size = "small",
563*03ce13f7SAndroid Build Coastguard Worker    srcs = [f],
564*03ce13f7SAndroid Build Coastguard Worker    copts = TEST_COPTS,
565*03ce13f7SAndroid Build Coastguard Worker    linkstatic = 1,
566*03ce13f7SAndroid Build Coastguard Worker    deps = [
567*03ce13f7SAndroid Build Coastguard Worker        ":opt_test_lib",
568*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_internal",
569*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_opt_internal",
570*03ce13f7SAndroid Build Coastguard Worker        ":test_lib",
571*03ce13f7SAndroid Build Coastguard Worker        "@com_google_effcee//:effcee",
572*03ce13f7SAndroid Build Coastguard Worker        "@googletest//:gtest",
573*03ce13f7SAndroid Build Coastguard Worker        "@googletest//:gtest_main",
574*03ce13f7SAndroid Build Coastguard Worker    ],
575*03ce13f7SAndroid Build Coastguard Worker) for f in glob(["test/opt/*_test.cpp"])]
576*03ce13f7SAndroid Build Coastguard Worker
577*03ce13f7SAndroid Build Coastguard Worker[cc_test(
578*03ce13f7SAndroid Build Coastguard Worker    name = "opt_dom_tree_{testcase}_test".format(testcase = f[len("test/opt/dominator_tree/"):-len(".cpp")]),
579*03ce13f7SAndroid Build Coastguard Worker    size = "small",
580*03ce13f7SAndroid Build Coastguard Worker    srcs = [f],
581*03ce13f7SAndroid Build Coastguard Worker    copts = TEST_COPTS,
582*03ce13f7SAndroid Build Coastguard Worker    linkstatic = 1,
583*03ce13f7SAndroid Build Coastguard Worker    deps = [
584*03ce13f7SAndroid Build Coastguard Worker        ":opt_test_lib",
585*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_opt_internal",
586*03ce13f7SAndroid Build Coastguard Worker        "@googletest//:gtest",
587*03ce13f7SAndroid Build Coastguard Worker        "@googletest//:gtest_main",
588*03ce13f7SAndroid Build Coastguard Worker    ],
589*03ce13f7SAndroid Build Coastguard Worker) for f in glob(
590*03ce13f7SAndroid Build Coastguard Worker    ["test/opt/dominator_tree/*.cpp"],
591*03ce13f7SAndroid Build Coastguard Worker    exclude = ["test/opt/dominator_tree/pch_test_opt_dom.cpp"],
592*03ce13f7SAndroid Build Coastguard Worker)]
593*03ce13f7SAndroid Build Coastguard Worker
594*03ce13f7SAndroid Build Coastguard Worker[cc_test(
595*03ce13f7SAndroid Build Coastguard Worker    name = "opt_loop_{testcase}_test".format(testcase = f[len("test/opt/loop_optimizations/"):-len(".cpp")]),
596*03ce13f7SAndroid Build Coastguard Worker    size = "small",
597*03ce13f7SAndroid Build Coastguard Worker    srcs = [f],
598*03ce13f7SAndroid Build Coastguard Worker    copts = TEST_COPTS,
599*03ce13f7SAndroid Build Coastguard Worker    linkstatic = 1,
600*03ce13f7SAndroid Build Coastguard Worker    deps = [
601*03ce13f7SAndroid Build Coastguard Worker        ":opt_test_lib",
602*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools",
603*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_opt_internal",
604*03ce13f7SAndroid Build Coastguard Worker        "@com_google_effcee//:effcee",
605*03ce13f7SAndroid Build Coastguard Worker        "@googletest//:gtest",
606*03ce13f7SAndroid Build Coastguard Worker        "@googletest//:gtest_main",
607*03ce13f7SAndroid Build Coastguard Worker    ],
608*03ce13f7SAndroid Build Coastguard Worker) for f in glob(
609*03ce13f7SAndroid Build Coastguard Worker    ["test/opt/loop_optimizations/*.cpp"],
610*03ce13f7SAndroid Build Coastguard Worker    exclude = ["test/opt/loop_optimizations/pch_test_opt_loop.cpp"],
611*03ce13f7SAndroid Build Coastguard Worker)]
612*03ce13f7SAndroid Build Coastguard Worker
613*03ce13f7SAndroid Build Coastguard Workercc_library(
614*03ce13f7SAndroid Build Coastguard Worker    name = "reduce_test_lib",
615*03ce13f7SAndroid Build Coastguard Worker    testonly = 1,
616*03ce13f7SAndroid Build Coastguard Worker    srcs = [
617*03ce13f7SAndroid Build Coastguard Worker        "test/reduce/reduce_test_util.cpp",
618*03ce13f7SAndroid Build Coastguard Worker    ],
619*03ce13f7SAndroid Build Coastguard Worker    hdrs = ["test/reduce/reduce_test_util.h"],
620*03ce13f7SAndroid Build Coastguard Worker    copts = TEST_COPTS,
621*03ce13f7SAndroid Build Coastguard Worker    deps = [
622*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools",
623*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_opt_internal",
624*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_reduce",
625*03ce13f7SAndroid Build Coastguard Worker        ":test_lib",
626*03ce13f7SAndroid Build Coastguard Worker        ":tools_io",
627*03ce13f7SAndroid Build Coastguard Worker        "@googletest//:gtest",
628*03ce13f7SAndroid Build Coastguard Worker    ],
629*03ce13f7SAndroid Build Coastguard Worker)
630*03ce13f7SAndroid Build Coastguard Worker
631*03ce13f7SAndroid Build Coastguard Worker[cc_test(
632*03ce13f7SAndroid Build Coastguard Worker    name = "reduce_{testcase}_test".format(testcase = f[len("test/reduce/"):-len("_test.cpp")]),
633*03ce13f7SAndroid Build Coastguard Worker    size = "small",
634*03ce13f7SAndroid Build Coastguard Worker    srcs = [f],
635*03ce13f7SAndroid Build Coastguard Worker    copts = TEST_COPTS,
636*03ce13f7SAndroid Build Coastguard Worker    linkstatic = 1,
637*03ce13f7SAndroid Build Coastguard Worker    deps = [
638*03ce13f7SAndroid Build Coastguard Worker        ":reduce_test_lib",
639*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_internal",
640*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_opt_internal",
641*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_reduce",
642*03ce13f7SAndroid Build Coastguard Worker        "@googletest//:gtest_main",
643*03ce13f7SAndroid Build Coastguard Worker    ],
644*03ce13f7SAndroid Build Coastguard Worker) for f in glob(["test/reduce/*_test.cpp"])]
645*03ce13f7SAndroid Build Coastguard Worker
646*03ce13f7SAndroid Build Coastguard Worker[cc_test(
647*03ce13f7SAndroid Build Coastguard Worker    name = "util_{testcase}_test".format(testcase = f[len("test/util/"):-len("_test.cpp")]),
648*03ce13f7SAndroid Build Coastguard Worker    size = "small",
649*03ce13f7SAndroid Build Coastguard Worker    srcs = [f],
650*03ce13f7SAndroid Build Coastguard Worker    copts = TEST_COPTS,
651*03ce13f7SAndroid Build Coastguard Worker    linkstatic = 1,
652*03ce13f7SAndroid Build Coastguard Worker    deps = [
653*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_internal",
654*03ce13f7SAndroid Build Coastguard Worker        "@googletest//:gtest",
655*03ce13f7SAndroid Build Coastguard Worker        "@googletest//:gtest_main",
656*03ce13f7SAndroid Build Coastguard Worker    ],
657*03ce13f7SAndroid Build Coastguard Worker) for f in glob(["test/util/*_test.cpp"])]
658*03ce13f7SAndroid Build Coastguard Worker
659*03ce13f7SAndroid Build Coastguard Workercc_library(
660*03ce13f7SAndroid Build Coastguard Worker    name = "val_test_lib",
661*03ce13f7SAndroid Build Coastguard Worker    testonly = 1,
662*03ce13f7SAndroid Build Coastguard Worker    srcs = [
663*03ce13f7SAndroid Build Coastguard Worker        "test/val/val_code_generator.cpp",
664*03ce13f7SAndroid Build Coastguard Worker    ],
665*03ce13f7SAndroid Build Coastguard Worker    hdrs = [
666*03ce13f7SAndroid Build Coastguard Worker        "test/val/val_code_generator.h",
667*03ce13f7SAndroid Build Coastguard Worker        "test/val/val_fixtures.h",
668*03ce13f7SAndroid Build Coastguard Worker    ],
669*03ce13f7SAndroid Build Coastguard Worker    copts = TEST_COPTS,
670*03ce13f7SAndroid Build Coastguard Worker    deps = [
671*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_internal",
672*03ce13f7SAndroid Build Coastguard Worker        ":test_lib",
673*03ce13f7SAndroid Build Coastguard Worker    ],
674*03ce13f7SAndroid Build Coastguard Worker)
675*03ce13f7SAndroid Build Coastguard Worker
676*03ce13f7SAndroid Build Coastguard Worker[cc_test(
677*03ce13f7SAndroid Build Coastguard Worker    name = "val_{testcase}_test".format(testcase = f[len("test/val/val_"):-len("_test.cpp")]),
678*03ce13f7SAndroid Build Coastguard Worker    size = "small",
679*03ce13f7SAndroid Build Coastguard Worker    srcs = [f],
680*03ce13f7SAndroid Build Coastguard Worker    copts = TEST_COPTS,
681*03ce13f7SAndroid Build Coastguard Worker    linkstatic = 1,
682*03ce13f7SAndroid Build Coastguard Worker    deps = [
683*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_internal",
684*03ce13f7SAndroid Build Coastguard Worker        ":test_lib",
685*03ce13f7SAndroid Build Coastguard Worker        ":val_test_lib",
686*03ce13f7SAndroid Build Coastguard Worker        "@googletest//:gtest",
687*03ce13f7SAndroid Build Coastguard Worker        "@googletest//:gtest_main",
688*03ce13f7SAndroid Build Coastguard Worker    ],
689*03ce13f7SAndroid Build Coastguard Worker) for f in glob(
690*03ce13f7SAndroid Build Coastguard Worker    ["test/val/val_*_test.cpp"],
691*03ce13f7SAndroid Build Coastguard Worker    exclude = [
692*03ce13f7SAndroid Build Coastguard Worker        "test/val/val_capability_test.cpp",
693*03ce13f7SAndroid Build Coastguard Worker        "test/val/val_limits_test.cpp",
694*03ce13f7SAndroid Build Coastguard Worker    ],
695*03ce13f7SAndroid Build Coastguard Worker)]
696*03ce13f7SAndroid Build Coastguard Worker
697*03ce13f7SAndroid Build Coastguard Workercc_test(
698*03ce13f7SAndroid Build Coastguard Worker    name = "val_capability_test",
699*03ce13f7SAndroid Build Coastguard Worker    size = "large",
700*03ce13f7SAndroid Build Coastguard Worker    timeout = "long",
701*03ce13f7SAndroid Build Coastguard Worker    srcs = ["test/val/val_capability_test.cpp"],
702*03ce13f7SAndroid Build Coastguard Worker    copts = TEST_COPTS + ["-O3"],
703*03ce13f7SAndroid Build Coastguard Worker    linkstatic = 1,
704*03ce13f7SAndroid Build Coastguard Worker    deps = [
705*03ce13f7SAndroid Build Coastguard Worker        ":spirv_tools_internal",
706*03ce13f7SAndroid Build Coastguard Worker        ":test_lib",
707*03ce13f7SAndroid Build Coastguard Worker        ":val_test_lib",
708*03ce13f7SAndroid Build Coastguard Worker        "@googletest//:gtest",
709*03ce13f7SAndroid Build Coastguard Worker        "@googletest//:gtest_main",
710*03ce13f7SAndroid Build Coastguard Worker    ],
711*03ce13f7SAndroid Build Coastguard Worker)
712*03ce13f7SAndroid Build Coastguard Worker
713*03ce13f7SAndroid Build Coastguard Workercc_test(
714*03ce13f7SAndroid Build Coastguard Worker    name = "val_limits_test",
715*03ce13f7SAndroid Build Coastguard Worker    size = "large",
716*03ce13f7SAndroid Build Coastguard Worker    timeout = "long",
717*03ce13f7SAndroid Build Coastguard Worker    srcs = ["test/val/val_limits_test.cpp"],
718*03ce13f7SAndroid Build Coastguard Worker    copts = TEST_COPTS + [
719*03ce13f7SAndroid Build Coastguard Worker        "-O3",
720*03ce13f7SAndroid Build Coastguard Worker    ],
721*03ce13f7SAndroid Build Coastguard Worker    linkstatic = 1,
722*03ce13f7SAndroid Build Coastguard Worker    deps = [
723*03ce13f7SAndroid Build Coastguard Worker        ":test_lib",
724*03ce13f7SAndroid Build Coastguard Worker        ":val_test_lib",
725*03ce13f7SAndroid Build Coastguard Worker        "@googletest//:gtest",
726*03ce13f7SAndroid Build Coastguard Worker        "@googletest//:gtest_main",
727*03ce13f7SAndroid Build Coastguard Worker    ],
728*03ce13f7SAndroid Build Coastguard Worker)
729