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