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