blob: ebf53627777da2d185faa015f99d449c28389c2f [file] [log] [blame]
Ryan Harrison29628882020-04-08 20:40:25 +00001# Copyright 2020 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")
Ryan Harrison0a196c12020-04-17 13:18:20 +000016import("//testing/test.gni")
Ryan Harrisond1cf8a82020-04-15 20:35:38 +000017import("tint_overrides_with_defaults.gni")
Ryan Harrison29628882020-04-08 20:40:25 +000018
Ryan Harrison0a196c12020-04-17 13:18:20 +000019###############################################################################
20# Common - Configs, etc. shared across targets
21###############################################################################
22
Ryan Harrison29628882020-04-08 20:40:25 +000023config("tint_common_config") {
Ryan Harrisonb8f49302020-06-16 17:26:59 +000024 include_dirs = [
25 "${target_gen_dir}",
26 "${tint_root_dir}/",
27 "${tint_spirv_headers_dir}/include",
28 "${tint_spirv_tools_dir}/",
29 "${tint_spirv_tools_dir}/include",
30 ]
31}
32
33config("tint_public_config") {
Ryan Harrison29628882020-04-08 20:40:25 +000034 defines = []
Ryan Harrisond1cf8a82020-04-15 20:35:38 +000035 if (tint_build_spv_reader) {
36 defines += [ "TINT_BUILD_SPV_READER=1" ]
37 } else {
38 defines += [ "TINT_BUILD_SPV_READER=0" ]
39 }
Ryan Harrison2b45a522020-04-15 20:37:02 +000040
41 if (tint_build_spv_writer) {
42 defines += [ "TINT_BUILD_SPV_WRITER=1" ]
43 } else {
44 defines += [ "TINT_BUILD_SPV_WRITER=0" ]
45 }
Ryan Harrison0caab672020-04-15 20:47:55 +000046
47 if (tint_build_wgsl_reader) {
48 defines += [ "TINT_BUILD_WGSL_READER=1" ]
49 } else {
50 defines += [ "TINT_BUILD_WGSL_READER=0" ]
51 }
Ryan Harrison460345d2020-04-15 20:54:10 +000052
53 if (tint_build_wgsl_writer) {
54 defines += [ "TINT_BUILD_WGSL_WRITER=1" ]
55 } else {
56 defines += [ "TINT_BUILD_WGSL_WRITER=0" ]
57 }
Ryan Harrisond34b2102020-04-27 15:31:27 +000058
dan sinclair2a599012020-06-23 17:48:40 +000059 if (tint_build_msl_writer) {
60 defines += [ "TINT_BUILD_MSL_WRITER=1" ]
61 } else {
62 defines += [ "TINT_BUILD_MSL_WRITER=0" ]
63 }
64
dan sinclairfeffa9d2020-07-20 22:13:37 +000065 if (tint_build_hlsl_writer) {
66 defines += [ "TINT_BUILD_HLSL_WRITER=1" ]
67 } else {
68 defines += [ "TINT_BUILD_HLSL_WRITER=0" ]
69 }
70
Ryan Harrisond34b2102020-04-27 15:31:27 +000071 include_dirs = [
Ryan Harrisond34b2102020-04-27 15:31:27 +000072 "${tint_root_dir}/",
Ryan Harrisonb8f49302020-06-16 17:26:59 +000073 "${tint_root_dir}/include/",
Ryan Harrison464928e2020-09-01 21:29:06 +000074 "${tint_spirv_headers_dir}/include",
Ryan Harrisond34b2102020-04-27 15:31:27 +000075 ]
76}
77
78###############################################################################
79# Generated - Generated source files
80###############################################################################
81# These are copies of rules from SPIRV-Tools with the names tweaked to be Tint
82# specific. They are needed here because referencing generated files in sibling
83# packages is difficult/impossible in Chromium. Parts of Tint's SPIRV handling
84# code depend on internal parts of SPIRV-Tools. This causes issues because when
85# Tint references the internal headers, since it causes a dependency on these
86# generated files, but they are not visible in the context building Tint. Thus
87# Tint generates its own copy of the generated files. Since they come from the
88# same source of truth, they should not vary.
89
90template("tint_core_tables") {
91 assert(defined(invoker.version), "Need version in $target_name generation.")
92
93 action("tint_core_tables_" + target_name) {
94 script = "${tint_spirv_tools_dir}/utils/generate_grammar_tables.py"
95
96 version = invoker.version
97
98 core_json_file = "${tint_spirv_headers_dir}/include/spirv/$version/spirv.core.grammar.json"
99 core_insts_file = "${target_gen_dir}/core.insts-$version.inc"
100 operand_kinds_file = "${target_gen_dir}/operand.kinds-$version.inc"
Ryan Harrisonf18d7372020-08-04 17:56:27 +0000101 debuginfo_insts_file = "${tint_spirv_headers_dir}/include/spirv/unified1/extinst.debuginfo.grammar.json"
102 cldebuginfo100_insts_file = "${tint_spirv_headers_dir}/include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json"
Ryan Harrisond34b2102020-04-27 15:31:27 +0000103
104 sources = [
105 cldebuginfo100_insts_file,
106 core_json_file,
107 debuginfo_insts_file,
108 ]
109 outputs = [
110 core_insts_file,
111 operand_kinds_file,
112 ]
113 args = [
114 "--spirv-core-grammar",
115 rebase_path(core_json_file, root_build_dir),
116 "--core-insts-output",
117 rebase_path(core_insts_file, root_build_dir),
118 "--extinst-debuginfo-grammar",
119 rebase_path(debuginfo_insts_file, root_build_dir),
120 "--extinst-cldebuginfo100-grammar",
121 rebase_path(cldebuginfo100_insts_file, root_build_dir),
122 "--operand-kinds-output",
123 rebase_path(operand_kinds_file, root_build_dir),
124 ]
125 }
126}
127
128template("tint_core_enums") {
129 assert(defined(invoker.version), "Need version in $target_name generation.")
130
131 action("tint_core_enums_" + target_name) {
132 script = "${tint_spirv_tools_dir}/utils/generate_grammar_tables.py"
133
134 version = invoker.version
135
136 core_json_file = "${tint_spirv_headers_dir}/include/spirv/$version/spirv.core.grammar.json"
Ryan Harrisonf18d7372020-08-04 17:56:27 +0000137 debuginfo_insts_file = "${tint_spirv_headers_dir}/include/spirv/unified1/extinst.debuginfo.grammar.json"
138 cldebuginfo100_insts_file = "${tint_spirv_headers_dir}/include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json"
Ryan Harrisond34b2102020-04-27 15:31:27 +0000139
140 extension_enum_file = "${target_gen_dir}/extension_enum.inc"
141 extension_map_file = "${target_gen_dir}/enum_string_mapping.inc"
142
143 args = [
144 "--spirv-core-grammar",
145 rebase_path(core_json_file, root_build_dir),
146 "--extinst-debuginfo-grammar",
147 rebase_path(debuginfo_insts_file, root_build_dir),
148 "--extinst-cldebuginfo100-grammar",
149 rebase_path(cldebuginfo100_insts_file, root_build_dir),
150 "--extension-enum-output",
151 rebase_path(extension_enum_file, root_build_dir),
152 "--enum-string-mapping-output",
153 rebase_path(extension_map_file, root_build_dir),
154 ]
155 inputs = [
156 core_json_file,
157 debuginfo_insts_file,
158 cldebuginfo100_insts_file,
159 ]
160 outputs = [
161 extension_enum_file,
162 extension_map_file,
163 ]
164 }
165}
166
167template("tint_language_header") {
168 assert(defined(invoker.name), "Need name in $target_name generation.")
169
170 action("tint_language_header_" + target_name) {
171 script = "${tint_spirv_tools_dir}/utils/generate_language_headers.py"
172
173 name = invoker.name
174 extinst_output_path = "${target_gen_dir}/${name}.h"
175
176 args = [
177 "--extinst-grammar",
178 rebase_path(invoker.grammar_file, root_build_dir),
179 "--extinst-output-path",
180 rebase_path(extinst_output_path, root_build_dir),
181 ]
182 inputs = [ invoker.grammar_file ]
183 outputs = [ "${extinst_output_path}" ]
184 }
185}
186
187tint_core_tables("unified1") {
188 version = "unified1"
189}
190
191tint_core_enums("unified1") {
192 version = "unified1"
193}
194
195tint_language_header("debuginfo") {
196 name = "DebugInfo"
Ryan Harrisonf18d7372020-08-04 17:56:27 +0000197 grammar_file = "${tint_spirv_headers_dir}/include/spirv/unified1/extinst.debuginfo.grammar.json"
Ryan Harrisond34b2102020-04-27 15:31:27 +0000198}
199
200tint_language_header("cldebuginfo100") {
201 name = "OpenCLDebugInfo100"
Ryan Harrisonf18d7372020-08-04 17:56:27 +0000202 grammar_file = "${tint_spirv_headers_dir}/include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json"
Ryan Harrison29628882020-04-08 20:40:25 +0000203}
204
Ryan Harrison0a196c12020-04-17 13:18:20 +0000205###############################################################################
206# Library - Tint core and optional modules of libtint
207###############################################################################
208# libtint source sets are divided into a non-optional core in :libtint_core_src
209# and optional :libtint_*_src subsets, because ninja does not like having
210# multiple source files with the same name, like function.cc, in the same
211# source set
212# target.
Ryan Harrisond1cf8a82020-04-15 20:35:38 +0000213#
Ryan Harrison0a196c12020-04-17 13:18:20 +0000214# Targets that want to use tint as a library should depend on ":libtint" and
215# use the build flags to control what is included, instead of trying to specify
216# the subsets that they want.
Ryan Harrisond1cf8a82020-04-15 20:35:38 +0000217
Ryan Harrison0a196c12020-04-17 13:18:20 +0000218source_set("libtint_core_src") {
Ryan Harrison29628882020-04-08 20:40:25 +0000219 sources = [
dan sinclairc55fc392020-10-29 13:36:32 +0000220 "src/ast/access_control.cc",
221 "src/ast/access_control.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000222 "src/ast/array_accessor_expression.cc",
223 "src/ast/array_accessor_expression.h",
dan sinclaireb5d3e12020-10-08 19:34:25 +0000224 "src/ast/array_decoration.cc",
225 "src/ast/array_decoration.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000226 "src/ast/assignment_statement.cc",
227 "src/ast/assignment_statement.h",
228 "src/ast/binary_expression.cc",
229 "src/ast/binary_expression.h",
230 "src/ast/binding_decoration.cc",
231 "src/ast/binding_decoration.h",
dan sinclaira7d498e2020-09-22 22:07:13 +0000232 "src/ast/bitcast_expression.cc",
233 "src/ast/bitcast_expression.h",
dan sinclair775cb512020-07-27 15:25:00 +0000234 "src/ast/block_statement.cc",
235 "src/ast/block_statement.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000236 "src/ast/bool_literal.cc",
Ryan Harrison4d32be42020-04-09 18:52:06 +0000237 "src/ast/bool_literal.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000238 "src/ast/break_statement.cc",
239 "src/ast/break_statement.h",
dan sinclair20a8d312020-11-12 19:49:10 +0000240 "src/ast/builder.cc",
241 "src/ast/builder.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000242 "src/ast/builtin.cc",
243 "src/ast/builtin.h",
244 "src/ast/builtin_decoration.cc",
245 "src/ast/builtin_decoration.h",
246 "src/ast/call_expression.cc",
247 "src/ast/call_expression.h",
dan sinclair2e404912020-07-21 13:42:05 +0000248 "src/ast/call_statement.cc",
249 "src/ast/call_statement.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000250 "src/ast/case_statement.cc",
251 "src/ast/case_statement.h",
dan sinclair9e7f9dc2020-09-29 18:07:50 +0000252 "src/ast/constant_id_decoration.cc",
253 "src/ast/constant_id_decoration.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000254 "src/ast/constructor_expression.cc",
255 "src/ast/constructor_expression.h",
256 "src/ast/continue_statement.cc",
257 "src/ast/continue_statement.h",
258 "src/ast/decorated_variable.cc",
259 "src/ast/decorated_variable.h",
Ben Clayton35298802020-11-03 21:40:20 +0000260 "src/ast/decoration.cc",
261 "src/ast/decoration.h",
Idan Raitere018cef2020-07-28 15:04:07 +0000262 "src/ast/discard_statement.cc",
263 "src/ast/discard_statement.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000264 "src/ast/else_statement.cc",
265 "src/ast/else_statement.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000266 "src/ast/expression.cc",
267 "src/ast/expression.h",
268 "src/ast/fallthrough_statement.cc",
269 "src/ast/fallthrough_statement.h",
270 "src/ast/float_literal.cc",
271 "src/ast/float_literal.h",
272 "src/ast/function.cc",
273 "src/ast/function.h",
dan sinclair636d5882020-09-20 19:18:58 +0000274 "src/ast/function_decoration.cc",
275 "src/ast/function_decoration.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000276 "src/ast/identifier_expression.cc",
277 "src/ast/identifier_expression.h",
278 "src/ast/if_statement.cc",
279 "src/ast/if_statement.h",
dan sinclaire009c202020-06-02 20:11:54 +0000280 "src/ast/int_literal.cc",
281 "src/ast/int_literal.h",
dan sinclair3e7dc822020-06-04 17:05:35 +0000282 "src/ast/intrinsic.cc",
283 "src/ast/intrinsic.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000284 "src/ast/literal.cc",
Ryan Harrison4d32be42020-04-09 18:52:06 +0000285 "src/ast/literal.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000286 "src/ast/location_decoration.cc",
287 "src/ast/location_decoration.h",
288 "src/ast/loop_statement.cc",
289 "src/ast/loop_statement.h",
290 "src/ast/member_accessor_expression.cc",
291 "src/ast/member_accessor_expression.h",
292 "src/ast/module.cc",
293 "src/ast/module.h",
294 "src/ast/node.cc",
295 "src/ast/node.h",
dan sinclair2287f332020-05-05 14:21:19 +0000296 "src/ast/null_literal.cc",
297 "src/ast/null_literal.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000298 "src/ast/pipeline_stage.cc",
299 "src/ast/pipeline_stage.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000300 "src/ast/return_statement.cc",
301 "src/ast/return_statement.h",
302 "src/ast/scalar_constructor_expression.cc",
303 "src/ast/scalar_constructor_expression.h",
304 "src/ast/set_decoration.cc",
305 "src/ast/set_decoration.h",
dan sinclairc6f29472020-06-02 20:11:44 +0000306 "src/ast/sint_literal.cc",
307 "src/ast/sint_literal.h",
dan sinclair767ea852020-09-21 17:42:10 +0000308 "src/ast/stage_decoration.cc",
309 "src/ast/stage_decoration.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000310 "src/ast/statement.cc",
311 "src/ast/statement.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000312 "src/ast/storage_class.cc",
313 "src/ast/storage_class.h",
dan sinclaireb5d3e12020-10-08 19:34:25 +0000314 "src/ast/stride_decoration.cc",
315 "src/ast/stride_decoration.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000316 "src/ast/struct.cc",
317 "src/ast/struct.h",
Ben Clayton35298802020-11-03 21:40:20 +0000318 "src/ast/struct_block_decoration.cc",
319 "src/ast/struct_block_decoration.h",
Ryan Harrison4d32be42020-04-09 18:52:06 +0000320 "src/ast/struct_decoration.cc",
321 "src/ast/struct_decoration.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000322 "src/ast/struct_member.cc",
323 "src/ast/struct_member.h",
324 "src/ast/struct_member_decoration.cc",
325 "src/ast/struct_member_decoration.h",
326 "src/ast/struct_member_offset_decoration.cc",
327 "src/ast/struct_member_offset_decoration.h",
328 "src/ast/switch_statement.cc",
329 "src/ast/switch_statement.h",
dan sinclairbfd81092020-10-27 18:50:59 +0000330 "src/ast/type/access_control_type.cc",
331 "src/ast/type/access_control_type.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000332 "src/ast/type/alias_type.cc",
333 "src/ast/type/alias_type.h",
334 "src/ast/type/array_type.cc",
335 "src/ast/type/array_type.h",
336 "src/ast/type/bool_type.cc",
337 "src/ast/type/bool_type.h",
dan sinclair3125a8d2020-07-30 23:26:28 +0000338 "src/ast/type/depth_texture_type.cc",
339 "src/ast/type/depth_texture_type.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000340 "src/ast/type/f32_type.cc",
341 "src/ast/type/f32_type.h",
342 "src/ast/type/i32_type.cc",
343 "src/ast/type/i32_type.h",
344 "src/ast/type/matrix_type.cc",
345 "src/ast/type/matrix_type.h",
dan sinclaird3f75ca2020-09-17 03:53:04 +0000346 "src/ast/type/multisampled_texture_type.cc",
347 "src/ast/type/multisampled_texture_type.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000348 "src/ast/type/pointer_type.cc",
349 "src/ast/type/pointer_type.h",
dan sinclair3125a8d2020-07-30 23:26:28 +0000350 "src/ast/type/sampled_texture_type.cc",
351 "src/ast/type/sampled_texture_type.h",
dan sinclairfe8c59a2020-07-30 22:27:25 +0000352 "src/ast/type/sampler_type.cc",
353 "src/ast/type/sampler_type.h",
dan sinclair3125a8d2020-07-30 23:26:28 +0000354 "src/ast/type/storage_texture_type.cc",
355 "src/ast/type/storage_texture_type.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000356 "src/ast/type/struct_type.cc",
357 "src/ast/type/struct_type.h",
dan sinclair3125a8d2020-07-30 23:26:28 +0000358 "src/ast/type/texture_type.cc",
359 "src/ast/type/texture_type.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000360 "src/ast/type/type.cc",
361 "src/ast/type/type.h",
362 "src/ast/type/u32_type.cc",
363 "src/ast/type/u32_type.h",
364 "src/ast/type/vector_type.cc",
365 "src/ast/type/vector_type.h",
366 "src/ast/type/void_type.cc",
367 "src/ast/type/void_type.h",
Ryan Harrison4d32be42020-04-09 18:52:06 +0000368 "src/ast/type_constructor_expression.cc",
369 "src/ast/type_constructor_expression.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000370 "src/ast/uint_literal.cc",
371 "src/ast/uint_literal.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000372 "src/ast/unary_op.cc",
373 "src/ast/unary_op.h",
374 "src/ast/unary_op_expression.cc",
375 "src/ast/unary_op_expression.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000376 "src/ast/variable.cc",
377 "src/ast/variable.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000378 "src/ast/variable_decl_statement.cc",
379 "src/ast/variable_decl_statement.h",
Ryan Harrison4d32be42020-04-09 18:52:06 +0000380 "src/ast/variable_decoration.cc",
381 "src/ast/variable_decoration.h",
dan sinclair64382792020-09-21 00:28:58 +0000382 "src/ast/workgroup_decoration.cc",
383 "src/ast/workgroup_decoration.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000384 "src/context.cc",
Ryan Harrison4d32be42020-04-09 18:52:06 +0000385 "src/context.h",
Ben Claytonf0740ae2020-11-02 15:41:08 +0000386 "src/diagnostic/diagnostic.cc",
387 "src/diagnostic/diagnostic.h",
388 "src/diagnostic/formatter.cc",
389 "src/diagnostic/formatter.h",
Ben Clayton2e6cc992020-11-02 19:26:28 +0000390 "src/diagnostic/printer.cc",
391 "src/diagnostic/printer.h",
Ryan Harrison89042532020-10-16 02:26:54 +0000392 "src/inspector/entry_point.cc",
393 "src/inspector/entry_point.h",
394 "src/inspector/inspector.cc",
395 "src/inspector/inspector.h",
396 "src/inspector/scalar.cc",
397 "src/inspector/scalar.h",
dan sinclair84f82752020-11-10 21:49:56 +0000398 "src/namer.cc",
399 "src/namer.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000400 "src/reader/reader.cc",
401 "src/reader/reader.h",
402 "src/scope_stack.h",
Ben Clayton5bee67f2020-10-30 20:44:53 +0000403 "src/source.cc",
Ryan Harrison29628882020-04-08 20:40:25 +0000404 "src/source.h",
dan sinclairb403cb52020-09-29 18:40:40 +0000405 "src/transform/bound_array_accessors_transform.cc",
406 "src/transform/bound_array_accessors_transform.h",
dan sinclair5bb9b752020-09-29 23:54:03 +0000407 "src/transform/manager.cc",
408 "src/transform/manager.h",
dan sinclair97b729d2020-09-29 20:28:21 +0000409 "src/transform/transformer.cc",
410 "src/transform/transformer.h",
dan sinclair5c948e42020-09-24 14:30:34 +0000411 "src/transform/vertex_pulling_transform.cc",
412 "src/transform/vertex_pulling_transform.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000413 "src/type_determiner.cc",
414 "src/type_determiner.h",
415 "src/type_manager.cc",
416 "src/type_manager.h",
Sarah Mashayekhi34f90a02020-11-06 17:31:15 +0000417 "src/validator/validator.cc",
418 "src/validator/validator.h",
419 "src/validator/validator_impl.cc",
420 "src/validator/validator_impl.h",
421 "src/validator/validator_test_helper.cc",
422 "src/validator/validator_test_helper.h",
dan sinclair2a599012020-06-23 17:48:40 +0000423 "src/writer/text.cc",
424 "src/writer/text.h",
425 "src/writer/text_generator.cc",
426 "src/writer/text_generator.h",
Ryan Harrison29628882020-04-08 20:40:25 +0000427 "src/writer/writer.cc",
428 "src/writer/writer.h",
429 ]
430
Ben Clayton2e6cc992020-11-02 19:26:28 +0000431 if (is_linux) {
432 sources += [ "src/diagnostic/printer_linux.cc" ]
433 } else if (is_win) {
434 sources += [ "src/diagnostic/printer_windows.cc" ]
435 } else {
436 sources += [ "src/diagnostic/printer_other.cc" ]
437 }
438
Ryan Harrison31cfdb12020-07-16 20:13:16 +0000439 public_deps = [
Ryan Harrisond34b2102020-04-27 15:31:27 +0000440 ":tint_core_enums_unified1",
441 ":tint_core_tables_unified1",
442 ":tint_language_header_cldebuginfo100",
443 ":tint_language_header_debuginfo",
Ryan Harrison31cfdb12020-07-16 20:13:16 +0000444 "${tint_spirv_headers_dir}:spv_headers",
445 "${tint_spirv_tools_dir}:spvtools_headers",
Ryan Harrisond34b2102020-04-27 15:31:27 +0000446 ]
447
Ryan Harrison4d32be42020-04-09 18:52:06 +0000448 configs += [ ":tint_common_config" ]
Ryan Harrisonb8f49302020-06-16 17:26:59 +0000449 public_configs = [ ":tint_public_config" ]
Ryan Harrison4d32be42020-04-09 18:52:06 +0000450
Ryan Harrison29628882020-04-08 20:40:25 +0000451 if (build_with_chromium) {
452 configs -= [ "//build/config/compiler:chromium_code" ]
453 configs += [ "//build/config/compiler:no_chromium_code" ]
454 }
Ryan Harrison29628882020-04-08 20:40:25 +0000455}
456
Ryan Harrison0a196c12020-04-17 13:18:20 +0000457source_set("libtint_spv_reader_src") {
Ryan Harrisond1cf8a82020-04-15 20:35:38 +0000458 sources = [
David Netoa92c1142020-04-27 20:14:08 +0000459 "src/reader/spirv/construct.cc",
Ryan Harrison4484fe12020-05-14 14:47:51 +0000460 "src/reader/spirv/construct.h",
dan sinclairde2a0192020-09-22 14:22:12 +0000461 "src/reader/spirv/entry_point_info.h",
Ryan Harrisond1cf8a82020-04-15 20:35:38 +0000462 "src/reader/spirv/enum_converter.cc",
463 "src/reader/spirv/enum_converter.h",
464 "src/reader/spirv/fail_stream.h",
465 "src/reader/spirv/function.cc",
466 "src/reader/spirv/function.h",
467 "src/reader/spirv/namer.cc",
468 "src/reader/spirv/namer.h",
469 "src/reader/spirv/parser.cc",
470 "src/reader/spirv/parser.h",
471 "src/reader/spirv/parser_impl.cc",
472 "src/reader/spirv/parser_impl.h",
473 ]
474
475 deps = [
Ryan Harrisond34b2102020-04-27 15:31:27 +0000476 ":tint_core_enums_unified1",
477 ":tint_core_tables_unified1",
478 ":tint_language_header_cldebuginfo100",
479 ":tint_language_header_debuginfo",
Ryan Harrison1f1f08f2020-05-07 17:17:15 +0000480 "${tint_spirv_tools_dir}/:spvtools",
Ryan Harrisond1cf8a82020-04-15 20:35:38 +0000481 "${tint_spirv_tools_dir}/:spvtools_opt",
482 "${tint_spirv_tools_dir}/:spvtools_val",
483 ]
484
Ryan Harrisond34b2102020-04-27 15:31:27 +0000485 configs += [ ":tint_common_config" ]
Ryan Harrisonb8f49302020-06-16 17:26:59 +0000486 public_configs = [ ":tint_public_config" ]
Ryan Harrisond1cf8a82020-04-15 20:35:38 +0000487
488 if (build_with_chromium) {
489 configs -= [ "//build/config/compiler:chromium_code" ]
490 configs += [ "//build/config/compiler:no_chromium_code" ]
491 }
Ryan Harrison31cfdb12020-07-16 20:13:16 +0000492
493 public_deps = [ ":libtint_core_src" ]
Ryan Harrisond1cf8a82020-04-15 20:35:38 +0000494}
495
Ryan Harrison0a196c12020-04-17 13:18:20 +0000496source_set("libtint_spv_writer_src") {
Ryan Harrison2b45a522020-04-15 20:37:02 +0000497 sources = [
498 "src/writer/spirv/binary_writer.cc",
499 "src/writer/spirv/binary_writer.h",
500 "src/writer/spirv/builder.cc",
501 "src/writer/spirv/builder.h",
502 "src/writer/spirv/function.cc",
503 "src/writer/spirv/function.h",
504 "src/writer/spirv/generator.cc",
505 "src/writer/spirv/generator.h",
506 "src/writer/spirv/instruction.cc",
507 "src/writer/spirv/instruction.h",
508 "src/writer/spirv/operand.cc",
509 "src/writer/spirv/operand.h",
510 ]
511
Ryan Harrisond34b2102020-04-27 15:31:27 +0000512 configs += [ ":tint_common_config" ]
Ryan Harrisonb8f49302020-06-16 17:26:59 +0000513 public_configs = [ ":tint_public_config" ]
Ryan Harrison2b45a522020-04-15 20:37:02 +0000514
515 if (build_with_chromium) {
516 configs -= [ "//build/config/compiler:chromium_code" ]
517 configs += [ "//build/config/compiler:no_chromium_code" ]
518 }
Ryan Harrison31cfdb12020-07-16 20:13:16 +0000519
520 public_deps = [ ":libtint_core_src" ]
Ryan Harrison2b45a522020-04-15 20:37:02 +0000521}
522
Ryan Harrison0a196c12020-04-17 13:18:20 +0000523source_set("libtint_wgsl_reader_src") {
Ryan Harrison0caab672020-04-15 20:47:55 +0000524 sources = [
525 "src/reader/wgsl/lexer.cc",
526 "src/reader/wgsl/lexer.h",
527 "src/reader/wgsl/parser.cc",
528 "src/reader/wgsl/parser.h",
529 "src/reader/wgsl/parser_impl.cc",
530 "src/reader/wgsl/parser_impl.h",
Ben Clayton05737142020-11-09 20:44:34 +0000531 "src/reader/wgsl/parser_impl_detail.h",
Ryan Harrison0caab672020-04-15 20:47:55 +0000532 "src/reader/wgsl/token.cc",
533 "src/reader/wgsl/token.h",
534 ]
535
536 configs += [ ":tint_common_config" ]
Ryan Harrisonb8f49302020-06-16 17:26:59 +0000537 public_configs = [ ":tint_public_config" ]
Ryan Harrison0caab672020-04-15 20:47:55 +0000538
539 if (build_with_chromium) {
540 configs -= [ "//build/config/compiler:chromium_code" ]
541 configs += [ "//build/config/compiler:no_chromium_code" ]
542 }
Ryan Harrison31cfdb12020-07-16 20:13:16 +0000543
544 public_deps = [ ":libtint_core_src" ]
Ryan Harrison0caab672020-04-15 20:47:55 +0000545}
546
Ryan Harrison0a196c12020-04-17 13:18:20 +0000547source_set("libtint_wgsl_writer_src") {
Ryan Harrison460345d2020-04-15 20:54:10 +0000548 sources = [
549 "src/writer/wgsl/generator.cc",
550 "src/writer/wgsl/generator.h",
551 "src/writer/wgsl/generator_impl.cc",
552 "src/writer/wgsl/generator_impl.h",
553 ]
554
555 configs += [ ":tint_common_config" ]
Ryan Harrisonb8f49302020-06-16 17:26:59 +0000556 public_configs = [ ":tint_public_config" ]
Ryan Harrison460345d2020-04-15 20:54:10 +0000557
558 if (build_with_chromium) {
559 configs -= [ "//build/config/compiler:chromium_code" ]
560 configs += [ "//build/config/compiler:no_chromium_code" ]
561 }
Ryan Harrison31cfdb12020-07-16 20:13:16 +0000562
563 public_deps = [ ":libtint_core_src" ]
Ryan Harrison460345d2020-04-15 20:54:10 +0000564}
565
dan sinclair2a599012020-06-23 17:48:40 +0000566source_set("libtint_msl_writer_src") {
567 sources = [
568 "src/writer/msl/generator.cc",
569 "src/writer/msl/generator.h",
570 "src/writer/msl/generator_impl.cc",
dan sinclair6002a332020-07-02 20:53:45 +0000571 "src/writer/msl/generator_impl.h",
572 "src/writer/msl/namer.cc",
573 "src/writer/msl/namer.h",
dan sinclair2a599012020-06-23 17:48:40 +0000574 ]
575
576 configs += [ ":tint_common_config" ]
Ryan Harrison7b819aa2020-07-07 19:11:07 +0000577 public_configs = [ ":tint_public_config" ]
dan sinclair2a599012020-06-23 17:48:40 +0000578
579 if (build_with_chromium) {
580 configs -= [ "//build/config/compiler:chromium_code" ]
581 configs += [ "//build/config/compiler:no_chromium_code" ]
582 }
Ryan Harrison31cfdb12020-07-16 20:13:16 +0000583
584 public_deps = [ ":libtint_core_src" ]
dan sinclair2a599012020-06-23 17:48:40 +0000585}
586
dan sinclairfeffa9d2020-07-20 22:13:37 +0000587source_set("libtint_hlsl_writer_src") {
588 sources = [
589 "src/writer/hlsl/generator.cc",
590 "src/writer/hlsl/generator.h",
591 "src/writer/hlsl/generator_impl.cc",
592 "src/writer/hlsl/generator_impl.h",
dan sinclaire5228402020-07-21 14:51:33 +0000593 "src/writer/hlsl/namer.cc",
594 "src/writer/hlsl/namer.h",
dan sinclairfeffa9d2020-07-20 22:13:37 +0000595 ]
596
597 configs += [ ":tint_common_config" ]
598 public_configs = [ ":tint_public_config" ]
599
600 if (build_with_chromium) {
601 configs -= [ "//build/config/compiler:chromium_code" ]
602 configs += [ "//build/config/compiler:no_chromium_code" ]
603 }
Ryan Harrison88f0ae32020-07-28 15:59:17 +0000604
605 public_deps = [ ":libtint_core_src" ]
dan sinclairfeffa9d2020-07-20 22:13:37 +0000606}
607
Ryan Harrisond1cf8a82020-04-15 20:35:38 +0000608source_set("libtint") {
Ryan Harrison0a196c12020-04-17 13:18:20 +0000609 deps = [ ":libtint_core_src" ]
Ryan Harrison0caab672020-04-15 20:47:55 +0000610
Ryan Harrisond1cf8a82020-04-15 20:35:38 +0000611 if (tint_build_spv_reader) {
Ryan Harrison0a196c12020-04-17 13:18:20 +0000612 deps += [ ":libtint_spv_reader_src" ]
Ryan Harrisond1cf8a82020-04-15 20:35:38 +0000613 }
614
Ryan Harrison2b45a522020-04-15 20:37:02 +0000615 if (tint_build_spv_writer) {
Ryan Harrison0a196c12020-04-17 13:18:20 +0000616 deps += [ ":libtint_spv_writer_src" ]
Ryan Harrison2b45a522020-04-15 20:37:02 +0000617 }
618
Ryan Harrison0caab672020-04-15 20:47:55 +0000619 if (tint_build_wgsl_reader) {
Ryan Harrison0a196c12020-04-17 13:18:20 +0000620 deps += [ ":libtint_wgsl_reader_src" ]
Ryan Harrison0caab672020-04-15 20:47:55 +0000621 }
622
Ryan Harrison460345d2020-04-15 20:54:10 +0000623 if (tint_build_wgsl_writer) {
Ryan Harrison0a196c12020-04-17 13:18:20 +0000624 deps += [ ":libtint_wgsl_writer_src" ]
Ryan Harrison460345d2020-04-15 20:54:10 +0000625 }
626
dan sinclair2a599012020-06-23 17:48:40 +0000627 if (tint_build_msl_writer) {
628 deps += [ ":libtint_msl_writer_src" ]
629 }
630
dan sinclairfeffa9d2020-07-20 22:13:37 +0000631 if (tint_build_hlsl_writer) {
632 deps += [ ":libtint_hlsl_writer_src" ]
633 }
634
Ryan Harrisond1cf8a82020-04-15 20:35:38 +0000635 configs += [ ":tint_common_config" ]
Ryan Harrisonb8f49302020-06-16 17:26:59 +0000636 public_configs = [ ":tint_public_config" ]
Ryan Harrisond1cf8a82020-04-15 20:35:38 +0000637
638 if (build_with_chromium) {
639 configs -= [ "//build/config/compiler:chromium_code" ]
640 configs += [ "//build/config/compiler:no_chromium_code" ]
641 }
642}
643
Ryan Harrison0a196c12020-04-17 13:18:20 +0000644###############################################################################
645# Gtest Gmock - Handle building inside and outside of Chromium.
646###############################################################################
647# When building outside of Chromium we need to define our own targets for GTest
648# and GMock. However when compiling inside of Chromium we need to reuse the
649# existing targets, both because Chromium has a special harness for swarming
650# and because otherwise the "gn check" fails.
651
652if (!build_with_chromium) {
653 # When we aren't in Chromium we define out own targets based on the location
654 # of the googletest repo.
655 config("gtest_config") {
656 include_dirs = [
657 "${tint_googletest_dir}/googletest",
658 "${tint_googletest_dir}/googletest/include",
659 ]
660 }
661 static_library("gtest") {
662 testonly = true
663 sources = [ "${tint_googletest_dir}/googletest/src/gtest-all.cc" ]
664 public_configs = [ ":gtest_config" ]
665 }
666
667 config("gmock_config") {
668 include_dirs = [
669 "${tint_googletest_dir}/googlemock",
670 "${tint_googletest_dir}/googlemock/include",
671 "${tint_googletest_dir}/googletest/include",
672 ]
673 }
674
675 static_library("gmock") {
676 testonly = true
677 sources = [
678 "${tint_googletest_dir}/googlemock/src/gmock-all.cc",
679 "${tint_googletest_dir}/googlemock/src/gmock_main.cc",
680 ]
681 public_configs = [ ":gmock_config" ]
682 }
683
684 group("gmock_and_gtest") {
685 testonly = true
686 public_deps = [
687 ":gmock",
688 ":gtest",
689 ]
690 }
691} else {
692 # When we are in Chromium we reuse its targets, and also add some deps that
693 # are needed to launch the test in swarming mode.
694 group("gmock_and_gtest") {
695 testonly = true
696 public_deps = [
697 "//base",
698 "//base/test:test_support",
699 "//testing/gmock",
700 "//testing/gtest",
Ryan Harrison31cfdb12020-07-16 20:13:16 +0000701 "//third_party/googletest:gmock",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000702 ]
703 }
704}
705
706###############################################################################
Ryan Harrison433670b2020-07-22 17:36:39 +0000707# Wrapping of Chromium targets
708###############################################################################
709# These targets are separated because they are Chromium sources files that
710# can't use the tint_internal config, otherwise Tint's warning flags get
711# applied while compiling a bunch of Chromium's //base (via header inclusion)
712if (build_with_chromium) {
713 source_set("tint_unittests_main") {
714 testonly = true
715 deps = [ ":gmock_and_gtest" ]
716 sources = [ "//gpu/tint_unittests_main.cc" ]
717 }
718}
719
720###############################################################################
Ryan Harrison0a196c12020-04-17 13:18:20 +0000721# Tests - For libtint core and optional modules
722###############################################################################
723config("tint_unittests_config") {
724 include_dirs = [
725 "${tint_googletest_dir}/googlemock/include",
726 "${tint_googletest_dir}/googletest/include",
727 ]
728}
729
730source_set("tint_unittests_core_src") {
731 sources = [
732 "src/ast/array_accessor_expression_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000733 "src/ast/assignment_statement_test.cc",
734 "src/ast/binary_expression_test.cc",
735 "src/ast/binding_decoration_test.cc",
dan sinclaira7d498e2020-09-22 22:07:13 +0000736 "src/ast/bitcast_expression_test.cc",
dan sinclair775cb512020-07-27 15:25:00 +0000737 "src/ast/block_statement_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000738 "src/ast/bool_literal_test.cc",
739 "src/ast/break_statement_test.cc",
740 "src/ast/builtin_decoration_test.cc",
741 "src/ast/call_expression_test.cc",
dan sinclair2e404912020-07-21 13:42:05 +0000742 "src/ast/call_statement_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000743 "src/ast/case_statement_test.cc",
dan sinclair9e7f9dc2020-09-29 18:07:50 +0000744 "src/ast/constant_id_decoration_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000745 "src/ast/continue_statement_test.cc",
746 "src/ast/decorated_variable_test.cc",
Sarah Mashayekhi34f90a02020-11-06 17:31:15 +0000747 "src/ast/decoration_test.cc",
Ryan Harrison88f0ae32020-07-28 15:59:17 +0000748 "src/ast/discard_statement_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000749 "src/ast/else_statement_test.cc",
dan sinclair21244882020-04-22 00:23:49 +0000750 "src/ast/expression_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000751 "src/ast/fallthrough_statement_test.cc",
752 "src/ast/float_literal_test.cc",
753 "src/ast/function_test.cc",
754 "src/ast/identifier_expression_test.cc",
755 "src/ast/if_statement_test.cc",
dan sinclaire009c202020-06-02 20:11:54 +0000756 "src/ast/int_literal_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000757 "src/ast/location_decoration_test.cc",
758 "src/ast/loop_statement_test.cc",
759 "src/ast/member_accessor_expression_test.cc",
760 "src/ast/module_test.cc",
dan sinclair2287f332020-05-05 14:21:19 +0000761 "src/ast/null_literal_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000762 "src/ast/return_statement_test.cc",
763 "src/ast/scalar_constructor_expression_test.cc",
764 "src/ast/set_decoration_test.cc",
dan sinclairc6f29472020-06-02 20:11:44 +0000765 "src/ast/sint_literal_test.cc",
dan sinclair767ea852020-09-21 17:42:10 +0000766 "src/ast/stage_decoration_test.cc",
dan sinclaireb5d3e12020-10-08 19:34:25 +0000767 "src/ast/stride_decoration_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000768 "src/ast/struct_member_offset_decoration_test.cc",
769 "src/ast/struct_member_test.cc",
770 "src/ast/struct_test.cc",
771 "src/ast/switch_statement_test.cc",
dan sinclairbfd81092020-10-27 18:50:59 +0000772 "src/ast/type/access_control_type_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000773 "src/ast/type/alias_type_test.cc",
774 "src/ast/type/array_type_test.cc",
775 "src/ast/type/bool_type_test.cc",
dan sinclair3125a8d2020-07-30 23:26:28 +0000776 "src/ast/type/depth_texture_type_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000777 "src/ast/type/f32_type_test.cc",
778 "src/ast/type/i32_type_test.cc",
779 "src/ast/type/matrix_type_test.cc",
dan sinclaird3f75ca2020-09-17 03:53:04 +0000780 "src/ast/type/multisampled_texture_type_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000781 "src/ast/type/pointer_type_test.cc",
dan sinclair3125a8d2020-07-30 23:26:28 +0000782 "src/ast/type/sampled_texture_type_test.cc",
dan sinclairfe8c59a2020-07-30 22:27:25 +0000783 "src/ast/type/sampler_type_test.cc",
dan sinclair3125a8d2020-07-30 23:26:28 +0000784 "src/ast/type/storage_texture_type_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000785 "src/ast/type/struct_type_test.cc",
786 "src/ast/type/u32_type_test.cc",
787 "src/ast/type/vector_type_test.cc",
788 "src/ast/type_constructor_expression_test.cc",
789 "src/ast/uint_literal_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000790 "src/ast/unary_op_expression_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000791 "src/ast/variable_decl_statement_test.cc",
792 "src/ast/variable_test.cc",
dan sinclair64382792020-09-21 00:28:58 +0000793 "src/ast/workgroup_decoration_test.cc",
Ben Claytonf0740ae2020-11-02 15:41:08 +0000794 "src/diagnostic/formatter_test.cc",
Ben Clayton2e6cc992020-11-02 19:26:28 +0000795 "src/diagnostic/printer_test.cc",
Ryan Harrison89042532020-10-16 02:26:54 +0000796 "src/inspector/inspector_test.cc",
dan sinclair84f82752020-11-10 21:49:56 +0000797 "src/namer_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000798 "src/scope_stack_test.cc",
dan sinclairb403cb52020-09-29 18:40:40 +0000799 "src/transform/bound_array_accessors_transform_test.cc",
dan sinclair5c948e42020-09-24 14:30:34 +0000800 "src/transform/vertex_pulling_transform_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000801 "src/type_determiner_test.cc",
802 "src/type_manager_test.cc",
Sarah Mashayekhi34f90a02020-11-06 17:31:15 +0000803 "src/validator/validator_control_block_test.cc",
804 "src/validator/validator_function_test.cc",
805 "src/validator/validator_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000806 ]
807
808 configs += [
809 ":tint_common_config",
810 ":tint_unittests_config",
811 ]
Ryan Harrisonb8f49302020-06-16 17:26:59 +0000812 public_configs = [ ":tint_public_config" ]
Ryan Harrison0a196c12020-04-17 13:18:20 +0000813
814 if (build_with_chromium) {
815 configs -= [ "//build/config/compiler:chromium_code" ]
816 configs += [ "//build/config/compiler:no_chromium_code" ]
817 }
Ryan Harrison31cfdb12020-07-16 20:13:16 +0000818
819 testonly = true
820
821 deps = [
822 ":gmock_and_gtest",
823 ":libtint_core_src",
824 ]
Ryan Harrison0a196c12020-04-17 13:18:20 +0000825}
826
827source_set("tint_unittests_spv_reader_src") {
828 sources = [
829 "src/reader/spirv/enum_converter_test.cc",
830 "src/reader/spirv/fail_stream_test.cc",
831 "src/reader/spirv/function_arithmetic_test.cc",
David Neto9cba3e12020-04-21 17:44:44 +0000832 "src/reader/spirv/function_bit_test.cc",
David Netoc29bad22020-07-20 22:19:01 +0000833 "src/reader/spirv/function_call_test.cc",
David Neto571eea52020-04-21 17:44:44 +0000834 "src/reader/spirv/function_cfg_test.cc",
David Netoc7d1ac32020-06-12 15:09:56 +0000835 "src/reader/spirv/function_composite_test.cc",
David Neto89af8a22020-04-20 21:06:43 +0000836 "src/reader/spirv/function_conversion_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000837 "src/reader/spirv/function_decl_test.cc",
David Neto0335adb2020-06-12 15:09:14 +0000838 "src/reader/spirv/function_glsl_std_450_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000839 "src/reader/spirv/function_logical_test.cc",
840 "src/reader/spirv/function_memory_test.cc",
David Netofd3700c2020-06-22 20:48:59 +0000841 "src/reader/spirv/function_misc_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000842 "src/reader/spirv/function_var_test.cc",
843 "src/reader/spirv/namer_test.cc",
844 "src/reader/spirv/parser_impl_convert_member_decoration_test.cc",
845 "src/reader/spirv/parser_impl_convert_type_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000846 "src/reader/spirv/parser_impl_function_decl_test.cc",
847 "src/reader/spirv/parser_impl_get_decorations_test.cc",
848 "src/reader/spirv/parser_impl_import_test.cc",
849 "src/reader/spirv/parser_impl_module_var_test.cc",
850 "src/reader/spirv/parser_impl_named_types_test.cc",
851 "src/reader/spirv/parser_impl_test.cc",
852 "src/reader/spirv/parser_impl_user_name_test.cc",
853 "src/reader/spirv/parser_test.cc",
854 "src/reader/spirv/spirv_tools_helpers_test.cc",
855 "src/reader/spirv/spirv_tools_helpers_test.h",
856 ]
857
Ryan Harrison0a196c12020-04-17 13:18:20 +0000858 configs += [
Ryan Harrison0a196c12020-04-17 13:18:20 +0000859 ":tint_common_config",
860 ":tint_unittests_config",
861 ]
Ryan Harrisonb8f49302020-06-16 17:26:59 +0000862 public_configs = [ ":tint_public_config" ]
Ryan Harrison0a196c12020-04-17 13:18:20 +0000863
864 if (build_with_chromium) {
865 configs -= [ "//build/config/compiler:chromium_code" ]
866 configs += [ "//build/config/compiler:no_chromium_code" ]
867 }
Ryan Harrison31cfdb12020-07-16 20:13:16 +0000868
869 testonly = true
870
871 deps = [
872 ":gmock_and_gtest",
873 ":libtint_spv_reader_src",
874 ]
Ryan Harrison0a196c12020-04-17 13:18:20 +0000875}
876
877source_set("tint_unittests_spv_writer_src") {
878 sources = [
879 "src/writer/spirv/binary_writer_test.cc",
dan sinclair20077b72020-04-22 14:07:05 +0000880 "src/writer/spirv/builder_accessor_expression_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000881 "src/writer/spirv/builder_assign_test.cc",
882 "src/writer/spirv/builder_binary_expression_test.cc",
dan sinclaira7d498e2020-09-22 22:07:13 +0000883 "src/writer/spirv/builder_bitcast_expression_test.cc",
dan sinclair0975dd52020-07-27 15:25:00 +0000884 "src/writer/spirv/builder_block_test.cc",
dan sinclairfd5d4ca2020-04-20 15:46:18 +0000885 "src/writer/spirv/builder_call_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000886 "src/writer/spirv/builder_constructor_expression_test.cc",
dan sinclair6a61d412020-07-25 14:32:44 +0000887 "src/writer/spirv/builder_discard_test.cc",
Tomek Ponitka68035292020-08-31 15:49:43 +0000888 "src/writer/spirv/builder_format_conversion_test.cc",
dan sinclaira8274b22020-09-21 18:49:01 +0000889 "src/writer/spirv/builder_function_decoration_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000890 "src/writer/spirv/builder_function_test.cc",
891 "src/writer/spirv/builder_function_variable_test.cc",
892 "src/writer/spirv/builder_global_variable_test.cc",
893 "src/writer/spirv/builder_ident_expression_test.cc",
894 "src/writer/spirv/builder_if_test.cc",
dan sinclair3e7dc822020-06-04 17:05:35 +0000895 "src/writer/spirv/builder_intrinsic_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000896 "src/writer/spirv/builder_literal_test.cc",
dan sinclair6866cb72020-04-20 14:07:29 +0000897 "src/writer/spirv/builder_loop_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000898 "src/writer/spirv/builder_return_test.cc",
dan sinclair916b4082020-06-01 18:56:34 +0000899 "src/writer/spirv/builder_switch_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000900 "src/writer/spirv/builder_test.cc",
901 "src/writer/spirv/builder_type_test.cc",
dan sinclairc9308dc2020-04-22 00:24:11 +0000902 "src/writer/spirv/builder_unary_op_expression_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000903 "src/writer/spirv/instruction_test.cc",
904 "src/writer/spirv/operand_test.cc",
905 "src/writer/spirv/spv_dump.cc",
906 "src/writer/spirv/spv_dump.h",
907 ]
Ryan Harrison0a196c12020-04-17 13:18:20 +0000908
909 configs += [
Ryan Harrison0a196c12020-04-17 13:18:20 +0000910 ":tint_common_config",
911 ":tint_unittests_config",
912 ]
Ryan Harrisonb8f49302020-06-16 17:26:59 +0000913 public_configs = [ ":tint_public_config" ]
Ryan Harrison0a196c12020-04-17 13:18:20 +0000914
915 if (build_with_chromium) {
916 configs -= [ "//build/config/compiler:chromium_code" ]
917 configs += [ "//build/config/compiler:no_chromium_code" ]
918 }
Ryan Harrison31cfdb12020-07-16 20:13:16 +0000919
920 testonly = true
921
922 deps = [
923 ":gmock_and_gtest",
924 ":libtint_spv_writer_src",
925 ]
Ryan Harrison0a196c12020-04-17 13:18:20 +0000926}
927
928source_set("tint_unittests_wgsl_reader_src") {
929 sources = [
930 "src/reader/wgsl/lexer_test.cc",
931 "src/reader/wgsl/parser_impl_additive_expression_test.cc",
932 "src/reader/wgsl/parser_impl_and_expression_test.cc",
933 "src/reader/wgsl/parser_impl_argument_expression_list_test.cc",
934 "src/reader/wgsl/parser_impl_assignment_stmt_test.cc",
935 "src/reader/wgsl/parser_impl_body_stmt_test.cc",
936 "src/reader/wgsl/parser_impl_break_stmt_test.cc",
dan sinclairfbbc6172020-07-21 15:13:36 +0000937 "src/reader/wgsl/parser_impl_call_stmt_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000938 "src/reader/wgsl/parser_impl_case_body_test.cc",
939 "src/reader/wgsl/parser_impl_const_expr_test.cc",
940 "src/reader/wgsl/parser_impl_const_literal_test.cc",
941 "src/reader/wgsl/parser_impl_continue_stmt_test.cc",
942 "src/reader/wgsl/parser_impl_continuing_stmt_test.cc",
Tomek Ponitkacbd1ef82020-09-02 14:06:45 +0000943 "src/reader/wgsl/parser_impl_depth_texture_type_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000944 "src/reader/wgsl/parser_impl_else_stmt_test.cc",
945 "src/reader/wgsl/parser_impl_elseif_stmt_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000946 "src/reader/wgsl/parser_impl_equality_expression_test.cc",
Ben Clayton4dd56652020-10-29 13:05:52 +0000947 "src/reader/wgsl/parser_impl_error_msg_test.cc",
Ben Claytonaf8091e2020-11-11 18:44:36 +0000948 "src/reader/wgsl/parser_impl_error_resync_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000949 "src/reader/wgsl/parser_impl_exclusive_or_expression_test.cc",
Tomek Ponitka63a5aa72020-08-24 18:22:22 +0000950 "src/reader/wgsl/parser_impl_for_stmt_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000951 "src/reader/wgsl/parser_impl_function_decl_test.cc",
dan sinclaird05f93f2020-09-21 00:37:08 +0000952 "src/reader/wgsl/parser_impl_function_decoration_list_test.cc",
953 "src/reader/wgsl/parser_impl_function_decoration_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000954 "src/reader/wgsl/parser_impl_function_header_test.cc",
955 "src/reader/wgsl/parser_impl_function_type_decl_test.cc",
956 "src/reader/wgsl/parser_impl_global_constant_decl_test.cc",
957 "src/reader/wgsl/parser_impl_global_decl_test.cc",
958 "src/reader/wgsl/parser_impl_global_variable_decl_test.cc",
959 "src/reader/wgsl/parser_impl_if_stmt_test.cc",
Tomek Ponitka03f5e2f2020-09-08 16:38:39 +0000960 "src/reader/wgsl/parser_impl_image_storage_type_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000961 "src/reader/wgsl/parser_impl_inclusive_or_expression_test.cc",
962 "src/reader/wgsl/parser_impl_logical_and_expression_test.cc",
963 "src/reader/wgsl/parser_impl_logical_or_expression_test.cc",
964 "src/reader/wgsl/parser_impl_loop_stmt_test.cc",
965 "src/reader/wgsl/parser_impl_multiplicative_expression_test.cc",
966 "src/reader/wgsl/parser_impl_param_list_test.cc",
967 "src/reader/wgsl/parser_impl_paren_rhs_stmt_test.cc",
968 "src/reader/wgsl/parser_impl_pipeline_stage_test.cc",
969 "src/reader/wgsl/parser_impl_postfix_expression_test.cc",
970 "src/reader/wgsl/parser_impl_primary_expression_test.cc",
971 "src/reader/wgsl/parser_impl_relational_expression_test.cc",
Tomek Ponitkafd3ca9e2020-09-02 15:52:15 +0000972 "src/reader/wgsl/parser_impl_sampled_texture_type_test.cc",
Tomek Ponitkac3542002020-09-02 13:26:15 +0000973 "src/reader/wgsl/parser_impl_sampler_type_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000974 "src/reader/wgsl/parser_impl_shift_expression_test.cc",
975 "src/reader/wgsl/parser_impl_statement_test.cc",
976 "src/reader/wgsl/parser_impl_statements_test.cc",
977 "src/reader/wgsl/parser_impl_storage_class_test.cc",
Tomek Ponitkabcb6eb02020-09-08 16:48:09 +0000978 "src/reader/wgsl/parser_impl_storage_texture_type_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000979 "src/reader/wgsl/parser_impl_struct_body_decl_test.cc",
980 "src/reader/wgsl/parser_impl_struct_decl_test.cc",
981 "src/reader/wgsl/parser_impl_struct_decoration_decl_test.cc",
982 "src/reader/wgsl/parser_impl_struct_decoration_test.cc",
983 "src/reader/wgsl/parser_impl_struct_member_decoration_decl_test.cc",
984 "src/reader/wgsl/parser_impl_struct_member_decoration_test.cc",
985 "src/reader/wgsl/parser_impl_struct_member_test.cc",
986 "src/reader/wgsl/parser_impl_switch_body_test.cc",
987 "src/reader/wgsl/parser_impl_switch_stmt_test.cc",
988 "src/reader/wgsl/parser_impl_test.cc",
989 "src/reader/wgsl/parser_impl_test_helper.cc",
990 "src/reader/wgsl/parser_impl_test_helper.h",
Tomek Ponitka4beff412020-09-02 14:16:35 +0000991 "src/reader/wgsl/parser_impl_texture_sampler_types_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000992 "src/reader/wgsl/parser_impl_type_alias_test.cc",
993 "src/reader/wgsl/parser_impl_type_decl_test.cc",
994 "src/reader/wgsl/parser_impl_unary_expression_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +0000995 "src/reader/wgsl/parser_impl_variable_decl_test.cc",
996 "src/reader/wgsl/parser_impl_variable_decoration_list_test.cc",
997 "src/reader/wgsl/parser_impl_variable_decoration_test.cc",
998 "src/reader/wgsl/parser_impl_variable_ident_decl_test.cc",
999 "src/reader/wgsl/parser_impl_variable_stmt_test.cc",
1000 "src/reader/wgsl/parser_impl_variable_storage_decoration_test.cc",
1001 "src/reader/wgsl/parser_test.cc",
1002 "src/reader/wgsl/token_test.cc",
1003 ]
1004
1005 configs += [
1006 ":tint_common_config",
1007 ":tint_unittests_config",
1008 ]
Ryan Harrisonb8f49302020-06-16 17:26:59 +00001009 public_configs = [ ":tint_public_config" ]
Ryan Harrison0a196c12020-04-17 13:18:20 +00001010
1011 if (build_with_chromium) {
1012 configs -= [ "//build/config/compiler:chromium_code" ]
1013 configs += [ "//build/config/compiler:no_chromium_code" ]
1014 }
Ryan Harrison31cfdb12020-07-16 20:13:16 +00001015
1016 testonly = true
1017
1018 deps = [
1019 ":gmock_and_gtest",
1020 ":libtint_wgsl_reader_src",
1021 ]
Ryan Harrison0a196c12020-04-17 13:18:20 +00001022}
1023
1024source_set("tint_unittests_wgsl_writer_src") {
1025 sources = [
1026 "src/writer/wgsl/generator_impl_alias_type_test.cc",
1027 "src/writer/wgsl/generator_impl_array_accessor_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +00001028 "src/writer/wgsl/generator_impl_assign_test.cc",
dan sinclair7f269e52020-06-23 18:22:05 +00001029 "src/writer/wgsl/generator_impl_binary_test.cc",
dan sinclaira7d498e2020-09-22 22:07:13 +00001030 "src/writer/wgsl/generator_impl_bitcast_test.cc",
dan sinclair21f8e252020-07-27 15:25:00 +00001031 "src/writer/wgsl/generator_impl_block_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +00001032 "src/writer/wgsl/generator_impl_break_test.cc",
1033 "src/writer/wgsl/generator_impl_call_test.cc",
1034 "src/writer/wgsl/generator_impl_case_test.cc",
1035 "src/writer/wgsl/generator_impl_cast_test.cc",
1036 "src/writer/wgsl/generator_impl_constructor_test.cc",
1037 "src/writer/wgsl/generator_impl_continue_test.cc",
dan sinclaird81bebc2020-07-25 14:33:04 +00001038 "src/writer/wgsl/generator_impl_discard_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +00001039 "src/writer/wgsl/generator_impl_fallthrough_test.cc",
1040 "src/writer/wgsl/generator_impl_function_test.cc",
1041 "src/writer/wgsl/generator_impl_identifier_test.cc",
1042 "src/writer/wgsl/generator_impl_if_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +00001043 "src/writer/wgsl/generator_impl_loop_test.cc",
1044 "src/writer/wgsl/generator_impl_member_accessor_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +00001045 "src/writer/wgsl/generator_impl_return_test.cc",
1046 "src/writer/wgsl/generator_impl_switch_test.cc",
1047 "src/writer/wgsl/generator_impl_test.cc",
1048 "src/writer/wgsl/generator_impl_type_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +00001049 "src/writer/wgsl/generator_impl_unary_op_test.cc",
Ryan Harrison0a196c12020-04-17 13:18:20 +00001050 "src/writer/wgsl/generator_impl_variable_decl_statement_test.cc",
1051 "src/writer/wgsl/generator_impl_variable_test.cc",
1052 ]
1053
1054 configs += [
1055 ":tint_common_config",
1056 ":tint_unittests_config",
1057 ]
Ryan Harrisonb8f49302020-06-16 17:26:59 +00001058 public_configs = [ ":tint_public_config" ]
Ryan Harrison0a196c12020-04-17 13:18:20 +00001059
1060 if (build_with_chromium) {
1061 configs -= [ "//build/config/compiler:chromium_code" ]
1062 configs += [ "//build/config/compiler:no_chromium_code" ]
1063 }
Ryan Harrison31cfdb12020-07-16 20:13:16 +00001064
1065 testonly = true
1066
1067 deps = [
1068 ":gmock_and_gtest",
1069 ":libtint_wgsl_writer_src",
1070 ]
Ryan Harrison0a196c12020-04-17 13:18:20 +00001071}
1072
dan sinclair2a599012020-06-23 17:48:40 +00001073source_set("tint_unittests_msl_writer_src") {
dan sinclair5dd37b22020-06-23 17:48:53 +00001074 sources = [
dan sinclaird4eafb62020-06-26 21:27:59 +00001075 "src/writer/msl/generator_impl_alias_type_test.cc",
dan sinclairdc841f12020-06-26 21:27:59 +00001076 "src/writer/msl/generator_impl_array_accessor_test.cc",
dan sinclair70c605f2020-06-23 17:54:33 +00001077 "src/writer/msl/generator_impl_assign_test.cc",
dan sinclair7f269e52020-06-23 18:22:05 +00001078 "src/writer/msl/generator_impl_binary_test.cc",
dan sinclaira7d498e2020-09-22 22:07:13 +00001079 "src/writer/msl/generator_impl_bitcast_test.cc",
dan sinclaircd182b12020-07-27 15:25:00 +00001080 "src/writer/msl/generator_impl_block_test.cc",
dan sinclair57b3b1d2020-06-29 21:17:54 +00001081 "src/writer/msl/generator_impl_break_test.cc",
dan sinclairc5a5f962020-07-14 20:37:38 +00001082 "src/writer/msl/generator_impl_call_test.cc",
dan sinclair53b32832020-06-30 21:33:20 +00001083 "src/writer/msl/generator_impl_case_test.cc",
dan sinclairb1de8432020-06-26 21:27:59 +00001084 "src/writer/msl/generator_impl_cast_test.cc",
dan sinclair6366f682020-06-23 18:22:21 +00001085 "src/writer/msl/generator_impl_constructor_test.cc",
dan sinclair57b3b1d2020-06-29 21:17:54 +00001086 "src/writer/msl/generator_impl_continue_test.cc",
dan sinclaira9696b52020-07-25 14:32:54 +00001087 "src/writer/msl/generator_impl_discard_test.cc",
dan sinclairb5bb2d92020-09-21 18:58:01 +00001088 "src/writer/msl/generator_impl_function_entry_point_data_test.cc",
dan sinclaire66d6a62020-06-23 17:54:25 +00001089 "src/writer/msl/generator_impl_function_test.cc",
dan sinclair646fb232020-06-23 17:49:08 +00001090 "src/writer/msl/generator_impl_identifier_test.cc",
dan sinclair28d4a942020-06-26 21:27:59 +00001091 "src/writer/msl/generator_impl_if_test.cc",
dan sinclair26c8a212020-07-20 22:13:00 +00001092 "src/writer/msl/generator_impl_import_test.cc",
dan sinclair99ad0e82020-07-25 14:39:23 +00001093 "src/writer/msl/generator_impl_intrinsic_test.cc",
dan sinclaire88c0f62020-06-30 17:40:28 +00001094 "src/writer/msl/generator_impl_loop_test.cc",
dan sinclairfa1659a2020-06-29 21:17:44 +00001095 "src/writer/msl/generator_impl_member_accessor_test.cc",
Ryan Harrisonc8af5022020-07-20 19:54:23 +00001096 "src/writer/msl/generator_impl_module_constant_test.cc",
dan sinclair8cd87512020-06-23 17:49:00 +00001097 "src/writer/msl/generator_impl_return_test.cc",
dan sinclair53b32832020-06-30 21:33:20 +00001098 "src/writer/msl/generator_impl_switch_test.cc",
dan sinclair5dd37b22020-06-23 17:48:53 +00001099 "src/writer/msl/generator_impl_test.cc",
1100 "src/writer/msl/generator_impl_type_test.cc",
dan sinclaird1bf87b2020-06-26 21:27:59 +00001101 "src/writer/msl/generator_impl_unary_op_test.cc",
dan sinclair45101592020-07-08 20:52:46 +00001102 "src/writer/msl/generator_impl_variable_decl_statement_test.cc",
dan sinclair6002a332020-07-02 20:53:45 +00001103 "src/writer/msl/namer_test.cc",
dan sinclair5dd37b22020-06-23 17:48:53 +00001104 ]
dan sinclair2a599012020-06-23 17:48:40 +00001105
1106 configs += [
1107 ":tint_common_config",
1108 ":tint_unittests_config",
1109 ]
1110 public_configs = [ ":tint_public_config" ]
1111
1112 if (build_with_chromium) {
1113 configs -= [ "//build/config/compiler:chromium_code" ]
1114 configs += [ "//build/config/compiler:no_chromium_code" ]
1115 }
Ryan Harrison31cfdb12020-07-16 20:13:16 +00001116
1117 testonly = true
1118
1119 deps = [
1120 ":gmock_and_gtest",
1121 ":libtint_msl_writer_src",
1122 ]
dan sinclair2a599012020-06-23 17:48:40 +00001123}
1124
dan sinclairfeffa9d2020-07-20 22:13:37 +00001125source_set("tint_unittests_hlsl_writer_src") {
dan sinclaire5228402020-07-21 14:51:33 +00001126 sources = [
dan sinclair0e480822020-07-29 18:56:25 +00001127 "src/writer/hlsl/generator_impl_alias_type_test.cc",
dan sinclairec007b92020-07-29 18:56:35 +00001128 "src/writer/hlsl/generator_impl_array_accessor_test.cc",
dan sinclaira0b73e82020-07-21 15:58:56 +00001129 "src/writer/hlsl/generator_impl_assign_test.cc",
dan sinclairdee91362020-07-21 15:58:20 +00001130 "src/writer/hlsl/generator_impl_binary_test.cc",
dan sinclaira7d498e2020-09-22 22:07:13 +00001131 "src/writer/hlsl/generator_impl_bitcast_test.cc",
dan sinclaird450a922020-07-29 19:06:46 +00001132 "src/writer/hlsl/generator_impl_block_test.cc",
dan sinclairabfdd222020-07-21 15:58:29 +00001133 "src/writer/hlsl/generator_impl_break_test.cc",
dan sinclair7df4a842020-08-19 17:44:45 +00001134 "src/writer/hlsl/generator_impl_call_test.cc",
dan sinclair557a0f82020-07-21 15:58:43 +00001135 "src/writer/hlsl/generator_impl_case_test.cc",
dan sinclair3739a232020-08-19 19:14:44 +00001136 "src/writer/hlsl/generator_impl_cast_test.cc",
dan sinclair4a11b562020-07-29 18:50:18 +00001137 "src/writer/hlsl/generator_impl_constructor_test.cc",
dan sinclairabfdd222020-07-21 15:58:29 +00001138 "src/writer/hlsl/generator_impl_continue_test.cc",
dan sinclaircda5af02020-07-29 18:56:50 +00001139 "src/writer/hlsl/generator_impl_discard_test.cc",
dan sinclairf91b9662020-09-22 13:47:32 +00001140 "src/writer/hlsl/generator_impl_function_entry_point_data_test.cc",
dan sinclairbe89a062020-08-19 17:32:25 +00001141 "src/writer/hlsl/generator_impl_function_test.cc",
dan sinclaire5228402020-07-21 14:51:33 +00001142 "src/writer/hlsl/generator_impl_identifier_test.cc",
dan sinclair97bc4ad2020-07-30 22:26:55 +00001143 "src/writer/hlsl/generator_impl_if_test.cc",
dan sinclaird38df392020-08-19 19:19:04 +00001144 "src/writer/hlsl/generator_impl_import_test.cc",
dan sinclaira1087ee2020-08-19 19:17:54 +00001145 "src/writer/hlsl/generator_impl_intrinsic_test.cc",
dan sinclair8278f2c2020-07-30 22:27:09 +00001146 "src/writer/hlsl/generator_impl_loop_test.cc",
dan sinclairf9618502020-07-29 19:12:19 +00001147 "src/writer/hlsl/generator_impl_member_accessor_test.cc",
dan sinclair6fdc77a2020-08-19 19:03:24 +00001148 "src/writer/hlsl/generator_impl_module_constant_test.cc",
dan sinclairabfdd222020-07-21 15:58:29 +00001149 "src/writer/hlsl/generator_impl_return_test.cc",
dan sinclair41aa1a12020-07-21 15:58:50 +00001150 "src/writer/hlsl/generator_impl_switch_test.cc",
dan sinclaire5228402020-07-21 14:51:33 +00001151 "src/writer/hlsl/generator_impl_test.cc",
dan sinclair8cce7ce2020-07-29 18:30:44 +00001152 "src/writer/hlsl/generator_impl_type_test.cc",
dan sinclair6dab73b2020-07-21 15:58:36 +00001153 "src/writer/hlsl/generator_impl_unary_op_test.cc",
dan sinclaircbe06682020-07-30 22:26:46 +00001154 "src/writer/hlsl/generator_impl_variable_decl_statement_test.cc",
dan sinclaire5228402020-07-21 14:51:33 +00001155 "src/writer/hlsl/namer_test.cc",
dan sinclairdf503f02020-08-26 19:05:46 +00001156 "src/writer/hlsl/test_helper.h",
dan sinclaire5228402020-07-21 14:51:33 +00001157 ]
dan sinclairfeffa9d2020-07-20 22:13:37 +00001158
1159 configs += [
1160 ":tint_common_config",
1161 ":tint_unittests_config",
1162 ]
1163 public_configs = [ ":tint_public_config" ]
1164
1165 if (build_with_chromium) {
1166 configs -= [ "//build/config/compiler:chromium_code" ]
1167 configs += [ "//build/config/compiler:no_chromium_code" ]
1168 }
Ryan Harrison88f0ae32020-07-28 15:59:17 +00001169
1170 testonly = true
1171
1172 deps = [
1173 ":gmock_and_gtest",
1174 ":libtint_hlsl_writer_src",
1175 ]
dan sinclairfeffa9d2020-07-20 22:13:37 +00001176}
1177
Ryan Harrison0a196c12020-04-17 13:18:20 +00001178source_set("tint_unittests_src") {
Ryan Harrison31cfdb12020-07-16 20:13:16 +00001179 testonly = true
1180
Ryan Harrison0a196c12020-04-17 13:18:20 +00001181 deps = [ ":tint_unittests_core_src" ]
1182
1183 if (tint_build_spv_reader) {
1184 deps += [ ":tint_unittests_spv_reader_src" ]
1185 }
1186
1187 if (tint_build_spv_writer) {
1188 deps += [ ":tint_unittests_spv_writer_src" ]
1189 }
1190
1191 if (tint_build_wgsl_reader) {
1192 deps += [ ":tint_unittests_wgsl_reader_src" ]
1193 }
1194
1195 if (tint_build_wgsl_writer) {
1196 deps += [ ":tint_unittests_wgsl_writer_src" ]
1197 }
1198
dan sinclair2a599012020-06-23 17:48:40 +00001199 if (tint_build_msl_writer) {
1200 deps += [ ":tint_unittests_msl_writer_src" ]
1201 }
1202
dan sinclair4551a312020-07-29 18:50:06 +00001203 if (tint_build_hlsl_writer) {
1204 deps += [ ":tint_unittests_hlsl_writer_src" ]
1205 }
1206
Ryan Harrison0a196c12020-04-17 13:18:20 +00001207 configs += [
1208 ":tint_common_config",
1209 ":tint_unittests_config",
1210 ]
Ryan Harrisonb8f49302020-06-16 17:26:59 +00001211 public_configs = [ ":tint_public_config" ]
Ryan Harrison0a196c12020-04-17 13:18:20 +00001212
1213 if (build_with_chromium) {
1214 configs -= [ "//build/config/compiler:chromium_code" ]
1215 configs += [ "//build/config/compiler:no_chromium_code" ]
1216 }
1217}
1218
1219test("tint_unittests") {
1220 deps = [
1221 ":gmock_and_gtest",
Ryan Harrison0a196c12020-04-17 13:18:20 +00001222 ":tint_unittests_src",
Ryan Harrison1f1f08f2020-05-07 17:17:15 +00001223 "${tint_spirv_tools_dir}/:spvtools",
1224 "${tint_spirv_tools_dir}/:spvtools_opt",
1225 "${tint_spirv_tools_dir}/:spvtools_val",
Ryan Harrison0a196c12020-04-17 13:18:20 +00001226 ]
1227
Ryan Harrison433670b2020-07-22 17:36:39 +00001228 if (build_with_chromium) {
1229 deps += [ ":tint_unittests_main" ]
1230 }
Ryan Harrison0a196c12020-04-17 13:18:20 +00001231
1232 configs += [
1233 ":tint_common_config",
1234 ":tint_unittests_config",
1235 ]
Ryan Harrisonb8f49302020-06-16 17:26:59 +00001236 public_configs = [ ":tint_public_config" ]
Ryan Harrison0a196c12020-04-17 13:18:20 +00001237
1238 if (build_with_chromium) {
1239 configs -= [ "//build/config/compiler:chromium_code" ]
1240 configs += [ "//build/config/compiler:no_chromium_code" ]
1241 }
1242
1243 testonly = true
1244}
1245
1246###############################################################################
Ryan Harrisond34b2102020-04-27 15:31:27 +00001247# Fuzzers - Libfuzzer based fuzzing targets for Chromium
1248###############################################################################
1249# To run the fuzzers outside of Chromium, use the CMake based builds.
1250
1251if (build_with_chromium) {
1252 import("//testing/libfuzzer/fuzzer_test.gni")
1253
Ryan Harrisonb07cb632020-07-30 21:24:29 +00001254 # fuzzer_test doesn't have configs members, so need to define them in an empty
1255 # source_set.
Ryan Harrison1a50cb92020-07-30 18:43:48 +00001256
Ryan Harrisonb07cb632020-07-30 21:24:29 +00001257 source_set("tint_fuzzer_common") {
Ryan Harrisond34b2102020-04-27 15:31:27 +00001258 configs += [ ":tint_common_config" ]
Ryan Harrisonb8f49302020-06-16 17:26:59 +00001259 public_configs = [ ":tint_public_config" ]
Ryan Harrisonb07cb632020-07-30 21:24:29 +00001260 }
Ryan Harrisond34b2102020-04-27 15:31:27 +00001261
Ryan Harrisonb07cb632020-07-30 21:24:29 +00001262 if (tint_build_wgsl_reader) {
1263 fuzzer_test("tint_wgsl_reader_fuzzer") {
1264 sources = [ "fuzzers/tint_wgsl_reader_fuzzer.cc" ]
1265 deps = [
1266 ":libtint_wgsl_reader_src",
1267 ":tint_fuzzer_common",
1268 ]
1269 }
1270 }
1271
1272 if (tint_build_spv_reader) {
1273 fuzzer_test("tint_spv_reader_fuzzer") {
1274 sources = [ "fuzzers/tint_spv_reader_fuzzer.cc" ]
1275 deps = [
1276 ":libtint_spv_reader_src",
1277 ":tint_fuzzer_common",
1278 ]
1279 }
Ryan Harrisond34b2102020-04-27 15:31:27 +00001280 }
1281}
1282
1283###############################################################################
Ryan Harrison0a196c12020-04-17 13:18:20 +00001284# Samples - Executables exposing command line functionality
1285###############################################################################
1286
Ryan Harrison26479f12020-07-30 18:44:14 +00001287config("tint_config") {
Ryan Harrison0caab672020-04-15 20:47:55 +00001288 include_dirs = []
1289 if (tint_build_spv_reader || tint_build_spv_writer) {
Ryan Harrisond34b2102020-04-27 15:31:27 +00001290 include_dirs += [ "${tint_spirv_tools_dir}/include/" ]
Ryan Harrison0caab672020-04-15 20:47:55 +00001291 }
1292}
1293
Ryan Harrison26479f12020-07-30 18:44:14 +00001294executable("tint") {
Ryan Harrison4d32be42020-04-09 18:52:06 +00001295 sources = [ "samples/main.cc" ]
Ryan Harrison1f1f08f2020-05-07 17:17:15 +00001296 deps = [
1297 ":libtint",
1298 "${tint_spirv_tools_dir}/:spvtools",
1299 "${tint_spirv_tools_dir}/:spvtools_opt",
1300 "${tint_spirv_tools_dir}/:spvtools_val",
1301 ]
Ryan Harrison4d32be42020-04-09 18:52:06 +00001302
Ryan Harrisond34b2102020-04-27 15:31:27 +00001303 configs += [
1304 ":tint_common_config",
Ryan Harrison26479f12020-07-30 18:44:14 +00001305 ":tint_config",
Ryan Harrisond34b2102020-04-27 15:31:27 +00001306 ]
Ryan Harrisonb8f49302020-06-16 17:26:59 +00001307 public_configs = [ ":tint_public_config" ]
Ryan Harrison29628882020-04-08 20:40:25 +00001308
1309 if (build_with_chromium) {
1310 configs -= [ "//build/config/compiler:chromium_code" ]
1311 configs += [ "//build/config/compiler:no_chromium_code" ]
1312 }
Ryan Harrison29628882020-04-08 20:40:25 +00001313}