blob: 97bffef50e5fd5a6a35fd96ebcba9e99e6ae6320 [file] [log] [blame]
Ryan Harrisondbc13af2022-02-21 15:19:07 +00001# Copyright 2021 The Tint Authors
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15import("//build_overrides/build.gni")
Dan Sinclair5ae03c22022-11-03 14:25:37 +000016
Ryan Harrisondbc13af2022-02-21 15:19:07 +000017import("../../tint_overrides_with_defaults.gni")
18
dan sinclair77bf2332022-06-22 12:40:43 +000019if (tint_build_unittests) {
20 import("//testing/test.gni")
21}
22
Ryan Harrisondbc13af2022-02-21 15:19:07 +000023###############################################################################
24# Common - Configs, etc. shared across targets
25###############################################################################
26
27config("tint_common_config") {
28 include_dirs = [
29 "${target_gen_dir}",
30 "${tint_root_dir}/",
31 "${tint_spirv_headers_dir}/include",
32 "${tint_spirv_tools_dir}/",
33 "${tint_spirv_tools_dir}/include",
34 ]
35}
36
37config("tint_public_config") {
38 defines = []
39 if (tint_build_spv_reader) {
40 defines += [ "TINT_BUILD_SPV_READER=1" ]
41 } else {
42 defines += [ "TINT_BUILD_SPV_READER=0" ]
43 }
44
45 if (tint_build_spv_writer) {
46 defines += [ "TINT_BUILD_SPV_WRITER=1" ]
47 } else {
48 defines += [ "TINT_BUILD_SPV_WRITER=0" ]
49 }
50
51 if (tint_build_wgsl_reader) {
52 defines += [ "TINT_BUILD_WGSL_READER=1" ]
53 } else {
54 defines += [ "TINT_BUILD_WGSL_READER=0" ]
55 }
56
57 if (tint_build_wgsl_writer) {
58 defines += [ "TINT_BUILD_WGSL_WRITER=1" ]
59 } else {
60 defines += [ "TINT_BUILD_WGSL_WRITER=0" ]
61 }
62
63 if (tint_build_msl_writer) {
64 defines += [ "TINT_BUILD_MSL_WRITER=1" ]
65 } else {
66 defines += [ "TINT_BUILD_MSL_WRITER=0" ]
67 }
68
69 if (tint_build_hlsl_writer) {
70 defines += [ "TINT_BUILD_HLSL_WRITER=1" ]
71 } else {
72 defines += [ "TINT_BUILD_HLSL_WRITER=0" ]
73 }
74
75 if (tint_build_glsl_writer) {
76 defines += [ "TINT_BUILD_GLSL_WRITER=1" ]
77 } else {
78 defines += [ "TINT_BUILD_GLSL_WRITER=0" ]
79 }
80
81 include_dirs = [
82 "${tint_root_dir}/",
83 "${tint_root_dir}/include/",
84 "${tint_spirv_headers_dir}/include",
85 ]
86}
87
88config("tint_config") {
89 include_dirs = []
90 if (tint_build_spv_reader || tint_build_spv_writer) {
91 include_dirs += [ "${tint_spirv_tools_dir}/include/" ]
92 }
93}
94
95###############################################################################
96# Helper library for IO operations
97# Only to be used by tests and sample executable
98###############################################################################
99source_set("tint_utils_io") {
100 sources = [
101 "utils/io/command.h",
102 "utils/io/tmpfile.h",
103 ]
104
105 if (is_linux || is_mac) {
106 sources += [ "utils/io/command_posix.cc" ]
107 sources += [ "utils/io/tmpfile_posix.cc" ]
108 } else if (is_win) {
109 sources += [ "utils/io/command_windows.cc" ]
110 sources += [ "utils/io/tmpfile_windows.cc" ]
111 } else {
112 sources += [ "utils/io/command_other.cc" ]
113 sources += [ "utils/io/tmpfile_other.cc" ]
114 }
115
116 public_deps = [ ":libtint_core_all_src" ]
117}
118
119###############################################################################
120# Helper library for validating generated shaders
121# As this depends on tint_utils_io, this is only to be used by tests and sample
122# executable
123###############################################################################
124source_set("tint_val") {
125 sources = [
126 "val/hlsl.cc",
127 "val/msl.cc",
128 "val/val.h",
129 ]
130 public_deps = [ ":tint_utils_io" ]
131}
132
133###############################################################################
134# Library - Tint core and optional modules of libtint
135###############################################################################
136# libtint source sets are divided into a non-optional core in :libtint_core_src
137# and optional :libtint_*_src subsets, because ninja does not like having
138# multiple source files with the same name, like function.cc, in the same
139# source set
140# target.
141#
142# Targets that want to use tint as a library should depend on ":libtint" and
143# use the build flags to control what is included, instead of trying to specify
144# the subsets that they want.
145
146template("libtint_source_set") {
147 source_set(target_name) {
148 forward_variables_from(invoker, "*", [ "configs" ])
149
150 if (!defined(invoker.deps)) {
151 deps = []
152 }
153 deps += [
154 "${tint_spirv_headers_dir}:spv_headers",
155 "${tint_spirv_tools_dir}:spvtools_core_enums_unified1",
156 "${tint_spirv_tools_dir}:spvtools_core_tables_unified1",
157 "${tint_spirv_tools_dir}:spvtools_headers",
158 "${tint_spirv_tools_dir}:spvtools_language_header_cldebuginfo100",
159 "${tint_spirv_tools_dir}:spvtools_language_header_debuginfo",
160 "${tint_spirv_tools_dir}:spvtools_language_header_vkdebuginfo100",
161 ]
162
163 if (defined(invoker.configs)) {
164 configs += invoker.configs
165 }
166 configs += [ ":tint_common_config" ]
167 if (build_with_chromium) {
168 configs -= [ "//build/config/compiler:chromium_code" ]
169 configs += [ "//build/config/compiler:no_chromium_code" ]
170 }
171
172 if (!defined(invoker.public_configs)) {
173 public_configs = []
174 }
175 public_configs += [ ":tint_public_config" ]
176 }
177}
178
179libtint_source_set("libtint_core_all_src") {
180 sources = [
Dan Sinclair749abea2022-11-02 17:07:25 +0000181 "ast/access.cc",
182 "ast/access.h",
183 "ast/address_space.cc",
184 "ast/address_space.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000185 "ast/alias.cc",
186 "ast/alias.h",
187 "ast/array.cc",
188 "ast/array.h",
189 "ast/assignment_statement.cc",
190 "ast/assignment_statement.h",
191 "ast/ast_type.cc", # TODO(bclayton) - rename to type.cc
192 "ast/atomic.cc",
193 "ast/atomic.h",
194 "ast/attribute.cc",
195 "ast/attribute.h",
196 "ast/binary_expression.cc",
197 "ast/binary_expression.h",
198 "ast/binding_attribute.cc",
199 "ast/binding_attribute.h",
200 "ast/bitcast_expression.cc",
201 "ast/bitcast_expression.h",
202 "ast/block_statement.cc",
203 "ast/block_statement.h",
204 "ast/bool.cc",
205 "ast/bool.h",
206 "ast/bool_literal_expression.cc",
207 "ast/bool_literal_expression.h",
dan sinclairb8b0c212022-10-20 22:45:50 +0000208 "ast/break_if_statement.cc",
209 "ast/break_if_statement.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000210 "ast/break_statement.cc",
211 "ast/break_statement.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000212 "ast/builtin_attribute.cc",
213 "ast/builtin_attribute.h",
Dan Sinclair749abea2022-11-02 17:07:25 +0000214 "ast/builtin_value.cc",
215 "ast/builtin_value.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000216 "ast/call_expression.cc",
217 "ast/call_expression.h",
218 "ast/call_statement.cc",
219 "ast/call_statement.h",
dan sinclairf148f082022-10-19 15:55:02 +0000220 "ast/case_selector.cc",
221 "ast/case_selector.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000222 "ast/case_statement.cc",
223 "ast/case_statement.h",
James Price49241862022-03-31 22:30:10 +0000224 "ast/compound_assignment_statement.cc",
225 "ast/compound_assignment_statement.h",
Ben Clayton7ee32452022-06-20 20:46:22 +0000226 "ast/const.cc",
227 "ast/const.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000228 "ast/continue_statement.cc",
229 "ast/continue_statement.h",
230 "ast/depth_multisampled_texture.cc",
231 "ast/depth_multisampled_texture.h",
232 "ast/depth_texture.cc",
233 "ast/depth_texture.h",
234 "ast/disable_validation_attribute.cc",
235 "ast/disable_validation_attribute.h",
236 "ast/discard_statement.cc",
237 "ast/discard_statement.h",
Zhaoming Jiang7098d3d2022-04-27 02:27:52 +0000238 "ast/enable.cc",
239 "ast/enable.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000240 "ast/expression.cc",
241 "ast/expression.h",
Dan Sinclair749abea2022-11-02 17:07:25 +0000242 "ast/extension.cc",
243 "ast/extension.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000244 "ast/external_texture.cc",
245 "ast/external_texture.h",
Zhaoming Jiang62bfd312022-05-13 12:01:11 +0000246 "ast/f16.cc",
247 "ast/f16.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000248 "ast/f32.cc",
249 "ast/f32.h",
250 "ast/fallthrough_statement.cc",
251 "ast/fallthrough_statement.h",
252 "ast/float_literal_expression.cc",
253 "ast/float_literal_expression.h",
254 "ast/for_loop_statement.cc",
255 "ast/for_loop_statement.h",
256 "ast/function.cc",
257 "ast/function.h",
258 "ast/group_attribute.cc",
259 "ast/group_attribute.h",
260 "ast/i32.cc",
261 "ast/i32.h",
262 "ast/id_attribute.cc",
263 "ast/id_attribute.h",
264 "ast/identifier_expression.cc",
265 "ast/identifier_expression.h",
266 "ast/if_statement.cc",
267 "ast/if_statement.h",
James Priceebe97412022-04-07 13:42:45 +0000268 "ast/increment_decrement_statement.cc",
269 "ast/increment_decrement_statement.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000270 "ast/index_accessor_expression.cc",
271 "ast/index_accessor_expression.h",
272 "ast/int_literal_expression.cc",
273 "ast/int_literal_expression.h",
274 "ast/internal_attribute.cc",
275 "ast/internal_attribute.h",
Dan Sinclair749abea2022-11-02 17:07:25 +0000276 "ast/interpolate_attribute.cc",
277 "ast/interpolate_attribute.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000278 "ast/invariant_attribute.cc",
279 "ast/invariant_attribute.h",
Ben Claytondcdf66e2022-06-17 12:48:51 +0000280 "ast/let.cc",
281 "ast/let.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000282 "ast/literal_expression.cc",
283 "ast/literal_expression.h",
284 "ast/location_attribute.cc",
285 "ast/location_attribute.h",
286 "ast/loop_statement.cc",
287 "ast/loop_statement.h",
288 "ast/matrix.cc",
289 "ast/matrix.h",
290 "ast/member_accessor_expression.cc",
291 "ast/member_accessor_expression.h",
292 "ast/module.cc",
293 "ast/module.h",
294 "ast/multisampled_texture.cc",
295 "ast/multisampled_texture.h",
296 "ast/node.cc",
297 "ast/node.h",
dan sinclair256f1112022-07-22 16:05:06 +0000298 "ast/node_id.h",
Ben Claytondcdf66e2022-06-17 12:48:51 +0000299 "ast/override.cc",
300 "ast/override.h",
301 "ast/parameter.cc",
302 "ast/parameter.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000303 "ast/phony_expression.cc",
304 "ast/phony_expression.h",
305 "ast/pipeline_stage.cc",
306 "ast/pipeline_stage.h",
307 "ast/pointer.cc",
308 "ast/pointer.h",
309 "ast/return_statement.cc",
310 "ast/return_statement.h",
311 "ast/sampled_texture.cc",
312 "ast/sampled_texture.h",
313 "ast/sampler.cc",
314 "ast/sampler.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000315 "ast/stage_attribute.cc",
316 "ast/stage_attribute.h",
317 "ast/statement.cc",
318 "ast/statement.h",
Ben Claytonbfd1a812022-08-02 23:16:25 +0000319 "ast/static_assert.cc",
320 "ast/static_assert.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000321 "ast/storage_texture.cc",
322 "ast/storage_texture.h",
323 "ast/stride_attribute.cc",
324 "ast/stride_attribute.h",
325 "ast/struct.cc",
326 "ast/struct.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000327 "ast/struct_member.cc",
328 "ast/struct_member.h",
329 "ast/struct_member_align_attribute.cc",
330 "ast/struct_member_align_attribute.h",
331 "ast/struct_member_offset_attribute.cc",
332 "ast/struct_member_offset_attribute.h",
333 "ast/struct_member_size_attribute.cc",
334 "ast/struct_member_size_attribute.h",
335 "ast/switch_statement.cc",
336 "ast/switch_statement.h",
Dan Sinclair749abea2022-11-02 17:07:25 +0000337 "ast/texel_format.cc",
338 "ast/texel_format.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000339 "ast/texture.cc",
340 "ast/texture.h",
341 "ast/traverse_expressions.h",
342 "ast/type.h",
343 "ast/type_decl.cc",
344 "ast/type_decl.h",
345 "ast/type_name.cc",
346 "ast/type_name.h",
347 "ast/u32.cc",
348 "ast/u32.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000349 "ast/unary_op.cc",
350 "ast/unary_op.h",
351 "ast/unary_op_expression.cc",
352 "ast/unary_op_expression.h",
Ben Claytondcdf66e2022-06-17 12:48:51 +0000353 "ast/var.cc",
354 "ast/var.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000355 "ast/variable.cc",
356 "ast/variable.h",
357 "ast/variable_decl_statement.cc",
358 "ast/variable_decl_statement.h",
359 "ast/vector.cc",
360 "ast/vector.h",
361 "ast/void.cc",
362 "ast/void.h",
dan sinclair49d1a2d2022-06-16 12:01:27 +0000363 "ast/while_statement.cc",
364 "ast/while_statement.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000365 "ast/workgroup_attribute.cc",
366 "ast/workgroup_attribute.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000367 "castable.cc",
368 "castable.h",
369 "clone_context.cc",
370 "clone_context.h",
371 "debug.cc",
372 "debug.h",
373 "demangler.cc",
374 "demangler.h",
375 "diagnostic/diagnostic.cc",
376 "diagnostic/diagnostic.h",
377 "diagnostic/formatter.cc",
378 "diagnostic/formatter.h",
379 "diagnostic/printer.cc",
380 "diagnostic/printer.h",
381 "inspector/entry_point.cc",
382 "inspector/entry_point.h",
383 "inspector/inspector.cc",
384 "inspector/inspector.h",
385 "inspector/resource_binding.cc",
386 "inspector/resource_binding.h",
387 "inspector/scalar.cc",
388 "inspector/scalar.h",
Ben Claytonc2eccfc2022-05-25 15:04:24 +0000389 "number.cc",
Zhaoming Jiang62bfd312022-05-13 12:01:11 +0000390 "number.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000391 "program.cc",
392 "program.h",
393 "program_builder.cc",
394 "program_builder.h",
395 "program_id.cc",
396 "program_id.h",
397 "reader/reader.cc",
398 "reader/reader.h",
Stephen White863d9ed2022-09-02 19:19:10 +0000399 "reflection.h",
Ben Clayton451eee02022-06-01 23:57:20 +0000400 "resolver/const_eval.cc",
401 "resolver/const_eval.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000402 "resolver/dependency_graph.cc",
403 "resolver/dependency_graph.h",
Dan Sinclair749abea2022-11-02 17:07:25 +0000404 "resolver/init_conv_intrinsic.cc",
405 "resolver/init_conv_intrinsic.h",
Ben Claytone1325162022-05-06 15:13:01 +0000406 "resolver/intrinsic_table.cc",
407 "resolver/intrinsic_table.h",
Dan Sinclair749abea2022-11-02 17:07:25 +0000408 "resolver/intrinsic_table.inl",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000409 "resolver/resolver.cc",
410 "resolver/resolver.h",
dan sinclairbb62ef02022-04-19 15:00:44 +0000411 "resolver/sem_helper.cc",
412 "resolver/sem_helper.h",
James Pricebe656f72022-05-11 22:05:15 +0000413 "resolver/uniformity.cc",
414 "resolver/uniformity.h",
dan sinclairf05575b2022-04-21 13:40:16 +0000415 "resolver/validator.cc",
416 "resolver/validator.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000417 "scope_stack.h",
Ben Clayton23696b12022-05-18 21:56:28 +0000418 "sem/abstract_float.h",
419 "sem/abstract_int.h",
420 "sem/abstract_numeric.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000421 "sem/array.h",
Ben Clayton01004b72022-04-28 18:49:04 +0000422 "sem/atomic.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000423 "sem/behavior.h",
424 "sem/binding_point.h",
Ben Clayton01004b72022-04-28 18:49:04 +0000425 "sem/bool.h",
dan sinclairb8b0c212022-10-20 22:45:50 +0000426 "sem/break_if_statement.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000427 "sem/builtin.h",
Dan Sinclair749abea2022-11-02 17:07:25 +0000428 "sem/builtin_type.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000429 "sem/call.h",
430 "sem/call_target.h",
431 "sem/constant.h",
Ben Clayton01004b72022-04-28 18:49:04 +0000432 "sem/depth_multisampled_texture.h",
433 "sem/depth_texture.h",
Ben Clayton83bd7382022-07-15 23:46:31 +0000434 "sem/evaluation_stage.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000435 "sem/expression.h",
Ben Clayton01004b72022-04-28 18:49:04 +0000436 "sem/external_texture.h",
Zhaoming Jiang62bfd312022-05-13 12:01:11 +0000437 "sem/f16.h",
Ben Clayton01004b72022-04-28 18:49:04 +0000438 "sem/f32.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000439 "sem/for_loop_statement.h",
Ben Clayton01004b72022-04-28 18:49:04 +0000440 "sem/i32.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000441 "sem/if_statement.h",
Antonio Maioranodfeaf2902022-06-24 20:34:00 +0000442 "sem/index_accessor_expression.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000443 "sem/info.h",
444 "sem/loop_statement.h",
Ben Clayton932418e2022-05-24 21:42:03 +0000445 "sem/materialize.h",
Ben Clayton01004b72022-04-28 18:49:04 +0000446 "sem/matrix.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000447 "sem/module.h",
Ben Clayton01004b72022-04-28 18:49:04 +0000448 "sem/multisampled_texture.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000449 "sem/node.h",
Dan Sinclair749abea2022-11-02 17:07:25 +0000450 "sem/parameter_usage.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000451 "sem/pipeline_stage_set.h",
Ben Clayton01004b72022-04-28 18:49:04 +0000452 "sem/pointer.h",
453 "sem/reference.h",
454 "sem/sampled_texture.h",
Ben Clayton01004b72022-04-28 18:49:04 +0000455 "sem/sampler.h",
dan sinclair41e4d9a2022-05-01 14:40:55 +0000456 "sem/sampler_texture_pair.h",
Ben Clayton01004b72022-04-28 18:49:04 +0000457 "sem/storage_texture.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000458 "sem/switch_statement.h",
Ben Clayton01004b72022-04-28 18:49:04 +0000459 "sem/texture.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000460 "sem/type.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000461 "sem/type_conversion.h",
dan sinclair6e77b472022-10-20 13:38:28 +0000462 "sem/type_initializer.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000463 "sem/type_manager.h",
464 "sem/type_mappings.h",
Ben Clayton01004b72022-04-28 18:49:04 +0000465 "sem/u32.h",
466 "sem/vector.h",
467 "sem/void.h",
dan sinclair49d1a2d2022-06-16 12:01:27 +0000468 "sem/while_statement.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000469 "source.cc",
470 "source.h",
471 "symbol.cc",
472 "symbol.h",
473 "symbol_table.cc",
474 "symbol_table.h",
475 "text/unicode.cc",
476 "text/unicode.h",
477 "traits.h",
Stephen White863d9ed2022-09-02 19:19:10 +0000478 "transform/add_block_attribute.cc",
479 "transform/add_block_attribute.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000480 "transform/add_empty_entry_point.cc",
481 "transform/add_empty_entry_point.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000482 "transform/array_length_from_uniform.cc",
483 "transform/array_length_from_uniform.h",
484 "transform/binding_remapper.cc",
485 "transform/binding_remapper.h",
Ben Clayton27aa57c2022-02-22 23:13:39 +0000486 "transform/builtin_polyfill.cc",
487 "transform/builtin_polyfill.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000488 "transform/calculate_array_length.cc",
489 "transform/calculate_array_length.h",
490 "transform/canonicalize_entry_point_io.cc",
491 "transform/canonicalize_entry_point_io.h",
Corentin Wallez98a7cd12022-10-11 09:52:25 +0000492 "transform/clamp_frag_depth.cc",
493 "transform/clamp_frag_depth.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000494 "transform/combine_samplers.cc",
495 "transform/combine_samplers.h",
496 "transform/decompose_memory_access.cc",
497 "transform/decompose_memory_access.h",
498 "transform/decompose_strided_array.cc",
499 "transform/decompose_strided_array.h",
500 "transform/decompose_strided_matrix.cc",
501 "transform/decompose_strided_matrix.h",
James Price791b4352022-05-11 13:50:33 +0000502 "transform/disable_uniformity_analysis.cc",
503 "transform/disable_uniformity_analysis.h",
Corentin Wallezb28d6c82022-04-07 11:36:06 +0000504 "transform/expand_compound_assignment.cc",
505 "transform/expand_compound_assignment.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000506 "transform/first_index_offset.cc",
507 "transform/first_index_offset.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000508 "transform/for_loop_to_loop.cc",
509 "transform/for_loop_to_loop.h",
510 "transform/localize_struct_array_assignment.cc",
511 "transform/localize_struct_array_assignment.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000512 "transform/manager.cc",
513 "transform/manager.h",
James Price5de8b432022-10-31 14:49:03 +0000514 "transform/merge_return.cc",
515 "transform/merge_return.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000516 "transform/module_scope_var_to_entry_point_param.cc",
517 "transform/module_scope_var_to_entry_point_param.h",
518 "transform/multiplanar_external_texture.cc",
519 "transform/multiplanar_external_texture.h",
520 "transform/num_workgroups_from_uniform.cc",
521 "transform/num_workgroups_from_uniform.h",
Ben Claytona92f4252022-10-27 14:36:49 +0000522 "transform/packed_vec3.cc",
523 "transform/packed_vec3.h",
Stephen White05d8b022022-09-13 19:48:51 +0000524 "transform/pad_structs.cc",
525 "transform/pad_structs.h",
Ben Clayton7ebcfc72022-06-27 20:20:25 +0000526 "transform/promote_initializers_to_let.cc",
527 "transform/promote_initializers_to_let.h",
Antonio Maioranoc25ddf42022-03-15 15:03:03 +0000528 "transform/promote_side_effects_to_decl.cc",
529 "transform/promote_side_effects_to_decl.h",
Antonio Maioranob3497102022-03-31 15:02:25 +0000530 "transform/remove_continue_in_switch.cc",
531 "transform/remove_continue_in_switch.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000532 "transform/remove_phonies.cc",
533 "transform/remove_phonies.h",
534 "transform/remove_unreachable_statements.cc",
535 "transform/remove_unreachable_statements.h",
536 "transform/renamer.cc",
537 "transform/renamer.h",
538 "transform/robustness.cc",
539 "transform/robustness.h",
540 "transform/simplify_pointers.cc",
541 "transform/simplify_pointers.h",
542 "transform/single_entry_point.cc",
543 "transform/single_entry_point.h",
Antonio Maiorano268d7b82022-06-24 22:28:23 +0000544 "transform/spirv_atomic.cc",
545 "transform/spirv_atomic.h",
Ben Clayton657e61d2022-09-01 22:12:19 +0000546 "transform/std140.cc",
547 "transform/std140.h",
dan sinclair256f1112022-07-22 16:05:06 +0000548 "transform/substitute_override.cc",
549 "transform/substitute_override.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000550 "transform/transform.cc",
551 "transform/transform.h",
552 "transform/unshadow.cc",
553 "transform/unshadow.h",
Antonio Maiorano66d66682022-03-28 20:51:32 +0000554 "transform/unwind_discard_functions.cc",
555 "transform/unwind_discard_functions.h",
Antonio Maioranoc2e9bb72022-03-30 20:11:35 +0000556 "transform/utils/get_insertion_point.cc",
557 "transform/utils/get_insertion_point.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000558 "transform/utils/hoist_to_decl_before.cc",
559 "transform/utils/hoist_to_decl_before.h",
560 "transform/var_for_dynamic_index.cc",
561 "transform/var_for_dynamic_index.h",
Zhaoming Jiang426b47e2022-09-01 03:08:20 +0000562 "transform/vectorize_matrix_conversions.cc",
563 "transform/vectorize_matrix_conversions.h",
dan sinclair6e77b472022-10-20 13:38:28 +0000564 "transform/vectorize_scalar_matrix_initializers.cc",
565 "transform/vectorize_scalar_matrix_initializers.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000566 "transform/vertex_pulling.cc",
567 "transform/vertex_pulling.h",
dan sinclair49d1a2d2022-06-16 12:01:27 +0000568 "transform/while_to_loop.cc",
569 "transform/while_to_loop.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000570 "transform/zero_init_workgroup_memory.cc",
571 "transform/zero_init_workgroup_memory.h",
Ben Clayton7cbd8202022-05-05 15:34:41 +0000572 "utils/bitcast.h",
Ben Claytone43034b2022-07-21 23:32:24 +0000573 "utils/bitset.h",
Ben Clayton4cb13292022-03-04 21:09:24 +0000574 "utils/block_allocator.h",
Ben Clayton9707e6b2022-05-25 19:28:55 +0000575 "utils/compiler_macros.h",
576 "utils/concat.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000577 "utils/crc32.h",
578 "utils/debugger.cc",
579 "utils/debugger.h",
580 "utils/enum_set.h",
Ben Clayton648bd7b2022-09-02 11:40:19 +0000581 "utils/foreach_macro.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000582 "utils/hash.h",
Ben Claytone3725112022-11-02 19:46:49 +0000583 "utils/hashmap_base.h",
Ben Claytone13160e2022-08-17 16:28:23 +0000584 "utils/hashmap.h",
585 "utils/hashset.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000586 "utils/map.h",
587 "utils/math.h",
588 "utils/scoped_assignment.h",
Ben Claytond04c54e2022-10-11 17:53:07 +0000589 "utils/string.cc",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000590 "utils/string.h",
Ben Claytone2283192022-03-05 00:29:15 +0000591 "utils/unique_allocator.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000592 "utils/unique_vector.h",
Ben Clayton3bc20e32022-07-21 19:34:05 +0000593 "utils/vector.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000594 "writer/append_vector.cc",
595 "writer/append_vector.h",
596 "writer/array_length_from_uniform_options.cc",
597 "writer/array_length_from_uniform_options.h",
Ben Clayton1a567782022-10-14 13:38:27 +0000598 "writer/check_supported_extensions.cc",
599 "writer/check_supported_extensions.h",
Antonio Maiorano4e98fb02022-05-02 19:49:19 +0000600 "writer/flatten_bindings.cc",
601 "writer/flatten_bindings.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000602 "writer/float_to_string.cc",
603 "writer/float_to_string.h",
Antonio Maioranoa730eb72022-04-06 13:57:54 +0000604 "writer/generate_external_texture_bindings.cc",
605 "writer/generate_external_texture_bindings.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000606 "writer/text.cc",
607 "writer/text.h",
608 "writer/text_generator.cc",
609 "writer/text_generator.h",
610 "writer/writer.cc",
611 "writer/writer.h",
612 ]
613
614 if (is_linux) {
615 sources += [ "diagnostic/printer_linux.cc" ]
616 } else if (is_win) {
617 sources += [ "diagnostic/printer_windows.cc" ]
618 } else {
619 sources += [ "diagnostic/printer_other.cc" ]
620 }
621}
622
623libtint_source_set("libtint_sem_src") {
624 sources = [
Ben Clayton94328872022-04-29 09:14:15 +0000625 "sem/abstract_float.cc",
626 "sem/abstract_float.h",
627 "sem/abstract_int.cc",
628 "sem/abstract_int.h",
629 "sem/abstract_numeric.cc",
630 "sem/abstract_numeric.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000631 "sem/array.cc",
632 "sem/array.h",
Ben Clayton01004b72022-04-28 18:49:04 +0000633 "sem/atomic.cc",
634 "sem/atomic.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000635 "sem/behavior.cc",
636 "sem/behavior.h",
637 "sem/binding_point.h",
638 "sem/block_statement.cc",
Ben Clayton01004b72022-04-28 18:49:04 +0000639 "sem/bool.cc",
640 "sem/bool.h",
dan sinclairb8b0c212022-10-20 22:45:50 +0000641 "sem/break_if_statement.cc",
642 "sem/break_if_statement.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000643 "sem/builtin.cc",
644 "sem/builtin.h",
Dan Sinclair749abea2022-11-02 17:07:25 +0000645 "sem/builtin_type.cc",
646 "sem/builtin_type.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000647 "sem/call.cc",
648 "sem/call.h",
649 "sem/call_target.cc",
650 "sem/call_target.h",
651 "sem/constant.cc",
652 "sem/constant.h",
Ben Clayton01004b72022-04-28 18:49:04 +0000653 "sem/depth_multisampled_texture.cc",
654 "sem/depth_multisampled_texture.h",
655 "sem/depth_texture.cc",
656 "sem/depth_texture.h",
Ben Clayton83bd7382022-07-15 23:46:31 +0000657 "sem/evaluation_stage.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000658 "sem/expression.cc",
659 "sem/expression.h",
Ben Clayton01004b72022-04-28 18:49:04 +0000660 "sem/external_texture.cc",
661 "sem/external_texture.h",
Zhaoming Jiang62bfd312022-05-13 12:01:11 +0000662 "sem/f16.cc",
663 "sem/f16.h",
Ben Clayton01004b72022-04-28 18:49:04 +0000664 "sem/f32.cc",
665 "sem/f32.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000666 "sem/for_loop_statement.cc",
667 "sem/for_loop_statement.h",
668 "sem/function.cc",
Ben Clayton01004b72022-04-28 18:49:04 +0000669 "sem/i32.cc",
670 "sem/i32.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000671 "sem/if_statement.cc",
672 "sem/if_statement.h",
Antonio Maioranodfeaf2902022-06-24 20:34:00 +0000673 "sem/index_accessor_expression.cc",
674 "sem/index_accessor_expression.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000675 "sem/info.cc",
676 "sem/info.h",
677 "sem/loop_statement.cc",
678 "sem/loop_statement.h",
Ben Clayton2081ee42022-05-19 19:32:29 +0000679 "sem/materialize.cc",
680 "sem/materialize.h",
Ben Clayton01004b72022-04-28 18:49:04 +0000681 "sem/matrix.cc",
682 "sem/matrix.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000683 "sem/member_accessor_expression.cc",
684 "sem/module.cc",
685 "sem/module.h",
Ben Clayton01004b72022-04-28 18:49:04 +0000686 "sem/multisampled_texture.cc",
687 "sem/multisampled_texture.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000688 "sem/node.cc",
689 "sem/node.h",
Dan Sinclair749abea2022-11-02 17:07:25 +0000690 "sem/parameter_usage.cc",
691 "sem/parameter_usage.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000692 "sem/pipeline_stage_set.h",
Ben Clayton01004b72022-04-28 18:49:04 +0000693 "sem/pointer.cc",
694 "sem/pointer.h",
695 "sem/reference.cc",
696 "sem/reference.h",
697 "sem/sampled_texture.cc",
698 "sem/sampled_texture.h",
699 "sem/sampler.cc",
700 "sem/sampler.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000701 "sem/statement.cc",
Ben Clayton01004b72022-04-28 18:49:04 +0000702 "sem/storage_texture.cc",
703 "sem/storage_texture.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000704 "sem/struct.cc",
705 "sem/switch_statement.cc",
706 "sem/switch_statement.h",
Ben Clayton01004b72022-04-28 18:49:04 +0000707 "sem/texture.cc",
708 "sem/texture.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000709 "sem/type.cc",
710 "sem/type.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000711 "sem/type_conversion.cc",
712 "sem/type_conversion.h",
dan sinclair6e77b472022-10-20 13:38:28 +0000713 "sem/type_initializer.cc",
714 "sem/type_initializer.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000715 "sem/type_manager.cc",
716 "sem/type_manager.h",
717 "sem/type_mappings.h",
Ben Clayton01004b72022-04-28 18:49:04 +0000718 "sem/u32.cc",
719 "sem/u32.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000720 "sem/variable.cc",
Ben Clayton01004b72022-04-28 18:49:04 +0000721 "sem/vector.cc",
722 "sem/vector.h",
723 "sem/void.cc",
724 "sem/void.h",
dan sinclair49d1a2d2022-06-16 12:01:27 +0000725 "sem/while_statement.cc",
726 "sem/while_statement.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000727 ]
728
729 public_deps = [ ":libtint_core_all_src" ]
730}
731
732libtint_source_set("libtint_core_src") {
733 public_deps = [
734 ":libtint_core_all_src",
735 ":libtint_sem_src",
736 ]
737}
738
739libtint_source_set("libtint_spv_reader_src") {
740 sources = [
741 "reader/spirv/construct.cc",
742 "reader/spirv/construct.h",
743 "reader/spirv/entry_point_info.cc",
744 "reader/spirv/entry_point_info.h",
745 "reader/spirv/enum_converter.cc",
746 "reader/spirv/enum_converter.h",
747 "reader/spirv/fail_stream.h",
748 "reader/spirv/function.cc",
749 "reader/spirv/function.h",
750 "reader/spirv/namer.cc",
751 "reader/spirv/namer.h",
752 "reader/spirv/parser.cc",
753 "reader/spirv/parser.h",
754 "reader/spirv/parser_impl.cc",
755 "reader/spirv/parser_impl.h",
756 "reader/spirv/parser_type.cc",
757 "reader/spirv/parser_type.h",
758 "reader/spirv/usage.cc",
759 "reader/spirv/usage.h",
760 ]
761
762 public_deps = [
763 ":libtint_core_src",
764 "${tint_spirv_tools_dir}/:spvtools_opt",
765 ]
766
767 public_configs = [ "${tint_spirv_tools_dir}/:spvtools_internal_config" ]
768}
769
770libtint_source_set("libtint_spv_writer_src") {
771 sources = [
772 "writer/spirv/binary_writer.cc",
773 "writer/spirv/binary_writer.h",
774 "writer/spirv/builder.cc",
775 "writer/spirv/builder.h",
776 "writer/spirv/function.cc",
777 "writer/spirv/function.h",
778 "writer/spirv/generator.cc",
779 "writer/spirv/generator.h",
Antonio Maioranob5c46c32022-04-11 21:10:20 +0000780 "writer/spirv/generator_impl.cc",
781 "writer/spirv/generator_impl.h",
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000782 "writer/spirv/instruction.cc",
783 "writer/spirv/instruction.h",
784 "writer/spirv/operand.cc",
785 "writer/spirv/operand.h",
786 "writer/spirv/scalar_constant.h",
787 ]
788
789 public_deps = [ ":libtint_core_src" ]
790}
791
792libtint_source_set("libtint_wgsl_reader_src") {
793 sources = [
794 "reader/wgsl/lexer.cc",
795 "reader/wgsl/lexer.h",
796 "reader/wgsl/parser.cc",
797 "reader/wgsl/parser.h",
798 "reader/wgsl/parser_impl.cc",
799 "reader/wgsl/parser_impl.h",
800 "reader/wgsl/parser_impl_detail.h",
801 "reader/wgsl/token.cc",
802 "reader/wgsl/token.h",
803 ]
804
805 public_deps = [ ":libtint_core_src" ]
806}
807
808libtint_source_set("libtint_wgsl_writer_src") {
809 sources = [
810 "writer/wgsl/generator.cc",
811 "writer/wgsl/generator.h",
812 "writer/wgsl/generator_impl.cc",
813 "writer/wgsl/generator_impl.h",
814 ]
815
816 public_deps = [ ":libtint_core_src" ]
817}
818
819libtint_source_set("libtint_msl_writer_src") {
820 sources = [
821 "writer/msl/generator.cc",
822 "writer/msl/generator.h",
823 "writer/msl/generator_impl.cc",
824 "writer/msl/generator_impl.h",
825 ]
826
827 public_deps = [ ":libtint_core_src" ]
828}
829
830libtint_source_set("libtint_hlsl_writer_src") {
831 sources = [
832 "writer/hlsl/generator.cc",
833 "writer/hlsl/generator.h",
834 "writer/hlsl/generator_impl.cc",
835 "writer/hlsl/generator_impl.h",
836 ]
837
838 public_deps = [ ":libtint_core_src" ]
839}
840
841libtint_source_set("libtint_glsl_writer_src") {
842 sources = [
Ryan Harrisondbc13af2022-02-21 15:19:07 +0000843 "writer/glsl/generator.cc",
844 "writer/glsl/generator.h",
845 "writer/glsl/generator_impl.cc",
846 "writer/glsl/generator_impl.h",
847 ]
848
849 public_deps = [ ":libtint_core_src" ]
850}
851
852source_set("libtint") {
853 public_deps = [ ":libtint_core_src" ]
854
855 if (tint_build_spv_reader) {
856 public_deps += [ ":libtint_spv_reader_src" ]
857 }
858
859 if (tint_build_spv_writer) {
860 public_deps += [ ":libtint_spv_writer_src" ]
861 }
862
863 if (tint_build_wgsl_reader) {
864 public_deps += [ ":libtint_wgsl_reader_src" ]
865 }
866
867 if (tint_build_wgsl_writer) {
868 public_deps += [ ":libtint_wgsl_writer_src" ]
869 }
870
871 if (tint_build_msl_writer) {
872 public_deps += [ ":libtint_msl_writer_src" ]
873 }
874
875 if (tint_build_hlsl_writer) {
876 public_deps += [ ":libtint_hlsl_writer_src" ]
877 }
878
879 if (tint_build_glsl_writer) {
880 public_deps += [ ":libtint_glsl_writer_src" ]
881 }
882
883 configs += [ ":tint_common_config" ]
884 public_configs = [ ":tint_public_config" ]
885
886 if (build_with_chromium) {
887 configs -= [ "//build/config/compiler:chromium_code" ]
888 configs += [ "//build/config/compiler:no_chromium_code" ]
889 }
890}
dan sinclair889a4992022-06-17 13:01:59 +0000891
dan sinclair77bf2332022-06-22 12:40:43 +0000892if (tint_build_unittests) {
893 ###############################################################################
894 # Gtest Gmock - Handle building inside and outside of Chromium.
895 ###############################################################################
896 # When building outside of Chromium we need to define our own targets for GTest
897 # and GMock. However when compiling inside of Chromium we need to reuse the
898 # existing targets, both because Chromium has a special harness for swarming
899 # and because otherwise the "gn check" fails.
dan sinclair889a4992022-06-17 13:01:59 +0000900
dan sinclair77bf2332022-06-22 12:40:43 +0000901 if (!build_with_chromium) {
902 # When we aren't in Chromium we define out own targets based on the location
903 # of the googletest repo.
904 config("gtest_config") {
905 include_dirs = [
906 "${tint_googletest_dir}/googletest",
907 "${tint_googletest_dir}/googletest/include",
908 ]
909 }
910 static_library("gtest") {
911 testonly = true
912 sources = [ "${tint_googletest_dir}/googletest/src/gtest-all.cc" ]
913 public_configs = [ ":gtest_config" ]
914 }
915
916 config("gmock_config") {
917 include_dirs = [
918 "${tint_googletest_dir}/googlemock",
919 "${tint_googletest_dir}/googlemock/include",
920 "${tint_googletest_dir}/googletest/include",
921 ]
922 }
923
924 static_library("gmock") {
925 testonly = true
926 sources = [ "${tint_googletest_dir}/googlemock/src/gmock-all.cc" ]
927 public_configs = [ ":gmock_config" ]
928 }
929
930 group("gmock_and_gtest") {
931 testonly = true
932 public_deps = [
933 ":gmock",
934 ":gtest",
935 ]
936 }
937 } else {
938 # When we are in Chromium we reuse its targets, and also add some deps that
939 # are needed to launch the test in swarming mode.
940 group("gmock_and_gtest") {
941 testonly = true
942 public_deps = [
943 "//base",
944 "//base/test:test_support",
945 "//testing/gmock",
946 "//testing/gtest",
947 "//third_party/googletest:gmock",
948 ]
949 }
dan sinclair889a4992022-06-17 13:01:59 +0000950 }
dan sinclair77bf2332022-06-22 12:40:43 +0000951
952 ###############################################################################
953 # Wrapping of Chromium targets
954 ###############################################################################
955 # These targets are separated because they are Chromium sources files that
956 # can't use the tint_internal config, otherwise Tint's warning flags get
957 # applied while compiling a bunch of Chromium's //base (via header inclusion)
958 source_set("tint_unittests_main") {
dan sinclair889a4992022-06-17 13:01:59 +0000959 testonly = true
dan sinclair77bf2332022-06-22 12:40:43 +0000960 deps = [ ":gmock_and_gtest" ]
961 if (build_with_chromium) {
962 sources = [ "//gpu/tint_unittests_main.cc" ]
963 } else {
964 sources = [ "test_main.cc" ]
965 configs += [ ":tint_unittests_config" ]
966 deps += [
967 ":libtint",
968 ":tint_unittests_hlsl_writer_src",
969 ":tint_unittests_msl_writer_src",
970 ":tint_unittests_spv_reader_src",
971 ]
972 }
dan sinclair889a4992022-06-17 13:01:59 +0000973 }
974
dan sinclair77bf2332022-06-22 12:40:43 +0000975 ###############################################################################
976 # Tests - For libtint core and optional modules
977 ###############################################################################
978 config("tint_unittests_config") {
dan sinclair889a4992022-06-17 13:01:59 +0000979 include_dirs = [
dan sinclair889a4992022-06-17 13:01:59 +0000980 "${tint_googletest_dir}/googlemock/include",
981 "${tint_googletest_dir}/googletest/include",
982 ]
dan sinclair889a4992022-06-17 13:01:59 +0000983
dan sinclair77bf2332022-06-22 12:40:43 +0000984 configs = [
985 ":tint_common_config",
986 ":tint_public_config",
dan sinclair889a4992022-06-17 13:01:59 +0000987 ]
988 }
dan sinclair889a4992022-06-17 13:01:59 +0000989
dan sinclair77bf2332022-06-22 12:40:43 +0000990 template("tint_unittests_source_set") {
991 source_set(target_name) {
992 forward_variables_from(invoker, "*", [ "configs" ])
dan sinclair889a4992022-06-17 13:01:59 +0000993
dan sinclair77bf2332022-06-22 12:40:43 +0000994 if (defined(invoker.configs)) {
995 configs += invoker.configs
996 }
997 configs += [ ":tint_unittests_config" ]
998 if (build_with_chromium) {
999 configs -= [ "//build/config/compiler:chromium_code" ]
1000 configs += [ "//build/config/compiler:no_chromium_code" ]
1001 }
dan sinclair889a4992022-06-17 13:01:59 +00001002
dan sinclair77bf2332022-06-22 12:40:43 +00001003 testonly = true
dan sinclair889a4992022-06-17 13:01:59 +00001004
dan sinclair77bf2332022-06-22 12:40:43 +00001005 if (!defined(invoker.deps)) {
1006 deps = []
1007 }
1008 deps += [
1009 ":gmock_and_gtest",
1010 ":libtint",
1011 ":tint_utils_io",
1012 ]
dan sinclair889a4992022-06-17 13:01:59 +00001013 }
dan sinclair77bf2332022-06-22 12:40:43 +00001014 }
1015
1016 tint_unittests_source_set("tint_unittests_ast_src") {
1017 sources = [
Dan Sinclair749abea2022-11-02 17:07:25 +00001018 "ast/address_space_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001019 "ast/alias_test.cc",
1020 "ast/array_test.cc",
1021 "ast/assignment_statement_test.cc",
1022 "ast/atomic_test.cc",
1023 "ast/binary_expression_test.cc",
1024 "ast/binding_attribute_test.cc",
1025 "ast/bitcast_expression_test.cc",
1026 "ast/block_statement_test.cc",
1027 "ast/bool_literal_expression_test.cc",
1028 "ast/bool_test.cc",
dan sinclairb8b0c212022-10-20 22:45:50 +00001029 "ast/break_if_statement_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001030 "ast/break_statement_test.cc",
1031 "ast/builtin_attribute_test.cc",
1032 "ast/builtin_texture_helper_test.cc",
1033 "ast/builtin_texture_helper_test.h",
Dan Sinclair749abea2022-11-02 17:07:25 +00001034 "ast/builtin_value_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001035 "ast/call_expression_test.cc",
1036 "ast/call_statement_test.cc",
dan sinclairf148f082022-10-19 15:55:02 +00001037 "ast/case_selector_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001038 "ast/case_statement_test.cc",
1039 "ast/compound_assignment_statement_test.cc",
1040 "ast/continue_statement_test.cc",
1041 "ast/depth_multisampled_texture_test.cc",
1042 "ast/depth_texture_test.cc",
1043 "ast/discard_statement_test.cc",
1044 "ast/enable_test.cc",
Dan Sinclair749abea2022-11-02 17:07:25 +00001045 "ast/extension_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001046 "ast/external_texture_test.cc",
1047 "ast/f16_test.cc",
1048 "ast/f32_test.cc",
1049 "ast/fallthrough_statement_test.cc",
1050 "ast/float_literal_expression_test.cc",
1051 "ast/for_loop_statement_test.cc",
1052 "ast/function_test.cc",
1053 "ast/group_attribute_test.cc",
1054 "ast/i32_test.cc",
1055 "ast/id_attribute_test.cc",
1056 "ast/identifier_expression_test.cc",
1057 "ast/if_statement_test.cc",
1058 "ast/increment_decrement_statement_test.cc",
1059 "ast/index_accessor_expression_test.cc",
1060 "ast/int_literal_expression_test.cc",
1061 "ast/interpolate_attribute_test.cc",
1062 "ast/invariant_attribute_test.cc",
1063 "ast/location_attribute_test.cc",
1064 "ast/loop_statement_test.cc",
1065 "ast/matrix_test.cc",
1066 "ast/member_accessor_expression_test.cc",
1067 "ast/module_clone_test.cc",
1068 "ast/module_test.cc",
1069 "ast/multisampled_texture_test.cc",
1070 "ast/phony_expression_test.cc",
1071 "ast/pointer_test.cc",
1072 "ast/return_statement_test.cc",
1073 "ast/sampled_texture_test.cc",
1074 "ast/sampler_test.cc",
1075 "ast/stage_attribute_test.cc",
Ben Claytonbfd1a812022-08-02 23:16:25 +00001076 "ast/static_assert_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001077 "ast/storage_texture_test.cc",
1078 "ast/stride_attribute_test.cc",
1079 "ast/struct_member_align_attribute_test.cc",
1080 "ast/struct_member_offset_attribute_test.cc",
1081 "ast/struct_member_size_attribute_test.cc",
1082 "ast/struct_member_test.cc",
1083 "ast/struct_test.cc",
1084 "ast/switch_statement_test.cc",
1085 "ast/test_helper.h",
Dan Sinclair749abea2022-11-02 17:07:25 +00001086 "ast/texel_format_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001087 "ast/texture_test.cc",
1088 "ast/traverse_expressions_test.cc",
1089 "ast/u32_test.cc",
1090 "ast/unary_op_expression_test.cc",
1091 "ast/variable_decl_statement_test.cc",
1092 "ast/variable_test.cc",
1093 "ast/vector_test.cc",
1094 "ast/while_statement_test.cc",
1095 "ast/workgroup_attribute_test.cc",
1096 ]
1097 }
1098
1099 tint_unittests_source_set("tint_unittests_diagnostic_src") {
1100 sources = [
1101 "diagnostic/diagnostic_test.cc",
1102 "diagnostic/formatter_test.cc",
1103 "diagnostic/printer_test.cc",
1104 ]
1105 }
1106
1107 tint_unittests_source_set("tint_unittests_inspector_src") {
1108 sources = [
1109 "inspector/inspector_test.cc",
1110 "inspector/test_inspector_builder.cc",
1111 "inspector/test_inspector_builder.h",
1112 "inspector/test_inspector_runner.cc",
1113 "inspector/test_inspector_runner.h",
1114 ]
1115 }
1116
1117 tint_unittests_source_set("tint_unittests_resolver_src") {
1118 sources = [
dan sinclairff7cf212022-10-03 14:05:23 +00001119 "resolver/address_space_layout_validation_test.cc",
1120 "resolver/address_space_validation_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001121 "resolver/array_accessor_test.cc",
1122 "resolver/assignment_validation_test.cc",
1123 "resolver/atomics_test.cc",
1124 "resolver/atomics_validation_test.cc",
1125 "resolver/attribute_validation_test.cc",
1126 "resolver/bitcast_validation_test.cc",
1127 "resolver/builtin_test.cc",
1128 "resolver/builtin_validation_test.cc",
1129 "resolver/builtins_validation_test.cc",
1130 "resolver/call_test.cc",
1131 "resolver/call_validation_test.cc",
1132 "resolver/compound_assignment_validation_test.cc",
1133 "resolver/compound_statement_test.cc",
Antonio Maiorano723da2a2022-10-13 19:27:30 +00001134 "resolver/const_eval_binary_op_test.cc",
1135 "resolver/const_eval_builtin_test.cc",
1136 "resolver/const_eval_construction_test.cc",
1137 "resolver/const_eval_conversion_test.cc",
1138 "resolver/const_eval_indexing_test.cc",
1139 "resolver/const_eval_member_access_test.cc",
1140 "resolver/const_eval_test.h",
1141 "resolver/const_eval_unary_op_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001142 "resolver/control_block_validation_test.cc",
1143 "resolver/dependency_graph_test.cc",
1144 "resolver/entry_point_validation_test.cc",
Ben Clayton83bd7382022-07-15 23:46:31 +00001145 "resolver/evaluation_stage_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001146 "resolver/function_validation_test.cc",
1147 "resolver/host_shareable_validation_test.cc",
1148 "resolver/increment_decrement_validation_test.cc",
Ben Clayton783b1692022-08-02 17:03:35 +00001149 "resolver/inferred_type_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001150 "resolver/intrinsic_table_test.cc",
1151 "resolver/is_host_shareable_test.cc",
1152 "resolver/is_storeable_test.cc",
1153 "resolver/materialize_test.cc",
Ben Clayton9a6acc42022-07-27 20:50:40 +00001154 "resolver/override_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001155 "resolver/ptr_ref_test.cc",
1156 "resolver/ptr_ref_validation_test.cc",
1157 "resolver/resolver_behavior_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001158 "resolver/resolver_test.cc",
1159 "resolver/resolver_test_helper.cc",
1160 "resolver/resolver_test_helper.h",
1161 "resolver/side_effects_test.cc",
1162 "resolver/source_variable_test.cc",
dan sinclair1cd47062022-08-05 14:53:47 +00001163 "resolver/static_assert_test.cc",
dan sinclairff7cf212022-10-03 14:05:23 +00001164 "resolver/struct_address_space_use_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001165 "resolver/struct_layout_test.cc",
1166 "resolver/struct_pipeline_stage_use_test.cc",
dan sinclair6e77b472022-10-20 13:38:28 +00001167 "resolver/type_initializer_validation_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001168 "resolver/type_validation_test.cc",
1169 "resolver/uniformity_test.cc",
1170 "resolver/validation_test.cc",
1171 "resolver/validator_is_storeable_test.cc",
Ben Clayton68ae36e2022-06-24 21:26:39 +00001172 "resolver/variable_test.cc",
1173 "resolver/variable_validation_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001174 ]
1175 deps = [ ":tint_unittests_ast_src" ]
1176 }
1177
1178 tint_unittests_source_set("tint_unittests_sem_src") {
1179 sources = [
Ben Claytondf3a0462022-10-17 13:24:38 +00001180 "sem/array_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001181 "sem/atomic_test.cc",
1182 "sem/bool_test.cc",
1183 "sem/builtin_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001184 "sem/depth_multisampled_texture_test.cc",
1185 "sem/depth_texture_test.cc",
1186 "sem/expression_test.cc",
1187 "sem/external_texture_test.cc",
1188 "sem/f16_test.cc",
1189 "sem/f32_test.cc",
1190 "sem/i32_test.cc",
1191 "sem/matrix_test.cc",
1192 "sem/multisampled_texture_test.cc",
1193 "sem/pointer_test.cc",
1194 "sem/reference_test.cc",
1195 "sem/sampled_texture_test.cc",
1196 "sem/sampler_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001197 "sem/storage_texture_test.cc",
Ben Claytondf3a0462022-10-17 13:24:38 +00001198 "sem/struct_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001199 "sem/texture_test.cc",
1200 "sem/type_manager_test.cc",
1201 "sem/type_test.cc",
1202 "sem/u32_test.cc",
1203 "sem/vector_test.cc",
1204 ]
1205 }
1206
1207 tint_unittests_source_set("tint_unittests_text_src") {
1208 sources = [ "text/unicode_test.cc" ]
1209 }
1210
1211 tint_unittests_source_set("tint_unittests_transform_src") {
1212 sources = [
Stephen White863d9ed2022-09-02 19:19:10 +00001213 "transform/add_block_attribute_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001214 "transform/add_empty_entry_point_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001215 "transform/array_length_from_uniform_test.cc",
1216 "transform/binding_remapper_test.cc",
1217 "transform/builtin_polyfill_test.cc",
1218 "transform/calculate_array_length_test.cc",
1219 "transform/canonicalize_entry_point_io_test.cc",
Corentin Wallez98a7cd12022-10-11 09:52:25 +00001220 "transform/clamp_frag_depth_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001221 "transform/combine_samplers_test.cc",
1222 "transform/decompose_memory_access_test.cc",
1223 "transform/decompose_strided_array_test.cc",
1224 "transform/decompose_strided_matrix_test.cc",
1225 "transform/disable_uniformity_analysis_test.cc",
1226 "transform/expand_compound_assignment_test.cc",
1227 "transform/first_index_offset_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001228 "transform/for_loop_to_loop_test.cc",
1229 "transform/localize_struct_array_assignment_test.cc",
James Price5de8b432022-10-31 14:49:03 +00001230 "transform/merge_return_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001231 "transform/module_scope_var_to_entry_point_param_test.cc",
1232 "transform/multiplanar_external_texture_test.cc",
1233 "transform/num_workgroups_from_uniform_test.cc",
Ben Claytona92f4252022-10-27 14:36:49 +00001234 "transform/packed_vec3_test.cc",
Stephen White05d8b022022-09-13 19:48:51 +00001235 "transform/pad_structs_test.cc",
Ben Clayton7ebcfc72022-06-27 20:20:25 +00001236 "transform/promote_initializers_to_let_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001237 "transform/promote_side_effects_to_decl_test.cc",
1238 "transform/remove_continue_in_switch_test.cc",
1239 "transform/remove_phonies_test.cc",
1240 "transform/remove_unreachable_statements_test.cc",
1241 "transform/renamer_test.cc",
1242 "transform/robustness_test.cc",
1243 "transform/simplify_pointers_test.cc",
1244 "transform/single_entry_point_test.cc",
Antonio Maiorano268d7b82022-06-24 22:28:23 +00001245 "transform/spirv_atomic_test.cc",
Zhaoming Jiang5cbb32d2022-10-11 07:55:00 +00001246 "transform/std140_exhaustive_test.cc",
Ben Clayton657e61d2022-09-01 22:12:19 +00001247 "transform/std140_test.cc",
dan sinclair256f1112022-07-22 16:05:06 +00001248 "transform/substitute_override_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001249 "transform/test_helper.h",
1250 "transform/transform_test.cc",
1251 "transform/unshadow_test.cc",
1252 "transform/unwind_discard_functions_test.cc",
1253 "transform/utils/get_insertion_point_test.cc",
1254 "transform/utils/hoist_to_decl_before_test.cc",
1255 "transform/var_for_dynamic_index_test.cc",
Zhaoming Jiang426b47e2022-09-01 03:08:20 +00001256 "transform/vectorize_matrix_conversions_test.cc",
dan sinclair6e77b472022-10-20 13:38:28 +00001257 "transform/vectorize_scalar_matrix_initializers_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001258 "transform/vertex_pulling_test.cc",
1259 "transform/while_to_loop_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001260 "transform/zero_init_workgroup_memory_test.cc",
1261 ]
1262 }
1263
1264 tint_unittests_source_set("tint_unittests_utils_src") {
1265 sources = [
1266 "utils/bitcast_test.cc",
Ben Claytone43034b2022-07-21 23:32:24 +00001267 "utils/bitset_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001268 "utils/crc32_test.cc",
1269 "utils/defer_test.cc",
1270 "utils/enum_set_test.cc",
1271 "utils/hash_test.cc",
Ben Claytone13160e2022-08-17 16:28:23 +00001272 "utils/hashmap_test.cc",
1273 "utils/hashset_test.cc",
dan sinclairff2cb022022-08-18 14:37:17 +00001274 "utils/io/command_test.cc",
1275 "utils/io/tmpfile_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001276 "utils/map_test.cc",
1277 "utils/math_test.cc",
1278 "utils/result_test.cc",
1279 "utils/reverse_test.cc",
1280 "utils/scoped_assignment_test.cc",
1281 "utils/string_test.cc",
1282 "utils/transform_test.cc",
1283 "utils/unique_allocator_test.cc",
1284 "utils/unique_vector_test.cc",
Ben Clayton3bc20e32022-07-21 19:34:05 +00001285 "utils/vector_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001286 ]
1287 }
1288
1289 tint_unittests_source_set("tint_unittests_writer_src") {
1290 sources = [
1291 "writer/append_vector_test.cc",
Ben Clayton1a567782022-10-14 13:38:27 +00001292 "writer/check_supported_extensions_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001293 "writer/flatten_bindings_test.cc",
1294 "writer/float_to_string_test.cc",
1295 "writer/generate_external_texture_bindings_test.cc",
1296 "writer/text_generator_test.cc",
1297 ]
1298 }
1299
1300 tint_unittests_source_set("tint_unittests_spv_reader_src") {
1301 sources = [
1302 "reader/spirv/enum_converter_test.cc",
1303 "reader/spirv/fail_stream_test.cc",
1304 "reader/spirv/function_arithmetic_test.cc",
1305 "reader/spirv/function_bit_test.cc",
1306 "reader/spirv/function_call_test.cc",
1307 "reader/spirv/function_cfg_test.cc",
1308 "reader/spirv/function_composite_test.cc",
1309 "reader/spirv/function_conversion_test.cc",
1310 "reader/spirv/function_decl_test.cc",
1311 "reader/spirv/function_glsl_std_450_test.cc",
1312 "reader/spirv/function_logical_test.cc",
1313 "reader/spirv/function_memory_test.cc",
1314 "reader/spirv/function_misc_test.cc",
1315 "reader/spirv/function_var_test.cc",
1316 "reader/spirv/namer_test.cc",
1317 "reader/spirv/parser_impl_barrier_test.cc",
1318 "reader/spirv/parser_impl_convert_member_decoration_test.cc",
1319 "reader/spirv/parser_impl_convert_type_test.cc",
1320 "reader/spirv/parser_impl_function_decl_test.cc",
1321 "reader/spirv/parser_impl_get_decorations_test.cc",
1322 "reader/spirv/parser_impl_handle_test.cc",
1323 "reader/spirv/parser_impl_import_test.cc",
1324 "reader/spirv/parser_impl_module_var_test.cc",
1325 "reader/spirv/parser_impl_named_types_test.cc",
1326 "reader/spirv/parser_impl_test.cc",
1327 "reader/spirv/parser_impl_test_helper.cc",
1328 "reader/spirv/parser_impl_test_helper.h",
1329 "reader/spirv/parser_impl_user_name_test.cc",
1330 "reader/spirv/parser_test.cc",
1331 "reader/spirv/parser_type_test.cc",
1332 "reader/spirv/spirv_tools_helpers_test.cc",
1333 "reader/spirv/spirv_tools_helpers_test.h",
1334 "reader/spirv/usage_test.cc",
1335 ]
1336
1337 deps = [ ":libtint_spv_reader_src" ]
1338 }
1339
1340 tint_unittests_source_set("tint_unittests_spv_writer_src") {
1341 sources = [
1342 "writer/spirv/binary_writer_test.cc",
1343 "writer/spirv/builder_accessor_expression_test.cc",
1344 "writer/spirv/builder_assign_test.cc",
1345 "writer/spirv/builder_binary_expression_test.cc",
1346 "writer/spirv/builder_bitcast_expression_test.cc",
1347 "writer/spirv/builder_block_test.cc",
1348 "writer/spirv/builder_builtin_test.cc",
1349 "writer/spirv/builder_builtin_texture_test.cc",
1350 "writer/spirv/builder_call_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001351 "writer/spirv/builder_discard_test.cc",
1352 "writer/spirv/builder_entry_point_test.cc",
1353 "writer/spirv/builder_format_conversion_test.cc",
1354 "writer/spirv/builder_function_attribute_test.cc",
1355 "writer/spirv/builder_function_test.cc",
1356 "writer/spirv/builder_function_variable_test.cc",
1357 "writer/spirv/builder_global_variable_test.cc",
1358 "writer/spirv/builder_ident_expression_test.cc",
1359 "writer/spirv/builder_if_test.cc",
dan sinclair6e77b472022-10-20 13:38:28 +00001360 "writer/spirv/builder_initializer_expression_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001361 "writer/spirv/builder_literal_test.cc",
1362 "writer/spirv/builder_loop_test.cc",
1363 "writer/spirv/builder_return_test.cc",
Ben Claytonb4744ac2022-08-03 07:01:08 +00001364 "writer/spirv/builder_static_assert_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001365 "writer/spirv/builder_switch_test.cc",
1366 "writer/spirv/builder_test.cc",
1367 "writer/spirv/builder_type_test.cc",
1368 "writer/spirv/builder_unary_op_expression_test.cc",
1369 "writer/spirv/instruction_test.cc",
1370 "writer/spirv/operand_test.cc",
1371 "writer/spirv/scalar_constant_test.cc",
1372 "writer/spirv/spv_dump.cc",
1373 "writer/spirv/spv_dump.h",
1374 "writer/spirv/test_helper.h",
1375 ]
1376
1377 deps = [
1378 ":libtint_spv_writer_src",
1379 ":tint_unittests_ast_src",
1380 "${tint_spirv_tools_dir}/:spvtools",
1381 ]
1382 }
1383
1384 tint_unittests_source_set("tint_unittests_wgsl_reader_src") {
1385 sources = [
1386 "reader/wgsl/lexer_test.cc",
1387 "reader/wgsl/parser_impl_additive_expression_test.cc",
dan sinclairff7cf212022-10-03 14:05:23 +00001388 "reader/wgsl/parser_impl_address_space_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001389 "reader/wgsl/parser_impl_argument_expression_list_test.cc",
1390 "reader/wgsl/parser_impl_assignment_stmt_test.cc",
dan sinclairff2cb022022-08-18 14:37:17 +00001391 "reader/wgsl/parser_impl_bitwise_expression_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001392 "reader/wgsl/parser_impl_break_stmt_test.cc",
1393 "reader/wgsl/parser_impl_bug_cases_test.cc",
1394 "reader/wgsl/parser_impl_call_stmt_test.cc",
dan sinclair393de082022-08-22 16:15:04 +00001395 "reader/wgsl/parser_impl_callable_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001396 "reader/wgsl/parser_impl_case_body_test.cc",
dan sinclair1cd47062022-08-05 14:53:47 +00001397 "reader/wgsl/parser_impl_compound_stmt_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001398 "reader/wgsl/parser_impl_const_literal_test.cc",
1399 "reader/wgsl/parser_impl_continue_stmt_test.cc",
1400 "reader/wgsl/parser_impl_continuing_stmt_test.cc",
dan sinclair6c8dc152022-08-17 16:30:30 +00001401 "reader/wgsl/parser_impl_core_lhs_expression_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001402 "reader/wgsl/parser_impl_depth_texture_test.cc",
dan sinclair2788bec2022-08-19 21:26:01 +00001403 "reader/wgsl/parser_impl_element_count_expression_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001404 "reader/wgsl/parser_impl_enable_directive_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001405 "reader/wgsl/parser_impl_error_msg_test.cc",
1406 "reader/wgsl/parser_impl_error_resync_test.cc",
dan sinclairee255862022-08-22 14:06:44 +00001407 "reader/wgsl/parser_impl_expression_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001408 "reader/wgsl/parser_impl_external_texture_test.cc",
1409 "reader/wgsl/parser_impl_for_stmt_test.cc",
1410 "reader/wgsl/parser_impl_function_attribute_list_test.cc",
1411 "reader/wgsl/parser_impl_function_attribute_test.cc",
1412 "reader/wgsl/parser_impl_function_decl_test.cc",
1413 "reader/wgsl/parser_impl_function_header_test.cc",
1414 "reader/wgsl/parser_impl_global_constant_decl_test.cc",
1415 "reader/wgsl/parser_impl_global_decl_test.cc",
1416 "reader/wgsl/parser_impl_global_variable_decl_test.cc",
1417 "reader/wgsl/parser_impl_if_stmt_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001418 "reader/wgsl/parser_impl_increment_decrement_stmt_test.cc",
dan sinclair6c8dc152022-08-17 16:30:30 +00001419 "reader/wgsl/parser_impl_lhs_expression_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001420 "reader/wgsl/parser_impl_loop_stmt_test.cc",
dan sinclair2788bec2022-08-19 21:26:01 +00001421 "reader/wgsl/parser_impl_math_expression_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001422 "reader/wgsl/parser_impl_multiplicative_expression_test.cc",
1423 "reader/wgsl/parser_impl_param_list_test.cc",
dan sinclair05288f62022-07-22 16:07:36 +00001424 "reader/wgsl/parser_impl_paren_expression_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001425 "reader/wgsl/parser_impl_pipeline_stage_test.cc",
1426 "reader/wgsl/parser_impl_primary_expression_test.cc",
1427 "reader/wgsl/parser_impl_relational_expression_test.cc",
1428 "reader/wgsl/parser_impl_reserved_keyword_test.cc",
1429 "reader/wgsl/parser_impl_sampled_texture_test.cc",
1430 "reader/wgsl/parser_impl_sampler_test.cc",
1431 "reader/wgsl/parser_impl_shift_expression_test.cc",
1432 "reader/wgsl/parser_impl_singular_expression_test.cc",
1433 "reader/wgsl/parser_impl_statement_test.cc",
1434 "reader/wgsl/parser_impl_statements_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001435 "reader/wgsl/parser_impl_storage_texture_test.cc",
1436 "reader/wgsl/parser_impl_struct_attribute_decl_test.cc",
1437 "reader/wgsl/parser_impl_struct_body_decl_test.cc",
1438 "reader/wgsl/parser_impl_struct_decl_test.cc",
1439 "reader/wgsl/parser_impl_struct_member_attribute_decl_test.cc",
1440 "reader/wgsl/parser_impl_struct_member_attribute_test.cc",
1441 "reader/wgsl/parser_impl_struct_member_test.cc",
1442 "reader/wgsl/parser_impl_switch_body_test.cc",
1443 "reader/wgsl/parser_impl_switch_stmt_test.cc",
1444 "reader/wgsl/parser_impl_test.cc",
1445 "reader/wgsl/parser_impl_test_helper.cc",
1446 "reader/wgsl/parser_impl_test_helper.h",
1447 "reader/wgsl/parser_impl_texel_format_test.cc",
1448 "reader/wgsl/parser_impl_texture_sampler_test.cc",
1449 "reader/wgsl/parser_impl_type_alias_test.cc",
1450 "reader/wgsl/parser_impl_type_decl_test.cc",
dan sinclair393de082022-08-22 16:15:04 +00001451 "reader/wgsl/parser_impl_type_decl_without_ident_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001452 "reader/wgsl/parser_impl_unary_expression_test.cc",
1453 "reader/wgsl/parser_impl_variable_attribute_list_test.cc",
1454 "reader/wgsl/parser_impl_variable_attribute_test.cc",
1455 "reader/wgsl/parser_impl_variable_decl_test.cc",
1456 "reader/wgsl/parser_impl_variable_ident_decl_test.cc",
1457 "reader/wgsl/parser_impl_variable_qualifier_test.cc",
1458 "reader/wgsl/parser_impl_variable_stmt_test.cc",
dan sinclair393de082022-08-22 16:15:04 +00001459 "reader/wgsl/parser_impl_vec_mat_prefix_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001460 "reader/wgsl/parser_impl_while_stmt_test.cc",
1461 "reader/wgsl/parser_test.cc",
1462 "reader/wgsl/token_test.cc",
1463 ]
1464
1465 deps = [ ":libtint_wgsl_reader_src" ]
1466 }
1467
1468 tint_unittests_source_set("tint_unittests_wgsl_writer_src") {
1469 sources = [
1470 "writer/wgsl/generator_impl_alias_type_test.cc",
1471 "writer/wgsl/generator_impl_array_accessor_test.cc",
1472 "writer/wgsl/generator_impl_assign_test.cc",
1473 "writer/wgsl/generator_impl_binary_test.cc",
1474 "writer/wgsl/generator_impl_bitcast_test.cc",
1475 "writer/wgsl/generator_impl_block_test.cc",
1476 "writer/wgsl/generator_impl_break_test.cc",
1477 "writer/wgsl/generator_impl_call_test.cc",
1478 "writer/wgsl/generator_impl_case_test.cc",
1479 "writer/wgsl/generator_impl_cast_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001480 "writer/wgsl/generator_impl_continue_test.cc",
1481 "writer/wgsl/generator_impl_discard_test.cc",
1482 "writer/wgsl/generator_impl_enable_test.cc",
1483 "writer/wgsl/generator_impl_fallthrough_test.cc",
1484 "writer/wgsl/generator_impl_function_test.cc",
1485 "writer/wgsl/generator_impl_global_decl_test.cc",
1486 "writer/wgsl/generator_impl_identifier_test.cc",
1487 "writer/wgsl/generator_impl_if_test.cc",
dan sinclair6e77b472022-10-20 13:38:28 +00001488 "writer/wgsl/generator_impl_initializer_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001489 "writer/wgsl/generator_impl_literal_test.cc",
1490 "writer/wgsl/generator_impl_loop_test.cc",
1491 "writer/wgsl/generator_impl_member_accessor_test.cc",
1492 "writer/wgsl/generator_impl_return_test.cc",
Ben Claytonb4744ac2022-08-03 07:01:08 +00001493 "writer/wgsl/generator_impl_static_assert_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001494 "writer/wgsl/generator_impl_switch_test.cc",
1495 "writer/wgsl/generator_impl_test.cc",
1496 "writer/wgsl/generator_impl_type_test.cc",
1497 "writer/wgsl/generator_impl_unary_op_test.cc",
1498 "writer/wgsl/generator_impl_variable_decl_statement_test.cc",
1499 "writer/wgsl/generator_impl_variable_test.cc",
1500 "writer/wgsl/test_helper.h",
1501 ]
1502
1503 deps = [
1504 ":libtint_wgsl_writer_src",
1505 ":tint_unittests_ast_src",
1506 ]
1507 }
1508
1509 tint_unittests_source_set("tint_unittests_msl_writer_src") {
1510 sources = [
1511 "writer/msl/generator_impl_array_accessor_test.cc",
1512 "writer/msl/generator_impl_assign_test.cc",
1513 "writer/msl/generator_impl_binary_test.cc",
1514 "writer/msl/generator_impl_bitcast_test.cc",
1515 "writer/msl/generator_impl_block_test.cc",
1516 "writer/msl/generator_impl_break_test.cc",
1517 "writer/msl/generator_impl_builtin_test.cc",
1518 "writer/msl/generator_impl_builtin_texture_test.cc",
1519 "writer/msl/generator_impl_call_test.cc",
1520 "writer/msl/generator_impl_case_test.cc",
1521 "writer/msl/generator_impl_cast_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001522 "writer/msl/generator_impl_continue_test.cc",
1523 "writer/msl/generator_impl_discard_test.cc",
1524 "writer/msl/generator_impl_function_test.cc",
1525 "writer/msl/generator_impl_identifier_test.cc",
1526 "writer/msl/generator_impl_if_test.cc",
1527 "writer/msl/generator_impl_import_test.cc",
dan sinclair6e77b472022-10-20 13:38:28 +00001528 "writer/msl/generator_impl_initializer_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001529 "writer/msl/generator_impl_loop_test.cc",
1530 "writer/msl/generator_impl_member_accessor_test.cc",
1531 "writer/msl/generator_impl_module_constant_test.cc",
1532 "writer/msl/generator_impl_return_test.cc",
1533 "writer/msl/generator_impl_sanitizer_test.cc",
Ben Claytonb4744ac2022-08-03 07:01:08 +00001534 "writer/msl/generator_impl_static_assert_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001535 "writer/msl/generator_impl_switch_test.cc",
1536 "writer/msl/generator_impl_test.cc",
1537 "writer/msl/generator_impl_type_test.cc",
1538 "writer/msl/generator_impl_unary_op_test.cc",
1539 "writer/msl/generator_impl_variable_decl_statement_test.cc",
1540 "writer/msl/test_helper.h",
1541 ]
1542
1543 deps = [
1544 ":libtint_msl_writer_src",
1545 ":tint_unittests_ast_src",
1546 ]
1547 }
1548
1549 tint_unittests_source_set("tint_unittests_hlsl_writer_src") {
1550 sources = [
1551 "writer/hlsl/generator_impl_array_accessor_test.cc",
1552 "writer/hlsl/generator_impl_assign_test.cc",
1553 "writer/hlsl/generator_impl_binary_test.cc",
1554 "writer/hlsl/generator_impl_bitcast_test.cc",
1555 "writer/hlsl/generator_impl_block_test.cc",
1556 "writer/hlsl/generator_impl_break_test.cc",
1557 "writer/hlsl/generator_impl_builtin_test.cc",
1558 "writer/hlsl/generator_impl_builtin_texture_test.cc",
1559 "writer/hlsl/generator_impl_call_test.cc",
1560 "writer/hlsl/generator_impl_case_test.cc",
1561 "writer/hlsl/generator_impl_cast_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001562 "writer/hlsl/generator_impl_continue_test.cc",
1563 "writer/hlsl/generator_impl_discard_test.cc",
1564 "writer/hlsl/generator_impl_function_test.cc",
1565 "writer/hlsl/generator_impl_identifier_test.cc",
1566 "writer/hlsl/generator_impl_if_test.cc",
1567 "writer/hlsl/generator_impl_import_test.cc",
dan sinclair6e77b472022-10-20 13:38:28 +00001568 "writer/hlsl/generator_impl_initializer_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001569 "writer/hlsl/generator_impl_loop_test.cc",
1570 "writer/hlsl/generator_impl_member_accessor_test.cc",
1571 "writer/hlsl/generator_impl_module_constant_test.cc",
1572 "writer/hlsl/generator_impl_return_test.cc",
1573 "writer/hlsl/generator_impl_sanitizer_test.cc",
Ben Claytonb4744ac2022-08-03 07:01:08 +00001574 "writer/hlsl/generator_impl_static_assert_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001575 "writer/hlsl/generator_impl_switch_test.cc",
1576 "writer/hlsl/generator_impl_test.cc",
1577 "writer/hlsl/generator_impl_type_test.cc",
1578 "writer/hlsl/generator_impl_unary_op_test.cc",
1579 "writer/hlsl/generator_impl_variable_decl_statement_test.cc",
1580 "writer/hlsl/generator_impl_workgroup_var_test.cc",
1581 "writer/hlsl/test_helper.h",
1582 ]
1583
1584 deps = [
1585 ":libtint_hlsl_writer_src",
1586 ":tint_unittests_ast_src",
1587 ]
1588 }
1589
1590 tint_unittests_source_set("tint_unittests_glsl_writer_src") {
1591 sources = [
1592 "writer/glsl/generator_impl_array_accessor_test.cc",
1593 "writer/glsl/generator_impl_assign_test.cc",
1594 "writer/glsl/generator_impl_binary_test.cc",
1595 "writer/glsl/generator_impl_bitcast_test.cc",
1596 "writer/glsl/generator_impl_block_test.cc",
1597 "writer/glsl/generator_impl_break_test.cc",
1598 "writer/glsl/generator_impl_builtin_test.cc",
1599 "writer/glsl/generator_impl_builtin_texture_test.cc",
1600 "writer/glsl/generator_impl_call_test.cc",
1601 "writer/glsl/generator_impl_case_test.cc",
1602 "writer/glsl/generator_impl_cast_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001603 "writer/glsl/generator_impl_continue_test.cc",
1604 "writer/glsl/generator_impl_discard_test.cc",
1605 "writer/glsl/generator_impl_function_test.cc",
1606 "writer/glsl/generator_impl_identifier_test.cc",
1607 "writer/glsl/generator_impl_if_test.cc",
1608 "writer/glsl/generator_impl_import_test.cc",
dan sinclair6e77b472022-10-20 13:38:28 +00001609 "writer/glsl/generator_impl_initializer_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001610 "writer/glsl/generator_impl_loop_test.cc",
1611 "writer/glsl/generator_impl_member_accessor_test.cc",
1612 "writer/glsl/generator_impl_module_constant_test.cc",
1613 "writer/glsl/generator_impl_return_test.cc",
1614 "writer/glsl/generator_impl_sanitizer_test.cc",
1615 "writer/glsl/generator_impl_storage_buffer_test.cc",
1616 "writer/glsl/generator_impl_switch_test.cc",
1617 "writer/glsl/generator_impl_test.cc",
1618 "writer/glsl/generator_impl_type_test.cc",
1619 "writer/glsl/generator_impl_unary_op_test.cc",
1620 "writer/glsl/generator_impl_uniform_buffer_test.cc",
1621 "writer/glsl/generator_impl_variable_decl_statement_test.cc",
1622 "writer/glsl/generator_impl_workgroup_var_test.cc",
1623 "writer/glsl/test_helper.h",
1624 ]
1625
1626 deps = [
1627 ":libtint_glsl_writer_src",
1628 ":tint_unittests_ast_src",
1629 ":tint_unittests_transform_src",
1630 ]
1631 }
1632
1633 tint_unittests_source_set("tint_unittests_core_src") {
1634 sources = [
1635 "castable_test.cc",
1636 "clone_context_test.cc",
1637 "debug_test.cc",
1638 "demangler_test.cc",
1639 "number_test.cc",
1640 "program_builder_test.cc",
1641 "program_test.cc",
Ben Clayton648bd7b2022-09-02 11:40:19 +00001642 "reflection_test.cc",
dan sinclair77bf2332022-06-22 12:40:43 +00001643 "scope_stack_test.cc",
1644 "source_test.cc",
1645 "symbol_table_test.cc",
1646 "symbol_test.cc",
1647 "traits_test.cc",
1648 "utils/block_allocator_test.cc",
1649 ]
1650
1651 deps = [ ":tint_unittests_ast_src" ]
1652 }
1653
1654 if (build_with_chromium) {
1655 tint_unittests_source_set("tint_unittests_fuzzer_src") {
1656 sources = [ "fuzzers/random_generator_test.cc" ]
1657
1658 deps = [
1659 ":tint_unittests_core_src",
1660 "fuzzers:tint_fuzzer_common_src",
1661 ]
1662 }
1663 }
1664
1665 source_set("tint_unittests_src") {
1666 testonly = true
1667
1668 deps = [
1669 ":libtint_wgsl_reader_src",
1670 ":libtint_wgsl_writer_src",
1671 ":tint_unittests_ast_src",
1672 ":tint_unittests_core_src",
1673 ":tint_unittests_diagnostic_src",
1674 ":tint_unittests_inspector_src",
1675 ":tint_unittests_resolver_src",
1676 ":tint_unittests_sem_src",
1677 ":tint_unittests_text_src",
1678 ":tint_unittests_transform_src",
1679 ":tint_unittests_utils_src",
1680 ":tint_unittests_writer_src",
1681 ]
1682
1683 if (tint_build_spv_reader) {
1684 deps += [ ":tint_unittests_spv_reader_src" ]
1685 }
1686
1687 if (tint_build_spv_writer) {
1688 deps += [ ":tint_unittests_spv_writer_src" ]
1689 }
1690
1691 if (tint_build_wgsl_reader) {
1692 deps += [ ":tint_unittests_wgsl_reader_src" ]
1693 }
1694
1695 if (tint_build_wgsl_writer) {
1696 deps += [ ":tint_unittests_wgsl_writer_src" ]
1697 }
1698
1699 if (tint_build_msl_writer) {
1700 deps += [ ":tint_unittests_msl_writer_src" ]
1701 }
1702
1703 if (tint_build_hlsl_writer) {
1704 deps += [ ":tint_unittests_hlsl_writer_src" ]
1705 }
1706
1707 if (tint_build_glsl_writer) {
1708 deps += [ ":tint_unittests_glsl_writer_src" ]
1709 }
1710
1711 if (build_with_chromium) {
1712 deps += [ ":tint_unittests_fuzzer_src" ]
1713 }
1714
dan sinclair889a4992022-06-17 13:01:59 +00001715 configs += [ ":tint_unittests_config" ]
dan sinclair77bf2332022-06-22 12:40:43 +00001716
1717 if (build_with_chromium) {
1718 configs -= [ "//build/config/compiler:chromium_code" ]
1719 configs += [ "//build/config/compiler:no_chromium_code" ]
1720 }
1721 }
1722
1723 test("tint_unittests") {
1724 deps = [
1725 ":gmock_and_gtest",
1726 ":tint_unittests_src",
1727 "${tint_spirv_tools_dir}/:spvtools",
1728 "${tint_spirv_tools_dir}/:spvtools_opt",
1729 "${tint_spirv_tools_dir}/:spvtools_val",
1730 ]
1731
1732 deps += [ ":tint_unittests_main" ]
1733
1734 configs += [ ":tint_unittests_config" ]
1735
dan sinclair889a4992022-06-17 13:01:59 +00001736 if (build_with_chromium) {
1737 configs -= [ "//build/config/compiler:chromium_code" ]
1738 configs += [ "//build/config/compiler:no_chromium_code" ]
1739 }
1740
1741 testonly = true
dan sinclair889a4992022-06-17 13:01:59 +00001742 }
1743}