blob: aca6b5a7d8f27b1b7b4a119c0e77effd809ed05b [file] [log] [blame]
Dan Sinclair6e581892020-03-02 15:47:43 -05001# 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
dan sinclair4b71b9e2020-03-18 14:08:48 +000015function(tint_spvtools_compile_options TARGET)
16 # We'll use the optimizer for its nice SPIR-V in-memory representation
17 target_link_libraries(${TARGET} SPIRV-Tools-opt SPIRV-Tools)
18
19 # We'll be cheating: using internal interfaces to the SPIRV-Tools
20 # optimizer.
21 target_include_directories(${TARGET} PRIVATE
22 ${spirv-tools_SOURCE_DIR}
23 ${spirv-tools_BINARY_DIR}
24 )
25
26 if (${CMAKE_CXX_COMPILER_ID} MATCHES Clang)
27 # The SPIRV-Tools code is conditioned against C++ and an older version of Clang.
28 # Suppress warnings triggered in our current compilation environment.
29 # TODO(dneto): Fix the issues upstream.
30 target_compile_options(${TARGET} PRIVATE
31 -Wno-newline-eof
32 -Wno-sign-conversion
33 -Wno-old-style-cast
34 -Wno-weak-vtables
35 )
36 endif()
37endfunction()
38
Dan Sinclair6e581892020-03-02 15:47:43 -050039set(TINT_LIB_SRCS
Ryan Harrisonbe45ff52020-06-11 19:35:20 +000040 ../include/tint/tint.h
Dan Sinclair6e581892020-03-02 15:47:43 -050041 ast/array_accessor_expression.cc
42 ast/array_accessor_expression.h
43 ast/as_expression.cc
44 ast/as_expression.h
45 ast/assignment_statement.cc
46 ast/assignment_statement.h
dan sinclair1c9b4862020-04-07 19:27:41 +000047 ast/binary_expression.cc
48 ast/binary_expression.h
Dan Sinclair6e581892020-03-02 15:47:43 -050049 ast/binding_decoration.cc
50 ast/binding_decoration.h
51 ast/bool_literal.h
52 ast/bool_literal.cc
53 ast/break_statement.cc
54 ast/break_statement.h
55 ast/builtin.cc
56 ast/builtin.h
57 ast/builtin_decoration.cc
58 ast/builtin_decoration.h
59 ast/call_expression.cc
60 ast/call_expression.h
61 ast/case_statement.cc
62 ast/case_statement.h
63 ast/cast_expression.cc
64 ast/cast_expression.h
dan sinclaira322f5d2020-03-30 22:46:06 +000065 ast/constructor_expression.cc
66 ast/constructor_expression.h
Dan Sinclair6e581892020-03-02 15:47:43 -050067 ast/continue_statement.cc
68 ast/continue_statement.h
69 ast/decorated_variable.cc
70 ast/decorated_variable.h
Dan Sinclair6e581892020-03-02 15:47:43 -050071 ast/else_statement.cc
72 ast/else_statement.h
73 ast/entry_point.cc
74 ast/entry_point.h
75 ast/expression.cc
76 ast/expression.h
77 ast/fallthrough_statement.cc
78 ast/fallthrough_statement.h
79 ast/float_literal.cc
80 ast/float_literal.h
81 ast/function.cc
82 ast/function.h
83 ast/identifier_expression.cc
84 ast/identifier_expression.h
85 ast/if_statement.cc
86 ast/if_statement.h
87 ast/import.cc
88 ast/import.h
dan sinclaire009c202020-06-02 20:11:54 +000089 ast/int_literal.cc
90 ast/int_literal.h
dan sinclair3e7dc822020-06-04 17:05:35 +000091 ast/intrinsic.cc
92 ast/intrinsic.h
Dan Sinclair6e581892020-03-02 15:47:43 -050093 ast/kill_statement.cc
94 ast/kill_statement.h
95 ast/literal.h
96 ast/literal.cc
97 ast/location_decoration.cc
98 ast/location_decoration.h
99 ast/loop_statement.cc
100 ast/loop_statement.h
101 ast/member_accessor_expression.cc
102 ast/member_accessor_expression.h
103 ast/module.cc
104 ast/module.h
105 ast/node.cc
106 ast/node.h
dan sinclair2287f332020-05-05 14:21:19 +0000107 ast/null_literal.cc
108 ast/null_literal.h
Dan Sinclair6e581892020-03-02 15:47:43 -0500109 ast/pipeline_stage.cc
110 ast/pipeline_stage.h
Dan Sinclair6e581892020-03-02 15:47:43 -0500111 ast/return_statement.cc
112 ast/return_statement.h
dan sinclaira322f5d2020-03-30 22:46:06 +0000113 ast/scalar_constructor_expression.cc
114 ast/scalar_constructor_expression.h
Dan Sinclair6e581892020-03-02 15:47:43 -0500115 ast/set_decoration.cc
116 ast/set_decoration.h
dan sinclairc6f29472020-06-02 20:11:44 +0000117 ast/sint_literal.cc
118 ast/sint_literal.h
Dan Sinclair6e581892020-03-02 15:47:43 -0500119 ast/statement.cc
120 ast/statement.h
Dan Sinclair6e581892020-03-02 15:47:43 -0500121 ast/storage_class.cc
122 ast/storage_class.h
123 ast/struct_decoration.cc
124 ast/struct_decoration.h
125 ast/struct.cc
126 ast/struct.h
127 ast/struct_member.cc
128 ast/struct_member.h
129 ast/struct_member_decoration.cc
130 ast/struct_member_decoration.h
131 ast/struct_member_offset_decoration.cc
132 ast/struct_member_offset_decoration.h
133 ast/switch_statement.cc
134 ast/switch_statement.h
dan sinclaira322f5d2020-03-30 22:46:06 +0000135 ast/type_constructor_expression.h
136 ast/type_constructor_expression.cc
Dan Sinclair6e581892020-03-02 15:47:43 -0500137 ast/type/alias_type.cc
138 ast/type/alias_type.h
139 ast/type/array_type.cc
140 ast/type/array_type.h
141 ast/type/bool_type.cc
142 ast/type/bool_type.h
143 ast/type/f32_type.cc
144 ast/type/f32_type.h
145 ast/type/i32_type.cc
146 ast/type/i32_type.h
147 ast/type/matrix_type.cc
148 ast/type/matrix_type.h
149 ast/type/pointer_type.cc
150 ast/type/pointer_type.h
151 ast/type/struct_type.cc
152 ast/type/struct_type.h
153 ast/type/type.cc
154 ast/type/type.h
155 ast/type/u32_type.cc
156 ast/type/u32_type.h
157 ast/type/vector_type.cc
158 ast/type/vector_type.h
159 ast/type/void_type.cc
160 ast/type/void_type.h
161 ast/uint_literal.cc
162 ast/uint_literal.h
Dan Sinclair6e581892020-03-02 15:47:43 -0500163 ast/unary_op.cc
164 ast/unary_op.h
165 ast/unary_op_expression.cc
166 ast/unary_op_expression.h
Dan Sinclair6e581892020-03-02 15:47:43 -0500167 ast/variable.cc
168 ast/variable.h
169 ast/variable_decoration.cc
170 ast/variable_decoration.h
dan sinclaire49bd5e2020-03-30 22:46:48 +0000171 ast/variable_decl_statement.cc
172 ast/variable_decl_statement.h
David Netoa8cd18e2020-03-27 00:47:16 +0000173 context.h
174 context.cc
Dan Sinclair6e581892020-03-02 15:47:43 -0500175 reader/reader.cc
176 reader/reader.h
dan sinclairc2d97ae2020-04-03 02:35:23 +0000177 scope_stack.h
Dan Sinclair6e581892020-03-02 15:47:43 -0500178 source.h
179 type_determiner.cc
180 type_determiner.h
181 type_manager.cc
182 type_manager.h
183 validator.cc
184 validator.h
Sarah Mashayekhi462dd672020-03-04 20:51:29 +0000185 validator_impl.cc
186 validator_impl.h
dan sinclair2a599012020-06-23 17:48:40 +0000187 writer/text.cc
188 writer/text.h
189 writer/text_generator.cc
190 writer/text_generator.h
Dan Sinclair6e581892020-03-02 15:47:43 -0500191 writer/writer.cc
192 writer/writer.h
193)
194
dan sinclair4b71b9e2020-03-18 14:08:48 +0000195if(${TINT_BUILD_SPV_READER})
Dan Sinclair6e581892020-03-02 15:47:43 -0500196 list(APPEND TINT_LIB_SRCS
David Netoa92c1142020-04-27 20:14:08 +0000197 reader/spirv/construct.h
198 reader/spirv/construct.cc
David Neto14cfcd72020-03-23 22:53:42 +0000199 reader/spirv/enum_converter.h
200 reader/spirv/enum_converter.cc
David Neto4e7f7da2020-03-17 20:07:41 +0000201 reader/spirv/fail_stream.h
David Netoe70e1092020-04-07 19:54:52 +0000202 reader/spirv/function.cc
203 reader/spirv/function.h
David Netobe4c89a2020-03-20 19:24:23 +0000204 reader/spirv/namer.cc
205 reader/spirv/namer.h
David Neto4e7f7da2020-03-17 20:07:41 +0000206 reader/spirv/parser.cc
207 reader/spirv/parser.h
208 reader/spirv/parser_impl.cc
209 reader/spirv/parser_impl.h
Dan Sinclair6e581892020-03-02 15:47:43 -0500210 )
211endif()
212
dan sinclair4b71b9e2020-03-18 14:08:48 +0000213if(${TINT_BUILD_WGSL_READER})
214 list(APPEND TINT_LIB_SRCS
215 reader/wgsl/lexer.cc
216 reader/wgsl/lexer.h
217 reader/wgsl/parser.cc
218 reader/wgsl/parser.h
219 reader/wgsl/parser_impl.cc
220 reader/wgsl/parser_impl.h
221 reader/wgsl/token.cc
222 reader/wgsl/token.h
223 )
224endif()
225
226if(${TINT_BUILD_SPV_WRITER})
227 list(APPEND TINT_LIB_SRCS
228 writer/spirv/binary_writer.cc
229 writer/spirv/binary_writer.h
230 writer/spirv/builder.cc
231 writer/spirv/builder.h
dan sinclairbaaf9892020-04-01 23:40:53 +0000232 writer/spirv/function.cc
233 writer/spirv/function.h
dan sinclair4b71b9e2020-03-18 14:08:48 +0000234 writer/spirv/generator.cc
235 writer/spirv/generator.h
236 writer/spirv/instruction.cc
237 writer/spirv/instruction.h
238 writer/spirv/operand.cc
239 writer/spirv/operand.h
240 )
241endif()
242
243if(${TINT_BUILD_WGSL_WRITER})
244 list(APPEND TINT_LIB_SRCS
245 writer/wgsl/generator.cc
246 writer/wgsl/generator.h
247 writer/wgsl/generator_impl.cc
248 writer/wgsl/generator_impl.h
249 )
250endif()
251
dan sinclair2a599012020-06-23 17:48:40 +0000252if(${TINT_BUILD_MSL_WRITER})
253 list(APPEND TINT_LIB_SRCS
254 writer/msl/generator.cc
255 writer/msl/generator.h
256 writer/msl/generator_impl.cc
257 writer/msl/generator_impl.h
258 )
259endif()
260
Dan Sinclair6e581892020-03-02 15:47:43 -0500261set(TINT_TEST_SRCS
Dan Sinclaire4b68ba2020-03-03 14:09:27 +0000262 ast/array_accessor_expression_test.cc
Dan Sinclair91e57dd2020-03-05 16:35:40 +0000263 ast/as_expression_test.cc
Dan Sinclair796f65f2020-03-05 20:20:39 +0000264 ast/assignment_statement_test.cc
Dan Sinclair6e581892020-03-02 15:47:43 -0500265 ast/binding_decoration_test.cc
266 ast/bool_literal_test.cc
Dan Sinclair51c811b2020-03-05 20:29:13 +0000267 ast/break_statement_test.cc
Dan Sinclair6e581892020-03-02 15:47:43 -0500268 ast/builtin_decoration_test.cc
Dan Sinclair00cf5a42020-03-05 20:35:57 +0000269 ast/call_expression_test.cc
Dan Sinclaira659b212020-03-06 14:28:01 +0000270 ast/case_statement_test.cc
Dan Sinclair11be1402020-03-06 21:18:19 +0000271 ast/cast_expression_test.cc
Dan Sinclairb8931152020-03-09 13:23:22 +0000272 ast/continue_statement_test.cc
Dan Sinclair3a1368d2020-03-10 17:47:56 +0000273 ast/decorated_variable_test.cc
Dan Sinclairadb80f02020-03-10 17:48:25 +0000274 ast/else_statement_test.cc
Dan Sinclair6e581892020-03-02 15:47:43 -0500275 ast/entry_point_test.cc
dan sinclair21244882020-04-22 00:23:49 +0000276 ast/expression_test.cc
Dan Sinclair9c48ddb2020-03-10 19:19:18 +0000277 ast/fallthrough_statement_test.cc
dan sinclair113fb072020-03-27 00:45:34 +0000278 ast/float_literal_test.cc
Dan Sinclair49faa4c2020-03-10 19:19:28 +0000279 ast/function_test.cc
Dan Sinclair3d1e6972020-03-16 13:26:10 +0000280 ast/identifier_expression_test.cc
Dan Sinclairbb521c02020-03-16 13:39:44 +0000281 ast/if_statement_test.cc
Dan Sinclair6e581892020-03-02 15:47:43 -0500282 ast/import_test.cc
dan sinclaire009c202020-06-02 20:11:54 +0000283 ast/int_literal_test.cc
Dan Sinclairce6f6482020-03-16 13:40:11 +0000284 ast/kill_statement_test.cc
Dan Sinclair6e581892020-03-02 15:47:43 -0500285 ast/location_decoration_test.cc
Dan Sinclairc99fdb82020-03-16 13:58:53 +0000286 ast/loop_statement_test.cc
Dan Sinclairf3007562020-03-16 14:17:28 +0000287 ast/member_accessor_expression_test.cc
Dan Sinclair6e581892020-03-02 15:47:43 -0500288 ast/module_test.cc
dan sinclair2287f332020-05-05 14:21:19 +0000289 ast/null_literal_test.cc
dan sinclair1c9b4862020-04-07 19:27:41 +0000290 ast/binary_expression_test.cc
Dan Sinclair7267a852020-03-17 03:51:29 +0000291 ast/return_statement_test.cc
dan sinclaira322f5d2020-03-30 22:46:06 +0000292 ast/scalar_constructor_expression_test.cc
Dan Sinclair6e581892020-03-02 15:47:43 -0500293 ast/set_decoration_test.cc
dan sinclairc6f29472020-06-02 20:11:44 +0000294 ast/sint_literal_test.cc
Dan Sinclair6e581892020-03-02 15:47:43 -0500295 ast/struct_member_test.cc
296 ast/struct_member_offset_decoration_test.cc
297 ast/struct_test.cc
Dan Sinclair43aab392020-03-17 03:53:41 +0000298 ast/switch_statement_test.cc
Dan Sinclair6e581892020-03-02 15:47:43 -0500299 ast/type/alias_type_test.cc
300 ast/type/array_type_test.cc
301 ast/type/bool_type_test.cc
302 ast/type/f32_type_test.cc
303 ast/type/i32_type_test.cc
304 ast/type/matrix_type_test.cc
305 ast/type/pointer_type_test.cc
306 ast/type/struct_type_test.cc
307 ast/type/u32_type_test.cc
308 ast/type/vector_type_test.cc
dan sinclaira322f5d2020-03-30 22:46:06 +0000309 ast/type_constructor_expression_test.cc
Dan Sinclair6e581892020-03-02 15:47:43 -0500310 ast/uint_literal_test.cc
Dan Sinclair750d0e72020-03-17 14:25:02 +0000311 ast/unary_op_expression_test.cc
dan sinclaire49bd5e2020-03-30 22:46:48 +0000312 ast/variable_decl_statement_test.cc
Dan Sinclair6e581892020-03-02 15:47:43 -0500313 ast/variable_test.cc
dan sinclairc2d97ae2020-04-03 02:35:23 +0000314 scope_stack_test.cc
dan sinclairb7edc4c2020-04-07 12:46:30 +0000315 type_determiner_test.cc
Dan Sinclair6e581892020-03-02 15:47:43 -0500316 type_manager_test.cc
Sarah Mashayekhi462dd672020-03-04 20:51:29 +0000317 validator_impl_import_test.cc
Dan Sinclair6e581892020-03-02 15:47:43 -0500318)
319
320## Tint library
321add_library(libtint ${TINT_LIB_SRCS})
322tint_default_compile_options(libtint)
323set_target_properties(libtint PROPERTIES OUTPUT_NAME "tint")
dan sinclair4b71b9e2020-03-18 14:08:48 +0000324
325if(${TINT_BUILD_SPV_READER} OR ${TINT_BUILD_SPV_WRITER})
David Neto9bb0dc52020-03-13 20:21:45 +0000326 tint_spvtools_compile_options(libtint)
Dan Sinclair6e581892020-03-02 15:47:43 -0500327endif()
328
dan sinclair4b71b9e2020-03-18 14:08:48 +0000329if(${TINT_BUILD_SPV_READER})
330 list(APPEND TINT_TEST_SRCS
David Neto14cfcd72020-03-23 22:53:42 +0000331 reader/spirv/enum_converter_test.cc
David Neto4e7f7da2020-03-17 20:07:41 +0000332 reader/spirv/fail_stream_test.cc
David Neto3743c5e2020-04-09 20:45:31 +0000333 reader/spirv/function_arithmetic_test.cc
David Neto9cba3e12020-04-21 17:44:44 +0000334 reader/spirv/function_bit_test.cc
David Neto571eea52020-04-21 17:44:44 +0000335 reader/spirv/function_cfg_test.cc
David Netoc7d1ac32020-06-12 15:09:56 +0000336 reader/spirv/function_composite_test.cc
David Neto89af8a22020-04-20 21:06:43 +0000337 reader/spirv/function_conversion_test.cc
David Neto753cdc72020-04-07 19:56:02 +0000338 reader/spirv/function_decl_test.cc
David Neto0335adb2020-06-12 15:09:14 +0000339 reader/spirv/function_glsl_std_450_test.cc
David Netobd296582020-04-14 20:56:07 +0000340 reader/spirv/function_logical_test.cc
David Netoa1a86002020-04-08 20:06:26 +0000341 reader/spirv/function_memory_test.cc
David Netofd3700c2020-06-22 20:48:59 +0000342 reader/spirv/function_misc_test.cc
343 reader/spirv/function_var_test.cc
David Netobe4c89a2020-03-20 19:24:23 +0000344 reader/spirv/namer_test.cc
David Netoe68c9b42020-03-30 21:14:28 +0000345 reader/spirv/parser_impl_convert_member_decoration_test.cc
David Neto71e1d812020-03-24 21:42:16 +0000346 reader/spirv/parser_impl_convert_type_test.cc
David Netoa14fec92020-03-23 22:54:36 +0000347 reader/spirv/parser_impl_entry_point_test.cc
David Neto790b2f62020-04-01 21:21:21 +0000348 reader/spirv/parser_impl_function_decl_test.cc
David Neto4da4c692020-03-30 21:09:59 +0000349 reader/spirv/parser_impl_get_decorations_test.cc
David Neto4e7f7da2020-03-17 20:07:41 +0000350 reader/spirv/parser_impl_import_test.cc
David Neto06faf3b2020-04-01 17:55:57 +0000351 reader/spirv/parser_impl_module_var_test.cc
David Netoa7640d62020-03-31 20:02:36 +0000352 reader/spirv/parser_impl_named_types_test.cc
David Neto1ae8e852020-03-23 21:40:23 +0000353 reader/spirv/parser_impl_user_name_test.cc
David Neto4e7f7da2020-03-17 20:07:41 +0000354 reader/spirv/parser_impl_test.cc
355 reader/spirv/parser_test.cc
356 reader/spirv/spirv_tools_helpers_test.cc
357 reader/spirv/spirv_tools_helpers_test.h
David Netof814bdc2020-03-10 22:54:31 +0000358 )
359endif()
360
dan sinclair4b71b9e2020-03-18 14:08:48 +0000361if(${TINT_BUILD_WGSL_READER})
362 list(APPEND TINT_TEST_SRCS
363 reader/wgsl/lexer_test.cc
364 reader/wgsl/parser_test.cc
365 reader/wgsl/parser_impl_additive_expression_test.cc
366 reader/wgsl/parser_impl_and_expression_test.cc
367 reader/wgsl/parser_impl_argument_expression_list_test.cc
368 reader/wgsl/parser_impl_assignment_stmt_test.cc
369 reader/wgsl/parser_impl_body_stmt_test.cc
370 reader/wgsl/parser_impl_break_stmt_test.cc
dan sinclair4b71b9e2020-03-18 14:08:48 +0000371 reader/wgsl/parser_impl_case_body_test.cc
372 reader/wgsl/parser_impl_const_expr_test.cc
373 reader/wgsl/parser_impl_const_literal_test.cc
374 reader/wgsl/parser_impl_continue_stmt_test.cc
375 reader/wgsl/parser_impl_continuing_stmt_test.cc
dan sinclair4b71b9e2020-03-18 14:08:48 +0000376 reader/wgsl/parser_impl_else_stmt_test.cc
377 reader/wgsl/parser_impl_elseif_stmt_test.cc
378 reader/wgsl/parser_impl_entry_point_decl_test.cc
379 reader/wgsl/parser_impl_equality_expression_test.cc
380 reader/wgsl/parser_impl_exclusive_or_expression_test.cc
381 reader/wgsl/parser_impl_function_decl_test.cc
382 reader/wgsl/parser_impl_function_header_test.cc
383 reader/wgsl/parser_impl_function_type_decl_test.cc
384 reader/wgsl/parser_impl_global_constant_decl_test.cc
385 reader/wgsl/parser_impl_global_decl_test.cc
386 reader/wgsl/parser_impl_global_variable_decl_test.cc
387 reader/wgsl/parser_impl_if_stmt_test.cc
388 reader/wgsl/parser_impl_import_decl_test.cc
389 reader/wgsl/parser_impl_inclusive_or_expression_test.cc
390 reader/wgsl/parser_impl_logical_and_expression_test.cc
391 reader/wgsl/parser_impl_logical_or_expression_test.cc
392 reader/wgsl/parser_impl_loop_stmt_test.cc
393 reader/wgsl/parser_impl_multiplicative_expression_test.cc
394 reader/wgsl/parser_impl_param_list_test.cc
395 reader/wgsl/parser_impl_paren_rhs_stmt_test.cc
396 reader/wgsl/parser_impl_pipeline_stage_test.cc
397 reader/wgsl/parser_impl_postfix_expression_test.cc
dan sinclair4b71b9e2020-03-18 14:08:48 +0000398 reader/wgsl/parser_impl_primary_expression_test.cc
dan sinclair4b71b9e2020-03-18 14:08:48 +0000399 reader/wgsl/parser_impl_relational_expression_test.cc
400 reader/wgsl/parser_impl_shift_expression_test.cc
401 reader/wgsl/parser_impl_statement_test.cc
402 reader/wgsl/parser_impl_statements_test.cc
403 reader/wgsl/parser_impl_storage_class_test.cc
404 reader/wgsl/parser_impl_struct_body_decl_test.cc
405 reader/wgsl/parser_impl_struct_decl_test.cc
406 reader/wgsl/parser_impl_struct_decoration_decl_test.cc
407 reader/wgsl/parser_impl_struct_decoration_test.cc
408 reader/wgsl/parser_impl_struct_member_decoration_decl_test.cc
409 reader/wgsl/parser_impl_struct_member_decoration_test.cc
410 reader/wgsl/parser_impl_struct_member_test.cc
411 reader/wgsl/parser_impl_switch_body_test.cc
412 reader/wgsl/parser_impl_switch_stmt_test.cc
413 reader/wgsl/parser_impl_test.cc
Ryan Harrison0a196c12020-04-17 13:18:20 +0000414 reader/wgsl/parser_impl_test_helper.cc
dan sinclair9981b632020-03-25 19:16:36 +0000415 reader/wgsl/parser_impl_test_helper.h
dan sinclair4b71b9e2020-03-18 14:08:48 +0000416 reader/wgsl/parser_impl_type_alias_test.cc
417 reader/wgsl/parser_impl_type_decl_test.cc
418 reader/wgsl/parser_impl_unary_expression_test.cc
dan sinclair4b71b9e2020-03-18 14:08:48 +0000419 reader/wgsl/parser_impl_variable_decl_test.cc
420 reader/wgsl/parser_impl_variable_decoration_list_test.cc
421 reader/wgsl/parser_impl_variable_decoration_test.cc
422 reader/wgsl/parser_impl_variable_ident_decl_test.cc
423 reader/wgsl/parser_impl_variable_stmt_test.cc
424 reader/wgsl/parser_impl_variable_storage_decoration_test.cc
425 reader/wgsl/token_test.cc
426 )
David Neto9bb0dc52020-03-13 20:21:45 +0000427endif()
dan sinclair4b71b9e2020-03-18 14:08:48 +0000428
429if(${TINT_BUILD_SPV_WRITER})
430 list(APPEND TINT_TEST_SRCS
431 writer/spirv/binary_writer_test.cc
dan sinclair20077b72020-04-22 14:07:05 +0000432 writer/spirv/builder_accessor_expression_test.cc
dan sinclair8b48b262020-06-18 18:02:46 +0000433 writer/spirv/builder_as_expression_test.cc
dan sinclaircfe4f132020-04-02 02:41:30 +0000434 writer/spirv/builder_assign_test.cc
dan sinclair719bfe02020-04-08 17:18:20 +0000435 writer/spirv/builder_binary_expression_test.cc
dan sinclairfd5d4ca2020-04-20 15:46:18 +0000436 writer/spirv/builder_call_test.cc
dan sinclairabd472e2020-05-01 19:05:55 +0000437 writer/spirv/builder_cast_expression_test.cc
dan sinclaira322f5d2020-03-30 22:46:06 +0000438 writer/spirv/builder_constructor_expression_test.cc
dan sinclair781a4ac2020-03-23 20:07:34 +0000439 writer/spirv/builder_entry_point_test.cc
dan sinclair33d34652020-03-25 19:43:20 +0000440 writer/spirv/builder_function_test.cc
dan sinclairbaaf9892020-04-01 23:40:53 +0000441 writer/spirv/builder_function_variable_test.cc
dan sinclair15cbc982020-03-30 19:49:01 +0000442 writer/spirv/builder_global_variable_test.cc
dan sinclair43178d02020-04-01 23:44:11 +0000443 writer/spirv/builder_ident_expression_test.cc
dan sinclair79448a32020-04-14 16:40:30 +0000444 writer/spirv/builder_if_test.cc
dan sinclair3e7dc822020-06-04 17:05:35 +0000445 writer/spirv/builder_intrinsic_test.cc
dan sinclair59fc0262020-06-01 13:44:43 +0000446 writer/spirv/builder_kill_test.cc
dan sinclair113fb072020-03-27 00:45:34 +0000447 writer/spirv/builder_literal_test.cc
dan sinclair6866cb72020-04-20 14:07:29 +0000448 writer/spirv/builder_loop_test.cc
dan sinclair8ae34862020-03-30 20:03:24 +0000449 writer/spirv/builder_return_test.cc
dan sinclair916b4082020-06-01 18:56:34 +0000450 writer/spirv/builder_switch_test.cc
dan sinclair15cbc982020-03-30 19:49:01 +0000451 writer/spirv/builder_test.cc
dan sinclair113fb072020-03-27 00:45:34 +0000452 writer/spirv/builder_type_test.cc
dan sinclairc9308dc2020-04-22 00:24:11 +0000453 writer/spirv/builder_unary_op_expression_test.cc
dan sinclair4b71b9e2020-03-18 14:08:48 +0000454 writer/spirv/instruction_test.cc
455 writer/spirv/operand_test.cc
dan sinclairdc200f72020-03-23 20:59:12 +0000456 writer/spirv/spv_dump.cc
457 writer/spirv/spv_dump.h
dan sinclair4b71b9e2020-03-18 14:08:48 +0000458 )
459endif()
460
461if(${TINT_BUILD_WGSL_WRITER})
462 list(APPEND TINT_TEST_SRCS
463 writer/wgsl/generator_impl_test.cc
dan sinclair83476872020-03-18 20:10:44 +0000464 writer/wgsl/generator_impl_alias_type_test.cc
465 writer/wgsl/generator_impl_array_accessor_test.cc
dan sinclaircd49b592020-03-18 20:33:00 +0000466 writer/wgsl/generator_impl_as_test.cc
dan sinclair7f9d5702020-03-20 19:01:57 +0000467 writer/wgsl/generator_impl_assign_test.cc
dan sinclairbf5ab652020-03-20 19:02:05 +0000468 writer/wgsl/generator_impl_break_test.cc
dan sinclairc80d5ed2020-03-19 02:51:27 +0000469 writer/wgsl/generator_impl_call_test.cc
dan sinclair37f4fb02020-03-20 19:04:45 +0000470 writer/wgsl/generator_impl_case_test.cc
dan sinclair62a20022020-03-19 02:53:30 +0000471 writer/wgsl/generator_impl_cast_test.cc
dan sinclaira322f5d2020-03-30 22:46:06 +0000472 writer/wgsl/generator_impl_constructor_test.cc
dan sinclair17686fc2020-03-20 19:04:54 +0000473 writer/wgsl/generator_impl_continue_test.cc
dan sinclaireaf26892020-03-20 19:08:07 +0000474 writer/wgsl/generator_impl_else_test.cc
dan sinclair83476872020-03-18 20:10:44 +0000475 writer/wgsl/generator_impl_entry_point_test.cc
dan sinclairc083af82020-03-20 19:05:02 +0000476 writer/wgsl/generator_impl_fallthrough_test.cc
dan sinclair3740fd22020-03-20 19:09:04 +0000477 writer/wgsl/generator_impl_function_test.cc
dan sinclair83476872020-03-18 20:10:44 +0000478 writer/wgsl/generator_impl_identifier_test.cc
dan sinclairc5742952020-03-20 19:08:56 +0000479 writer/wgsl/generator_impl_if_test.cc
dan sinclair83476872020-03-18 20:10:44 +0000480 writer/wgsl/generator_impl_import_test.cc
dan sinclairc083af82020-03-20 19:05:02 +0000481 writer/wgsl/generator_impl_kill_test.cc
dan sinclair0d004022020-03-20 19:07:00 +0000482 writer/wgsl/generator_impl_loop_test.cc
dan sinclair2c56dd92020-03-19 02:55:19 +0000483 writer/wgsl/generator_impl_member_accessor_test.cc
dan sinclair49568e12020-03-20 19:01:19 +0000484 writer/wgsl/generator_impl_relational_test.cc
dan sinclair2a6e2752020-03-20 19:05:10 +0000485 writer/wgsl/generator_impl_return_test.cc
dan sinclair5f64aee2020-03-20 19:06:52 +0000486 writer/wgsl/generator_impl_switch_test.cc
dan sinclair83476872020-03-18 20:10:44 +0000487 writer/wgsl/generator_impl_type_test.cc
dan sinclairdaff3e22020-03-20 19:01:47 +0000488 writer/wgsl/generator_impl_unary_op_test.cc
dan sinclaire49bd5e2020-03-30 22:46:48 +0000489 writer/wgsl/generator_impl_variable_decl_statement_test.cc
dan sinclair83476872020-03-18 20:10:44 +0000490 writer/wgsl/generator_impl_variable_test.cc
dan sinclair4b71b9e2020-03-18 14:08:48 +0000491 )
492endif()
dan sinclair2a599012020-06-23 17:48:40 +0000493
494if(${TINT_BUILD_MSL_WRITER})
495 list(APPEND TINT_TEST_SRCS
496 writer/msl/generator_impl_test.cc
497 )
498endif()
499
dan sinclair4b71b9e2020-03-18 14:08:48 +0000500add_executable(tint_unittests ${TINT_TEST_SRCS})
501
502if(NOT MSVC)
Dan Sinclair6e581892020-03-02 15:47:43 -0500503 target_compile_options(tint_unittests PRIVATE
504 -Wno-global-constructors
505 -Wno-weak-vtables
506 )
507endif()
508
509## Test executable
510target_include_directories(
511 tint_unittests PRIVATE ${gmock_SOURCE_DIR}/include)
Dan Sinclair6e581892020-03-02 15:47:43 -0500512target_link_libraries(tint_unittests libtint gmock_main)
513tint_default_compile_options(tint_unittests)
514
dan sinclair4b71b9e2020-03-18 14:08:48 +0000515if(${TINT_BUILD_SPV_READER} OR ${TINT_BUILD_SPV_WRITER})
516 tint_spvtools_compile_options(tint_unittests)
517endif()
518
Dan Sinclair6e581892020-03-02 15:47:43 -0500519add_test(NAME tint_unittests COMMAND tint_unittests)