# Copyright 2020 The Tint Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

function(tint_spvtools_compile_options TARGET)
  # We'll use the optimizer for its nice SPIR-V in-memory representation
  target_link_libraries(${TARGET} SPIRV-Tools-opt SPIRV-Tools)

  # We'll be cheating: using internal interfaces to the SPIRV-Tools
  # optimizer.
  target_include_directories(${TARGET} PRIVATE
    ${spirv-tools_SOURCE_DIR}
    ${spirv-tools_BINARY_DIR}
  )
endfunction()

set(TINT_LIB_SRCS)
set(TINT_BENCHMARK_SRCS)
set(TINT_TEST_SRCS)

# Add a generated file set into the build.
#
# Params:
#  TARGET - the target name to add (without extension)
#  BENCH  - set if the target has a benchmark file
#  TEST   - set if the target has a test file
#
function(tint_generated TARGET)
  cmake_parse_arguments(PARSE_ARGV 0 TINT_GEN "BENCH;TEST" "" "")

   list(APPEND TINT_LIB_SRCS
      ${TARGET}.cc
      ${TARGET}.h
    )
    set(TINT_LIB_SRCS ${TINT_LIB_SRCS} PARENT_SCOPE)

    if(${TINT_GEN_BENCH})
        list(APPEND TINT_BENCHMARK_SRCS ${TARGET}_bench.cc)
        set(TINT_BENCHMARK_SRCS ${TINT_BENCHMARK_SRCS} PARENT_SCOPE)
    endif()
    if(${TINT_GEN_TEST})
        list(APPEND TINT_TEST_SRCS ${TARGET}_test.cc)
        set(TINT_TEST_SRCS ${TINT_TEST_SRCS} PARENT_SCOPE)
    endif()
endfunction()

## Tint diagnostic utilities. Used by libtint and tint_utils_io.
add_library(tint_diagnostic_utils
  debug.cc
  debug.h
  diagnostic/diagnostic.cc
  diagnostic/diagnostic.h
  diagnostic/formatter.cc
  diagnostic/formatter.h
  diagnostic/printer.cc
  diagnostic/printer.h
  source.cc
  source.h
  utils/debugger.cc
  utils/debugger.h
  utils/unicode.cc
  utils/unicode.h
)
tint_default_compile_options(tint_diagnostic_utils)

if (TINT_ENABLE_BREAK_IN_DEBUGGER)
  set_source_files_properties(utils/debugger.cc
    PROPERTIES COMPILE_DEFINITIONS "TINT_ENABLE_BREAK_IN_DEBUGGER=1" )
endif()

list(APPEND TINT_LIB_SRCS
  ../../include/tint/tint.h
  ast/accessor_expression.cc
  ast/accessor_expression.h
  ast/alias.cc
  ast/alias.h
  ast/assignment_statement.cc
  ast/assignment_statement.h
  ast/attribute.cc
  ast/attribute.h
  ast/binary_expression.cc
  ast/binary_expression.h
  ast/binding_attribute.cc
  ast/binding_attribute.h
  ast/bitcast_expression.cc
  ast/bitcast_expression.h
  ast/block_statement.cc
  ast/block_statement.h
  ast/bool_literal_expression.cc
  ast/bool_literal_expression.h
  ast/break_if_statement.cc
  ast/break_if_statement.h
  ast/break_statement.cc
  ast/break_statement.h
  ast/builtin_attribute.cc
  ast/builtin_attribute.h
  ast/call_expression.cc
  ast/call_expression.h
  ast/call_statement.cc
  ast/call_statement.h
  ast/case_selector.cc
  ast/case_selector.h
  ast/case_statement.cc
  ast/case_statement.h
  ast/compound_assignment_statement.cc
  ast/compound_assignment_statement.h
  ast/const.cc
  ast/const.h
  ast/const_assert.cc
  ast/const_assert.h
  ast/continue_statement.cc
  ast/continue_statement.h
  ast/diagnostic_attribute.cc
  ast/diagnostic_attribute.h
  ast/diagnostic_control.cc
  ast/diagnostic_control.h
  ast/diagnostic_directive.cc
  ast/diagnostic_directive.h
  ast/diagnostic_rule_name.cc
  ast/diagnostic_rule_name.h
  ast/disable_validation_attribute.cc
  ast/disable_validation_attribute.h
  ast/discard_statement.cc
  ast/discard_statement.h
  ast/enable.cc
  ast/enable.h
  ast/expression.cc
  ast/expression.h
  ast/extension.cc
  ast/extension.h
  ast/float_literal_expression.cc
  ast/float_literal_expression.h
  ast/for_loop_statement.cc
  ast/for_loop_statement.h
  ast/function.cc
  ast/function.h
  ast/group_attribute.cc
  ast/group_attribute.h
  ast/id_attribute.cc
  ast/id_attribute.h
  ast/identifier.cc
  ast/identifier.h
  ast/identifier_expression.cc
  ast/identifier_expression.h
  ast/if_statement.cc
  ast/if_statement.h
  ast/increment_decrement_statement.cc
  ast/increment_decrement_statement.h
  ast/index_accessor_expression.cc
  ast/index_accessor_expression.h
  ast/index_attribute.cc
  ast/index_attribute.h
  ast/int_literal_expression.cc
  ast/int_literal_expression.h
  ast/internal_attribute.cc
  ast/internal_attribute.h
  ast/interpolate_attribute.cc
  ast/interpolate_attribute.h
  ast/invariant_attribute.cc
  ast/invariant_attribute.h
  ast/let.cc
  ast/let.h
  ast/literal_expression.cc
  ast/literal_expression.h
  ast/location_attribute.cc
  ast/location_attribute.h
  ast/loop_statement.cc
  ast/loop_statement.h
  ast/member_accessor_expression.cc
  ast/member_accessor_expression.h
  ast/module.cc
  ast/module.h
  ast/must_use_attribute.cc
  ast/must_use_attribute.h
  ast/node_id.h
  ast/node.cc
  ast/node.h
  ast/override.cc
  ast/override.h
  ast/parameter.cc
  ast/parameter.h
  ast/phony_expression.cc
  ast/phony_expression.h
  ast/pipeline_stage.cc
  ast/pipeline_stage.h
  ast/return_statement.cc
  ast/return_statement.h
  ast/stage_attribute.cc
  ast/stage_attribute.h
  ast/statement.cc
  ast/statement.h
  ast/stride_attribute.cc
  ast/stride_attribute.h
  ast/struct_member_align_attribute.cc
  ast/struct_member_align_attribute.h
  ast/struct_member_offset_attribute.cc
  ast/struct_member_offset_attribute.h
  ast/struct_member_size_attribute.cc
  ast/struct_member_size_attribute.h
  ast/struct_member.cc
  ast/struct_member.h
  ast/struct.cc
  ast/struct.h
  ast/switch_statement.cc
  ast/switch_statement.h
  ast/templated_identifier.cc
  ast/templated_identifier.h
  ast/traverse_expressions.h
  ast/type.cc
  ast/type.h
  ast/type_decl.cc
  ast/type_decl.h
  ast/unary_op_expression.cc
  ast/unary_op_expression.h
  ast/unary_op.cc
  ast/unary_op.h
  ast/var.cc
  ast/var.h
  ast/variable_decl_statement.cc
  ast/variable_decl_statement.h
  ast/variable.cc
  ast/variable.h
  ast/while_statement.cc
  ast/while_statement.h
  ast/workgroup_attribute.cc
  ast/workgroup_attribute.h
  builtin/fluent_types.h
  builtin/number.cc
  builtin/number.h
  clone_context.cc
  clone_context.h
  constant/clone_context.h
  constant/composite.cc
  constant/composite.h
  constant/manager.cc
  constant/manager.h
  constant/scalar.cc
  constant/scalar.h
  constant/splat.cc
  constant/splat.h
  constant/node.cc
  constant/node.h
  constant/value.cc
  constant/value.h
  inspector/entry_point.cc
  inspector/entry_point.h
  inspector/inspector.cc
  inspector/inspector.h
  inspector/resource_binding.cc
  inspector/resource_binding.h
  inspector/scalar.cc
  inspector/scalar.h
  program_builder.cc
  program_builder.h
  program_id.cc
  program_id.h
  program.cc
  program.h
  reflection.h
  reader/reader.cc
  reader/reader.h
  resolver/builtin_structs.cc
  resolver/builtin_structs.h
  resolver/const_eval.cc
  resolver/const_eval.h
  resolver/dependency_graph.cc
  resolver/dependency_graph.h
  resolver/intrinsic_table.cc
  resolver/intrinsic_table.h
  resolver/intrinsic_table.inl
  resolver/resolver.cc
  resolver/resolver.h
  resolver/sem_helper.cc
  resolver/sem_helper.h
  resolver/uniformity.cc
  resolver/uniformity.h
  resolver/validator.cc
  resolver/validator.h
  scope_stack.h
  switch.h
  sem/accessor_expression.cc
  sem/accessor_expression.h
  sem/array_count.cc
  sem/array_count.h
  sem/behavior.cc
  sem/behavior.h
  sem/binding_point.h
  sem/block_statement.cc
  sem/block_statement.h
  sem/break_if_statement.cc
  sem/break_if_statement.h
  sem/builtin.cc
  sem/builtin.h
  sem/builtin_enum_expression.cc
  sem/builtin_enum_expression.h
  sem/call_target.cc
  sem/call_target.h
  sem/call.cc
  sem/call.h
  sem/evaluation_stage.h
  sem/expression.cc
  sem/expression.h
  sem/external_texture.h
  sem/for_loop_statement.cc
  sem/for_loop_statement.h
  sem/function_expression.cc
  sem/function_expression.h
  sem/function.cc
  sem/if_statement.cc
  sem/if_statement.h
  sem/index_accessor_expression.cc
  sem/index_accessor_expression.h
  sem/info.cc
  sem/info.h
  sem/load.cc
  sem/load.h
  sem/loop_statement.cc
  sem/loop_statement.h
  sem/materialize.cc
  sem/materialize.h
  sem/member_accessor_expression.cc
  sem/module.cc
  sem/module.h
  sem/node.cc
  sem/node.h
  sem/pipeline_stage_set.h
  sem/sampler_texture_pair.h
  sem/statement.cc
  sem/struct.cc
  sem/struct.h
  sem/switch_statement.cc
  sem/switch_statement.h
  sem/type_expression.cc
  sem/type_expression.h
  sem/type_mappings.h
  sem/variable.cc
  sem/value_constructor.cc
  sem/value_constructor.h
  sem/value_conversion.cc
  sem/value_conversion.h
  sem/value_expression.cc
  sem/value_expression.h
  sem/while_statement.cc
  sem/while_statement.h
  symbol_table.cc
  symbol_table.h
  symbol.cc
  symbol.h
  tint.cc
  ast/transform/add_empty_entry_point.cc
  ast/transform/add_empty_entry_point.h
  ast/transform/add_block_attribute.cc
  ast/transform/add_block_attribute.h
  ast/transform/array_length_from_uniform.cc
  ast/transform/array_length_from_uniform.h
  ast/transform/binding_remapper.cc
  ast/transform/binding_remapper.h
  ast/transform/builtin_polyfill.cc
  ast/transform/builtin_polyfill.h
  ast/transform/calculate_array_length.cc
  ast/transform/calculate_array_length.h
  ast/transform/clamp_frag_depth.cc
  ast/transform/clamp_frag_depth.h
  ast/transform/canonicalize_entry_point_io.cc
  ast/transform/canonicalize_entry_point_io.h
  ast/transform/combine_samplers.cc
  ast/transform/combine_samplers.h
  ast/transform/decompose_memory_access.cc
  ast/transform/decompose_memory_access.h
  ast/transform/decompose_strided_array.cc
  ast/transform/decompose_strided_array.h
  ast/transform/decompose_strided_matrix.cc
  ast/transform/decompose_strided_matrix.h
  ast/transform/demote_to_helper.cc
  ast/transform/demote_to_helper.h
  ast/transform/direct_variable_access.cc
  ast/transform/direct_variable_access.h
  ast/transform/disable_uniformity_analysis.cc
  ast/transform/disable_uniformity_analysis.h
  ast/transform/expand_compound_assignment.cc
  ast/transform/expand_compound_assignment.h
  ast/transform/first_index_offset.cc
  ast/transform/first_index_offset.h
  ast/transform/fold_trivial_lets.cc
  ast/transform/fold_trivial_lets.h
  ast/transform/for_loop_to_loop.cc
  ast/transform/for_loop_to_loop.h
  ast/transform/localize_struct_array_assignment.cc
  ast/transform/localize_struct_array_assignment.h
  ast/transform/merge_return.cc
  ast/transform/merge_return.h
  ast/transform/module_scope_var_to_entry_point_param.cc
  ast/transform/module_scope_var_to_entry_point_param.h
  ast/transform/multiplanar_external_texture.cc
  ast/transform/multiplanar_external_texture.h
  ast/transform/num_workgroups_from_uniform.cc
  ast/transform/num_workgroups_from_uniform.h
  ast/transform/packed_vec3.cc
  ast/transform/packed_vec3.h
  ast/transform/pad_structs.cc
  ast/transform/pad_structs.h
  ast/transform/preserve_padding.cc
  ast/transform/preserve_padding.h
  ast/transform/promote_initializers_to_let.cc
  ast/transform/promote_initializers_to_let.h
  ast/transform/promote_side_effects_to_decl.cc
  ast/transform/promote_side_effects_to_decl.h
  ast/transform/remove_continue_in_switch.cc
  ast/transform/remove_continue_in_switch.h
  ast/transform/remove_phonies.cc
  ast/transform/remove_phonies.h
  ast/transform/remove_unreachable_statements.cc
  ast/transform/remove_unreachable_statements.h
  ast/transform/renamer.cc
  ast/transform/renamer.h
  ast/transform/robustness.cc
  ast/transform/robustness.h
  ast/transform/simplify_pointers.cc
  ast/transform/simplify_pointers.h
  ast/transform/single_entry_point.cc
  ast/transform/single_entry_point.h
  ast/transform/spirv_atomic.cc
  ast/transform/spirv_atomic.h
  ast/transform/std140.cc
  ast/transform/std140.h
  ast/transform/substitute_override.cc
  ast/transform/substitute_override.h
  ast/transform/texture_1d_to_2d.cc
  ast/transform/texture_1d_to_2d.h
  ast/transform/transform.cc
  ast/transform/transform.h
  ast/transform/truncate_interstage_variables.cc
  ast/transform/truncate_interstage_variables.h
  ast/transform/unshadow.cc
  ast/transform/unshadow.h
  ast/transform/utils/get_insertion_point.cc
  ast/transform/utils/get_insertion_point.h
  ast/transform/utils/hoist_to_decl_before.cc
  ast/transform/utils/hoist_to_decl_before.h
  ast/transform/var_for_dynamic_index.cc
  ast/transform/var_for_dynamic_index.h
  ast/transform/vectorize_matrix_conversions.cc
  ast/transform/vectorize_matrix_conversions.h
  ast/transform/vectorize_scalar_matrix_initializers.cc
  ast/transform/vectorize_scalar_matrix_initializers.h
  ast/transform/vertex_pulling.cc
  ast/transform/vertex_pulling.h
  ast/transform/while_to_loop.cc
  ast/transform/while_to_loop.h
  ast/transform/zero_init_workgroup_memory.cc
  ast/transform/zero_init_workgroup_memory.h
  transform/manager.cc
  transform/manager.h
  transform/transform.cc
  transform/transform.h
  type/abstract_float.cc
  type/abstract_float.h
  type/abstract_int.cc
  type/abstract_int.h
  type/abstract_numeric.cc
  type/abstract_numeric.h
  type/array.cc
  type/array.h
  type/array_count.cc
  type/array_count.h
  type/atomic.cc
  type/atomic.h
  type/bool.cc
  type/bool.h
  type/clone_context.h
  type/depth_multisampled_texture.cc
  type/depth_multisampled_texture.h
  type/depth_texture.cc
  type/depth_texture.h
  type/external_texture.cc
  type/external_texture.h
  type/f16.cc
  type/f16.h
  type/f32.cc
  type/f32.h
  type/i32.cc
  type/i32.h
  type/manager.cc
  type/manager.h
  type/matrix.cc
  type/matrix.h
  type/multisampled_texture.cc
  type/multisampled_texture.h
  type/node.cc
  type/node.h
  type/numeric_scalar.cc
  type/numeric_scalar.h
  type/pointer.cc
  type/pointer.h
  type/reference.cc
  type/reference.h
  type/sampled_texture.cc
  type/sampled_texture.h
  type/sampler.cc
  type/sampler.h
  type/sampler_kind.cc
  type/sampler_kind.h
  type/scalar.cc
  type/scalar.h
  type/storage_texture.cc
  type/storage_texture.h
  type/struct.cc
  type/struct.h
  type/texture.cc
  type/texture.h
  type/texture_dimension.cc
  type/texture_dimension.h
  type/type.cc
  type/type.h
  type/u32.cc
  type/u32.h
  type/unique_node.cc
  type/unique_node.h
  type/vector.cc
  type/vector.h
  type/void.cc
  type/void.h
  utils/bitcast.h
  utils/bitset.h
  utils/block_allocator.h
  utils/bump_allocator.h
  utils/castable.cc
  utils/castable.h
  utils/cli.cc
  utils/cli.h
  utils/compiler_macros.h
  utils/concat.h
  utils/crc32.h
  utils/enum_set.h
  utils/foreach_macro.h
  utils/hash.h
  utils/hashmap_base.h
  utils/hashmap.h
  utils/hashset.h
  utils/map.h
  utils/math.h
  utils/parse_num.cc
  utils/parse_num.h
  utils/predicates.h
  utils/scoped_assignment.h
  utils/slice.h
  utils/string.cc
  utils/string.h
  utils/string_stream.cc
  utils/string_stream.h
  utils/traits.h
  utils/unique_allocator.h
  utils/unique_vector.h
  utils/vector.h
  writer/append_vector.cc
  writer/append_vector.h
  writer/array_length_from_uniform_options.cc
  writer/array_length_from_uniform_options.h
  writer/ast_text_generator.cc
  writer/ast_text_generator.h
  writer/binding_point.h
  writer/binding_remapper_options.cc
  writer/binding_remapper_options.h
  writer/check_supported_extensions.cc
  writer/check_supported_extensions.h
  writer/external_texture_options.cc
  writer/external_texture_options.h
  writer/flatten_bindings.cc
  writer/flatten_bindings.h
  writer/float_to_string.cc
  writer/float_to_string.h
  writer/ir_text_generator.cc
  writer/ir_text_generator.h
  writer/text_generator.cc
  writer/text_generator.h
  writer/text.cc
  writer/text.h
  writer/writer.cc
  writer/writer.h
)

tint_generated(builtin/access BENCH TEST)
tint_generated(builtin/address_space BENCH TEST)
tint_generated(builtin/attribute BENCH TEST)
tint_generated(builtin/builtin BENCH TEST)
tint_generated(builtin/builtin_value BENCH TEST)
tint_generated(builtin/diagnostic_rule BENCH TEST)
tint_generated(builtin/diagnostic_severity BENCH TEST)
tint_generated(builtin/extension BENCH TEST)
tint_generated(builtin/function)
tint_generated(builtin/interpolation_sampling BENCH TEST)
tint_generated(builtin/interpolation_type BENCH TEST)
tint_generated(builtin/texel_format BENCH TEST)

tint_generated(resolver/ctor_conv_intrinsic)
tint_generated(sem/parameter_usage)

if(UNIX)
  list(APPEND TINT_LIB_SRCS diagnostic/printer_posix.cc)
elseif(WIN32)
  list(APPEND TINT_LIB_SRCS diagnostic/printer_windows.cc)
else()
  list(APPEND TINT_LIB_SRCS diagnostic/printer_other.cc)
endif()

if(${TINT_BUILD_SPV_READER})
  list(APPEND TINT_LIB_SRCS
    reader/spirv/attributes.h
    reader/spirv/construct.h
    reader/spirv/construct.cc
    reader/spirv/entry_point_info.h
    reader/spirv/entry_point_info.cc
    reader/spirv/enum_converter.h
    reader/spirv/enum_converter.cc
    reader/spirv/fail_stream.h
    reader/spirv/function.cc
    reader/spirv/function.h
    reader/spirv/namer.cc
    reader/spirv/namer.h
    reader/spirv/parser_type.cc
    reader/spirv/parser_type.h
    reader/spirv/parser.cc
    reader/spirv/parser.h
    reader/spirv/parser_impl.cc
    reader/spirv/parser_impl.h
    reader/spirv/usage.cc
    reader/spirv/usage.h
  )
endif()

if(${TINT_BUILD_WGSL_READER})
  list(APPEND TINT_LIB_SRCS
    reader/wgsl/classify_template_args.cc
    reader/wgsl/classify_template_args.h
    reader/wgsl/lexer.cc
    reader/wgsl/lexer.h
    reader/wgsl/parser.cc
    reader/wgsl/parser.h
    reader/wgsl/parser_impl.cc
    reader/wgsl/parser_impl.h
    reader/wgsl/parser_impl_detail.h
    reader/wgsl/token.cc
    reader/wgsl/token.h
  )
endif()

if(${TINT_BUILD_SPV_WRITER})
  list(APPEND TINT_LIB_SRCS
    writer/spirv/binary_writer.cc
    writer/spirv/binary_writer.h
    writer/spirv/builder.cc
    writer/spirv/builder.h
    writer/spirv/function.cc
    writer/spirv/function.h
    writer/spirv/generator.cc
    writer/spirv/generator.h
    writer/spirv/generator_impl.cc
    writer/spirv/generator_impl.h
    writer/spirv/instruction.cc
    writer/spirv/instruction.h
    writer/spirv/module.cc
    writer/spirv/module.h
    writer/spirv/operand.cc
    writer/spirv/operand.h
    writer/spirv/scalar_constant.h
  )

  if(${TINT_BUILD_IR})
    list(APPEND TINT_LIB_SRCS
      ir/transform/builtin_polyfill_spirv.cc
      ir/transform/builtin_polyfill_spirv.h
      ir/transform/expand_implicit_splats.cc
      ir/transform/expand_implicit_splats.h
      ir/transform/handle_matrix_arithmetic.cc
      ir/transform/handle_matrix_arithmetic.h
      ir/transform/merge_return.cc
      ir/transform/merge_return.h
      ir/transform/shader_io_spirv.cc
      ir/transform/shader_io_spirv.h
      ir/transform/var_for_dynamic_index.cc
      ir/transform/var_for_dynamic_index.h
      writer/spirv/ir/generator_impl_ir.cc
      writer/spirv/ir/generator_impl_ir.h
    )
  endif()
endif()

if(${TINT_BUILD_WGSL_WRITER})
  list(APPEND TINT_LIB_SRCS
    writer/wgsl/generator.cc
    writer/wgsl/generator.h
    writer/wgsl/generator_impl.cc
    writer/wgsl/generator_impl.h
  )
endif()

if(${TINT_BUILD_MSL_WRITER})
  list(APPEND TINT_LIB_SRCS
    writer/msl/generator.cc
    writer/msl/generator.h
    writer/msl/generator_impl.cc
    writer/msl/generator_impl.h
    writer/msl/generator_support.cc
    writer/msl/generator_support.h
  )

  if(${TINT_BUILD_IR})
    list(APPEND TINT_LIB_SRCS
      writer/msl/ir/generator_impl_ir.cc
      writer/msl/ir/generator_impl_ir.h
    )
  endif()
endif()

if(${TINT_BUILD_GLSL_WRITER})
  list(APPEND TINT_LIB_SRCS
    writer/glsl/generator.cc
    writer/glsl/generator.h
    writer/glsl/generator_impl.cc
    writer/glsl/generator_impl.h
    writer/glsl/version.h
  )
endif()

if(${TINT_BUILD_HLSL_WRITER})
  list(APPEND TINT_LIB_SRCS
    writer/hlsl/generator.cc
    writer/hlsl/generator.h
    writer/hlsl/generator_impl.cc
    writer/hlsl/generator_impl.h
  )
endif()

if(${TINT_BUILD_SYNTAX_TREE_WRITER})
    list(APPEND TINT_LIB_SRCS
      writer/syntax_tree/generator.cc
      writer/syntax_tree/generator.h
      writer/syntax_tree/generator_impl.cc
      writer/syntax_tree/generator_impl.h
    )
endif()

if(${TINT_BUILD_IR})
  list(APPEND TINT_LIB_SRCS
    ir/access.cc
    ir/access.h
    ir/binary.cc
    ir/binary.h
    ir/binding_point.h
    ir/bitcast.cc
    ir/bitcast.h
    ir/block.cc
    ir/block.h
    ir/block_param.cc
    ir/block_param.h
    ir/break_if.cc
    ir/break_if.h
    ir/builder.cc
    ir/builder.h
    ir/builtin_call.cc
    ir/builtin_call.h
    ir/call.cc
    ir/call.h
    ir/constant.cc
    ir/constant.h
    ir/construct.cc
    ir/construct.h
    ir/continue.cc
    ir/continue.h
    ir/control_instruction.cc
    ir/control_instruction.h
    ir/convert.cc
    ir/convert.h
    ir/core_builtin_call.cc
    ir/core_builtin_call.h
    ir/disassembler.cc
    ir/disassembler.h
    ir/discard.cc
    ir/discard.h
    ir/exit_if.cc
    ir/exit_if.h
    ir/exit_loop.cc
    ir/exit_loop.h
    ir/exit_switch.cc
    ir/exit_switch.h
    ir/exit.cc
    ir/exit.h
    ir/from_program.cc
    ir/from_program.h
    ir/function.cc
    ir/function.h
    ir/function_param.cc
    ir/function_param.h
    ir/if.cc
    ir/if.h
    ir/instruction.cc
    ir/instruction.h
    ir/instruction_result.cc
    ir/instruction_result.h
    ir/intrinsic_call.cc
    ir/intrinsic_call.h
    ir/let.cc
    ir/let.h
    ir/load.cc
    ir/load.h
    ir/load_vector_element.cc
    ir/load_vector_element.h
    ir/location.h
    ir/loop.cc
    ir/loop.h
    ir/module.cc
    ir/module.h
    ir/multi_in_block.cc
    ir/multi_in_block.h
    ir/next_iteration.cc
    ir/next_iteration.h
    ir/operand_instruction.cc
    ir/operand_instruction.h
    ir/return.cc
    ir/return.h
    ir/store.cc
    ir/store.h
    ir/store_vector_element.cc
    ir/store_vector_element.h
    ir/switch.cc
    ir/switch.h
    ir/swizzle.cc
    ir/swizzle.h
    ir/terminate_invocation.cc
    ir/terminate_invocation.h
    ir/terminator.cc
    ir/terminator.h
    ir/to_program.cc
    ir/to_program.h
    ir/unary.cc
    ir/unary.h
    ir/unreachable.cc
    ir/unreachable.h
    ir/user_call.cc
    ir/user_call.h
    ir/validator.cc
    ir/validator.h
    ir/value.cc
    ir/value.h
    ir/var.cc
    ir/var.h
    ir/transform/add_empty_entry_point.cc
    ir/transform/add_empty_entry_point.h
    ir/transform/block_decorated_structs.cc
    ir/transform/block_decorated_structs.h
    ir/transform/demote_to_helper.cc
    ir/transform/demote_to_helper.h
    ir/transform/shader_io.cc
    ir/transform/shader_io.h
    ir/transform/transform.cc
    ir/transform/transform.h
  )
endif()

if(MSVC)
  list(APPEND TINT_LIB_SRCS
    tint.natvis
  )
endif()

## Tint IO utilities. Used by tint_val.
add_library(tint_utils_io
  utils/io/command_${TINT_OS_CC_SUFFIX}.cc
  utils/io/command.h
  utils/io/tmpfile_${TINT_OS_CC_SUFFIX}.cc
  utils/io/tmpfile.h
)
tint_default_compile_options(tint_utils_io)
target_link_libraries(tint_utils_io tint_diagnostic_utils)

## Tint validation utilities. Used by tests and the tint executable.
add_library(tint_val
  val/hlsl.cc
  val/msl.cc
  val/val.h
)

# If we're building on mac / ios and we have CoreGraphics, then we can use the
# metal API to validate our shaders. This is roughly 4x faster than invoking
# the metal shader compiler executable.
if(APPLE)
  find_library(LIB_CORE_GRAPHICS CoreGraphics)
  if(LIB_CORE_GRAPHICS)
    target_sources(tint_val PRIVATE "val/msl_metal.mm")
    target_compile_definitions(tint_val PUBLIC "-DTINT_ENABLE_MSL_VALIDATION_USING_METAL_API=1")
    target_compile_options(tint_val PRIVATE "-fmodules" "-fcxx-modules")
    target_link_options(tint_val PUBLIC "-framework" "CoreGraphics")
  endif()
endif()

tint_default_compile_options(tint_val)
target_link_libraries(tint_val tint_utils_io)

## Tint library
add_library(libtint ${TINT_LIB_SRCS})
tint_default_compile_options(libtint)
target_link_libraries(libtint tint_diagnostic_utils absl_strings)
set_target_properties(libtint PROPERTIES OUTPUT_NAME "tint")

if (${TINT_BUILD_FUZZERS})
  # Tint library with fuzzer instrumentation
  add_library(libtint-fuzz ${TINT_LIB_SRCS})
  tint_default_compile_options(libtint-fuzz)
  target_link_libraries(libtint-fuzz tint_diagnostic_utils absl_strings)
  if (${COMPILER_IS_LIKE_GNU})
    target_compile_options(libtint-fuzz PRIVATE -fvisibility=hidden)
  endif()

  if (NOT ${TINT_LIB_FUZZING_ENGINE_LINK_OPTIONS} STREQUAL "")
    # This is set when the fuzzers are being built by OSS-Fuzz. In this case the
    # variable provides the necessary linker flags, and OSS-Fuzz will take care
    # of passing suitable compiler flags.
    target_link_options(libtint-fuzz PUBLIC ${TINT_LIB_FUZZING_ENGINE_LINK_OPTIONS})
  else()
    # When the fuzzers are being built outside of OSS-Fuzz, specific libFuzzer
    # arguments to enable fuzzing are used.
    target_compile_options(libtint-fuzz PUBLIC -fsanitize=fuzzer -fsanitize-coverage=trace-cmp)
    target_link_options(libtint-fuzz PUBLIC -fsanitize=fuzzer -fsanitize-coverage=trace-cmp)
  endif()
endif()

if(${TINT_BUILD_SPV_READER} OR ${TINT_BUILD_SPV_WRITER})
  tint_spvtools_compile_options(libtint)
  if (${TINT_BUILD_FUZZERS})
    tint_spvtools_compile_options(libtint-fuzz)
  endif()
endif()


################################################################################
# Tests
################################################################################
if(TINT_BUILD_TESTS)
  list(APPEND TINT_TEST_SRCS
    ast/alias_test.cc
    ast/assignment_statement_test.cc
    ast/binary_expression_test.cc
    ast/binding_attribute_test.cc
    ast/bitcast_expression_test.cc
    ast/block_statement_test.cc
    ast/bool_literal_expression_test.cc
    ast/break_if_statement_test.cc
    ast/break_statement_test.cc
    ast/builtin_attribute_test.cc
    ast/builtin_texture_helper_test.cc
    ast/builtin_texture_helper_test.h
    ast/call_expression_test.cc
    ast/call_statement_test.cc
    ast/case_selector_test.cc
    ast/case_statement_test.cc
    ast/compound_assignment_statement_test.cc
    ast/const_assert_test.cc
    ast/continue_statement_test.cc
    ast/diagnostic_attribute_test.cc
    ast/diagnostic_control_test.cc
    ast/diagnostic_directive_test.cc
    ast/diagnostic_rule_name_test.cc
    ast/discard_statement_test.cc
    ast/enable_test.cc
    ast/float_literal_expression_test.cc
    ast/for_loop_statement_test.cc
    ast/function_test.cc
    ast/group_attribute_test.cc
    ast/id_attribute_test.cc
    ast/identifier_test.cc
    ast/identifier_expression_test.cc
    ast/if_statement_test.cc
    ast/increment_decrement_statement_test.cc
    ast/index_accessor_expression_test.cc
    ast/index_attribute_test.cc
    ast/int_literal_expression_test.cc
    ast/interpolate_attribute_test.cc
    ast/location_attribute_test.cc
    ast/loop_statement_test.cc
    ast/member_accessor_expression_test.cc
    ast/module_test.cc
    ast/phony_expression_test.cc
    ast/return_statement_test.cc
    ast/stage_attribute_test.cc
    ast/stride_attribute_test.cc
    ast/struct_member_align_attribute_test.cc
    ast/struct_member_offset_attribute_test.cc
    ast/struct_member_size_attribute_test.cc
    ast/struct_member_test.cc
    ast/struct_test.cc
    ast/switch_statement_test.cc
    ast/templated_identifier_test.cc
    ast/test_helper.h
    ast/test_helper_test.cc
    ast/traverse_expressions_test.cc
    ast/unary_op_expression_test.cc
    ast/variable_decl_statement_test.cc
    ast/variable_test.cc
    ast/while_statement_test.cc
    ast/workgroup_attribute_test.cc
    builtin/number_test.cc
    clone_context_test.cc
    constant/composite_test.cc
    constant/manager_test.cc
    constant/scalar_test.cc
    constant/splat_test.cc
    constant/value_test.cc
    debug_test.cc
    diagnostic/diagnostic_test.cc
    diagnostic/formatter_test.cc
    diagnostic/printer_test.cc
    program_builder_test.cc
    program_test.cc
    reflection_test.cc
    resolver/alias_analysis_test.cc
    resolver/array_accessor_test.cc
    resolver/assignment_validation_test.cc
    resolver/atomics_test.cc
    resolver/atomics_validation_test.cc
    resolver/attribute_validation_test.cc
    resolver/bitcast_validation_test.cc
    resolver/builtin_enum_test.cc
    resolver/builtin_structs_test.cc
    resolver/builtin_test.cc
    resolver/builtin_validation_test.cc
    resolver/builtins_validation_test.cc
    resolver/call_test.cc
    resolver/call_validation_test.cc
    resolver/compound_assignment_validation_test.cc
    resolver/compound_statement_test.cc
    resolver/const_assert_test.cc
    resolver/const_eval_binary_op_test.cc
    resolver/const_eval_bitcast_test.cc
    resolver/const_eval_builtin_test.cc
    resolver/const_eval_construction_test.cc
    resolver/const_eval_conversion_test.cc
    resolver/const_eval_indexing_test.cc
    resolver/const_eval_member_access_test.cc
    resolver/const_eval_runtime_semantics_test.cc
    resolver/const_eval_test.h
    resolver/const_eval_unary_op_test.cc
    resolver/control_block_validation_test.cc
    resolver/dependency_graph_test.cc
    resolver/diagnostic_control_test.cc
    resolver/dual_source_blending_extension_test.cc
    resolver/entry_point_validation_test.cc
    resolver/evaluation_stage_test.cc
    resolver/expression_kind_test.cc
    resolver/f16_extension_test.cc
    resolver/function_validation_test.cc
    resolver/host_shareable_validation_test.cc
    resolver/increment_decrement_validation_test.cc
    resolver/inferred_type_test.cc
    resolver/intrinsic_table_test.cc
    resolver/is_host_shareable_test.cc
    resolver/is_storeable_test.cc
    resolver/load_test.cc
    resolver/materialize_test.cc
    resolver/override_test.cc
    resolver/ptr_ref_test.cc
    resolver/ptr_ref_validation_test.cc
    resolver/resolver_behavior_test.cc
    resolver/resolver_test_helper.cc
    resolver/resolver_test_helper.h
    resolver/resolver_test.cc
    resolver/side_effects_test.cc
    resolver/root_identifier_test.cc
    resolver/address_space_layout_validation_test.cc
    resolver/address_space_validation_test.cc
    resolver/struct_layout_test.cc
    resolver/struct_pipeline_stage_use_test.cc
    resolver/struct_address_space_use_test.cc
    resolver/type_validation_test.cc
    resolver/unresolved_identifier_test.cc
    resolver/validation_test.cc
    resolver/validator_is_storeable_test.cc
    resolver/value_constructor_validation_test.cc
    resolver/variable_test.cc
    resolver/variable_validation_test.cc
    scope_stack_test.cc
    sem/builtin_test.cc
    sem/diagnostic_severity_test.cc
    sem/struct_test.cc
    sem/value_expression_test.cc
    source_test.cc
    switch_test.cc
    symbol_table_test.cc
    symbol_test.cc
    test_main.cc
    ast/transform/transform_test.cc
    transform/manager_test.cc
    type/array_test.cc
    type/atomic_test.cc
    type/bool_test.cc
    type/depth_multisampled_texture_test.cc
    type/depth_texture_test.cc
    type/external_texture_test.cc
    type/f16_test.cc
    type/f32_test.cc
    type/i32_test.cc
    type/manager_test.cc
    type/matrix_test.cc
    type/multisampled_texture_test.cc
    type/pointer_test.cc
    type/reference_test.cc
    type/sampled_texture_test.cc
    type/sampler_test.cc
    type/storage_texture_test.cc
    type/struct_test.cc
    type/texture_test.cc
    type/type_test.cc
    type/u32_test.cc
    type/vector_test.cc
    utils/bitcast_test.cc
    utils/bitset_test.cc
    utils/block_allocator_test.cc
    utils/bump_allocator_test.cc
    utils/cli_test.cc
    utils/castable_test.cc
    utils/crc32_test.cc
    utils/defer_test.cc
    utils/enum_set_test.cc
    utils/hash_test.cc
    utils/io/command_test.cc
    utils/io/tmpfile_test.cc
    utils/hashmap_test.cc
    utils/hashset_test.cc
    utils/map_test.cc
    utils/math_test.cc
    utils/predicates_test.cc
    utils/result_test.cc
    utils/reverse_test.cc
    utils/scoped_assignment_test.cc
    utils/slice_test.cc
    utils/string_stream_test.cc
    utils/string_test.cc
    utils/traits_test.cc
    utils/transform_test.cc
    utils/unicode_test.cc
    utils/unique_allocator_test.cc
    utils/unique_vector_test.cc
    utils/vector_test.cc
    writer/append_vector_test.cc
    writer/ast_text_generator_test.cc
    writer/check_supported_extensions_test.cc
    writer/flatten_bindings_test.cc
    writer/float_to_string_test.cc
  )

  # Noet, the source files are included here otherwise the cmd sources would not be included in the
  # test binary.
  list(APPEND TINT_TEST_SRCS
    cmd/generate_external_texture_bindings.cc
    cmd/generate_external_texture_bindings.h
    cmd/generate_external_texture_bindings_test.cc
  )

  # Uniformity analysis tests depend on WGSL reader
  if(${TINT_BUILD_WGSL_READER})
    list(APPEND TINT_TEST_SRCS
      resolver/uniformity_test.cc
    )
  endif()

  # Inspector tests depend on WGSL reader
  if(${TINT_BUILD_WGSL_READER})
    list(APPEND TINT_TEST_SRCS
      inspector/inspector_test.cc
      inspector/test_inspector_builder.cc
      inspector/test_inspector_builder.h
      inspector/test_inspector_runner.cc
      inspector/test_inspector_runner.h
    )
  endif()

  if(${TINT_BUILD_SPV_READER} AND ${TINT_BUILD_WGSL_WRITER})
    list(APPEND TINT_TEST_SRCS
      reader/spirv/enum_converter_test.cc
      reader/spirv/fail_stream_test.cc
      reader/spirv/function_arithmetic_test.cc
      reader/spirv/function_bit_test.cc
      reader/spirv/function_cfg_test.cc
      reader/spirv/function_call_test.cc
      reader/spirv/function_composite_test.cc
      reader/spirv/function_conversion_test.cc
      reader/spirv/function_decl_test.cc
      reader/spirv/function_glsl_std_450_test.cc
      reader/spirv/function_logical_test.cc
      reader/spirv/function_memory_test.cc
      reader/spirv/function_misc_test.cc
      reader/spirv/function_var_test.cc
      reader/spirv/namer_test.cc
      reader/spirv/parser_impl_barrier_test.cc
      reader/spirv/parser_impl_constant_test.cc
      reader/spirv/parser_impl_convert_member_decoration_test.cc
      reader/spirv/parser_impl_convert_type_test.cc
      reader/spirv/parser_impl_function_decl_test.cc
      reader/spirv/parser_impl_get_decorations_test.cc
      reader/spirv/parser_impl_handle_test.cc
      reader/spirv/parser_impl_import_test.cc
      reader/spirv/parser_impl_module_var_test.cc
      reader/spirv/parser_impl_named_types_test.cc
      reader/spirv/parser_impl_test_helper.cc
      reader/spirv/parser_impl_test_helper.h
      reader/spirv/parser_impl_test.cc
      reader/spirv/parser_impl_user_name_test.cc
      reader/spirv/parser_type_test.cc
      reader/spirv/parser_test.cc
      reader/spirv/spirv_tools_helpers_test.cc
      reader/spirv/spirv_tools_helpers_test.h
      reader/spirv/usage_test.cc
    )
  endif()

  if(${TINT_BUILD_WGSL_READER})
    list(APPEND TINT_TEST_SRCS
      reader/wgsl/classify_template_args_test.cc
      reader/wgsl/lexer_test.cc
      reader/wgsl/parser_test.cc
      reader/wgsl/parser_impl_additive_expression_test.cc
      reader/wgsl/parser_impl_argument_expression_list_test.cc
      reader/wgsl/parser_impl_assignment_stmt_test.cc
      reader/wgsl/parser_impl_bitwise_expression_test.cc
      reader/wgsl/parser_impl_break_stmt_test.cc
      reader/wgsl/parser_impl_bug_cases_test.cc
      reader/wgsl/parser_impl_call_stmt_test.cc
      reader/wgsl/parser_impl_compound_stmt_test.cc
      reader/wgsl/parser_impl_const_literal_test.cc
      reader/wgsl/parser_impl_continue_stmt_test.cc
      reader/wgsl/parser_impl_continuing_stmt_test.cc
      reader/wgsl/parser_impl_core_lhs_expression_test.cc
      reader/wgsl/parser_impl_diagnostic_attribute_test.cc
      reader/wgsl/parser_impl_diagnostic_control_test.cc
      reader/wgsl/parser_impl_diagnostic_directive_test.cc
      reader/wgsl/parser_impl_enable_directive_test.cc
      reader/wgsl/parser_impl_error_msg_test.cc
      reader/wgsl/parser_impl_error_resync_test.cc
      reader/wgsl/parser_impl_expression_test.cc
      reader/wgsl/parser_impl_for_stmt_test.cc
      reader/wgsl/parser_impl_function_decl_test.cc
      reader/wgsl/parser_impl_function_attribute_list_test.cc
      reader/wgsl/parser_impl_function_attribute_test.cc
      reader/wgsl/parser_impl_function_header_test.cc
      reader/wgsl/parser_impl_global_constant_decl_test.cc
      reader/wgsl/parser_impl_global_decl_test.cc
      reader/wgsl/parser_impl_global_variable_decl_test.cc
      reader/wgsl/parser_impl_if_stmt_test.cc
      reader/wgsl/parser_impl_increment_decrement_stmt_test.cc
      reader/wgsl/parser_impl_lhs_expression_test.cc
      reader/wgsl/parser_impl_loop_stmt_test.cc
      reader/wgsl/parser_impl_math_expression_test.cc
      reader/wgsl/parser_impl_multiplicative_expression_test.cc
      reader/wgsl/parser_impl_param_list_test.cc
      reader/wgsl/parser_impl_paren_expression_test.cc
      reader/wgsl/parser_impl_primary_expression_test.cc
      reader/wgsl/parser_impl_relational_expression_test.cc
      reader/wgsl/parser_impl_reserved_keyword_test.cc
      reader/wgsl/parser_impl_require_directive_test.cc
      reader/wgsl/parser_impl_shift_expression_test.cc
      reader/wgsl/parser_impl_singular_expression_test.cc
      reader/wgsl/parser_impl_statement_test.cc
      reader/wgsl/parser_impl_statements_test.cc
      reader/wgsl/parser_impl_struct_body_decl_test.cc
      reader/wgsl/parser_impl_struct_decl_test.cc
      reader/wgsl/parser_impl_struct_attribute_decl_test.cc
      reader/wgsl/parser_impl_struct_member_attribute_decl_test.cc
      reader/wgsl/parser_impl_struct_member_attribute_test.cc
      reader/wgsl/parser_impl_struct_member_test.cc
      reader/wgsl/parser_impl_switch_body_test.cc
      reader/wgsl/parser_impl_switch_stmt_test.cc
      reader/wgsl/parser_impl_test.cc
      reader/wgsl/parser_impl_test_helper.cc
      reader/wgsl/parser_impl_test_helper.h
      reader/wgsl/parser_impl_type_alias_test.cc
      reader/wgsl/parser_impl_type_decl_test.cc
      reader/wgsl/parser_impl_unary_expression_test.cc
      reader/wgsl/parser_impl_variable_decl_test.cc
      reader/wgsl/parser_impl_variable_attribute_list_test.cc
      reader/wgsl/parser_impl_variable_attribute_test.cc
      reader/wgsl/parser_impl_variable_ident_decl_test.cc
      reader/wgsl/parser_impl_variable_stmt_test.cc
      reader/wgsl/parser_impl_variable_qualifier_test.cc
      reader/wgsl/parser_impl_while_stmt_test.cc
      reader/wgsl/token_test.cc
    )
  endif()

  if(${TINT_BUILD_SPV_WRITER})
    list(APPEND TINT_TEST_SRCS
      writer/spirv/binary_writer_test.cc
      writer/spirv/builder_accessor_expression_test.cc
      writer/spirv/builder_assign_test.cc
      writer/spirv/builder_binary_expression_test.cc
      writer/spirv/builder_bitcast_expression_test.cc
      writer/spirv/builder_block_test.cc
      writer/spirv/builder_builtin_test.cc
      writer/spirv/builder_builtin_texture_test.cc
      writer/spirv/builder_call_test.cc
      writer/spirv/builder_const_assert_test.cc
      writer/spirv/builder_constructor_expression_test.cc
      writer/spirv/builder_discard_test.cc
      writer/spirv/builder_entry_point_test.cc
      writer/spirv/builder_format_conversion_test.cc
      writer/spirv/builder_function_attribute_test.cc
      writer/spirv/builder_function_test.cc
      writer/spirv/builder_function_variable_test.cc
      writer/spirv/builder_global_variable_test.cc
      writer/spirv/builder_ident_expression_test.cc
      writer/spirv/builder_if_test.cc
      writer/spirv/builder_literal_test.cc
      writer/spirv/builder_loop_test.cc
      writer/spirv/builder_return_test.cc
      writer/spirv/builder_switch_test.cc
      writer/spirv/builder_test.cc
      writer/spirv/builder_type_test.cc
      writer/spirv/builder_unary_op_expression_test.cc
      writer/spirv/instruction_test.cc
      writer/spirv/module_test.cc
      writer/spirv/operand_test.cc
      writer/spirv/scalar_constant_test.cc
      writer/spirv/spv_dump.cc
      writer/spirv/spv_dump.h
      writer/spirv/test_helper.h
    )

    if(${TINT_BUILD_IR})
      list(APPEND TINT_TEST_SRCS
        ir/transform/builtin_polyfill_spirv_test.cc
        ir/transform/handle_matrix_arithmetic_test.cc
        ir/transform/expand_implicit_splats_test.cc
        ir/transform/merge_return_test.cc
        ir/transform/shader_io_spirv_test.cc
        ir/transform/var_for_dynamic_index_test.cc
        writer/spirv/ir/generator_impl_ir_access_test.cc
        writer/spirv/ir/generator_impl_ir_binary_test.cc
        writer/spirv/ir/generator_impl_ir_bitcast_test.cc
        writer/spirv/ir/generator_impl_ir_builtin_test.cc
        writer/spirv/ir/generator_impl_ir_constant_test.cc
        writer/spirv/ir/generator_impl_ir_construct_test.cc
        writer/spirv/ir/generator_impl_ir_convert_test.cc
        writer/spirv/ir/generator_impl_ir_discard_test.cc
        writer/spirv/ir/generator_impl_ir_function_test.cc
        writer/spirv/ir/generator_impl_ir_if_test.cc
        writer/spirv/ir/generator_impl_ir_let_test.cc
        writer/spirv/ir/generator_impl_ir_loop_test.cc
        writer/spirv/ir/generator_impl_ir_switch_test.cc
        writer/spirv/ir/generator_impl_ir_swizzle_test.cc
        writer/spirv/ir/generator_impl_ir_test.cc
        writer/spirv/ir/generator_impl_ir_texture_builtin_test.cc
        writer/spirv/ir/generator_impl_ir_type_test.cc
        writer/spirv/ir/generator_impl_ir_unary_test.cc
        writer/spirv/ir/generator_impl_ir_var_test.cc
        writer/spirv/ir/test_helper_ir.h
      )
    endif()
  endif()

  if(${TINT_BUILD_WGSL_WRITER})
    list(APPEND TINT_TEST_SRCS
      writer/wgsl/generator_impl_test.cc
      writer/wgsl/generator_impl_alias_type_test.cc
      writer/wgsl/generator_impl_array_accessor_test.cc
      writer/wgsl/generator_impl_assign_test.cc
      writer/wgsl/generator_impl_binary_test.cc
      writer/wgsl/generator_impl_bitcast_test.cc
      writer/wgsl/generator_impl_block_test.cc
      writer/wgsl/generator_impl_break_test.cc
      writer/wgsl/generator_impl_call_test.cc
      writer/wgsl/generator_impl_case_test.cc
      writer/wgsl/generator_impl_cast_test.cc
      writer/wgsl/generator_impl_const_assert_test.cc
      writer/wgsl/generator_impl_constructor_test.cc
      writer/wgsl/generator_impl_continue_test.cc
      writer/wgsl/generator_impl_diagnostic_test.cc
      writer/wgsl/generator_impl_discard_test.cc
      writer/wgsl/generator_impl_enable_test.cc
      writer/wgsl/generator_impl_function_test.cc
      writer/wgsl/generator_impl_global_decl_test.cc
      writer/wgsl/generator_impl_identifier_test.cc
      writer/wgsl/generator_impl_if_test.cc
      writer/wgsl/generator_impl_loop_test.cc
      writer/wgsl/generator_impl_literal_test.cc
      writer/wgsl/generator_impl_member_accessor_test.cc
      writer/wgsl/generator_impl_return_test.cc
      writer/wgsl/generator_impl_switch_test.cc
      writer/wgsl/generator_impl_type_test.cc
      writer/wgsl/generator_impl_unary_op_test.cc
      writer/wgsl/generator_impl_variable_decl_statement_test.cc
      writer/wgsl/generator_impl_variable_test.cc
      writer/wgsl/test_helper.h
    )
  endif()

  if(${TINT_BUILD_WGSL_READER} AND ${TINT_BUILD_WGSL_WRITER})
    list(APPEND TINT_TEST_SRCS
      ast/module_clone_test.cc
      ast/transform/add_empty_entry_point_test.cc
      ast/transform/add_block_attribute_test.cc
      ast/transform/array_length_from_uniform_test.cc
      ast/transform/binding_remapper_test.cc
      ast/transform/builtin_polyfill_test.cc
      ast/transform/calculate_array_length_test.cc
      ast/transform/clamp_frag_depth_test.cc
      ast/transform/canonicalize_entry_point_io_test.cc
      ast/transform/combine_samplers_test.cc
      ast/transform/decompose_memory_access_test.cc
      ast/transform/decompose_strided_array_test.cc
      ast/transform/decompose_strided_matrix_test.cc
      ast/transform/demote_to_helper_test.cc
      ast/transform/direct_variable_access_test.cc
      ast/transform/disable_uniformity_analysis_test.cc
      ast/transform/expand_compound_assignment_test.cc
      ast/transform/first_index_offset_test.cc
      ast/transform/fold_trivial_lets_test.cc
      ast/transform/for_loop_to_loop_test.cc
      ast/transform/expand_compound_assignment_test.cc
      ast/transform/localize_struct_array_assignment_test.cc
      ast/transform/merge_return_test.cc
      ast/transform/module_scope_var_to_entry_point_param_test.cc
      ast/transform/multiplanar_external_texture_test.cc
      ast/transform/num_workgroups_from_uniform_test.cc
      ast/transform/packed_vec3_test.cc
      ast/transform/pad_structs_test.cc
      ast/transform/preserve_padding_test.cc
      ast/transform/promote_initializers_to_let_test.cc
      ast/transform/promote_side_effects_to_decl_test.cc
      ast/transform/remove_continue_in_switch_test.cc
      ast/transform/remove_phonies_test.cc
      ast/transform/remove_unreachable_statements_test.cc
      ast/transform/renamer_test.cc
      ast/transform/robustness_test.cc
      ast/transform/simplify_pointers_test.cc
      ast/transform/single_entry_point_test.cc
      ast/transform/spirv_atomic_test.cc
      ast/transform/std140_exhaustive_test.cc
      ast/transform/std140_f16_test.cc
      ast/transform/std140_f32_test.cc
      ast/transform/std140_test.cc
      ast/transform/substitute_override_test.cc
      ast/transform/test_helper.h
      ast/transform/texture_1d_to_2d_test.cc
      ast/transform/truncate_interstage_variables_test.cc
      ast/transform/unshadow_test.cc
      ast/transform/var_for_dynamic_index_test.cc
      ast/transform/vectorize_matrix_conversions_test.cc
      ast/transform/vectorize_scalar_matrix_initializers_test.cc
      ast/transform/vertex_pulling_test.cc
      ast/transform/while_to_loop_test.cc
      ast/transform/zero_init_workgroup_memory_test.cc
      ast/transform/utils/get_insertion_point_test.cc
      ast/transform/utils/hoist_to_decl_before_test.cc
    )
  endif()

  if(${TINT_BUILD_MSL_WRITER})
    list(APPEND TINT_TEST_SRCS
      writer/msl/generator_impl_array_accessor_test.cc
      writer/msl/generator_impl_assign_test.cc
      writer/msl/generator_impl_binary_test.cc
      writer/msl/generator_impl_bitcast_test.cc
      writer/msl/generator_impl_block_test.cc
      writer/msl/generator_impl_break_test.cc
      writer/msl/generator_impl_builtin_test.cc
      writer/msl/generator_impl_builtin_texture_test.cc
      writer/msl/generator_impl_call_test.cc
      writer/msl/generator_impl_case_test.cc
      writer/msl/generator_impl_cast_test.cc
      writer/msl/generator_impl_const_assert_test.cc
      writer/msl/generator_impl_constructor_test.cc
      writer/msl/generator_impl_continue_test.cc
      writer/msl/generator_impl_discard_test.cc
      writer/msl/generator_impl_function_test.cc
      writer/msl/generator_impl_identifier_test.cc
      writer/msl/generator_impl_if_test.cc
      writer/msl/generator_impl_import_test.cc
      writer/msl/generator_impl_loop_test.cc
      writer/msl/generator_impl_member_accessor_test.cc
      writer/msl/generator_impl_module_constant_test.cc
      writer/msl/generator_impl_return_test.cc
      writer/msl/generator_impl_sanitizer_test.cc
      writer/msl/generator_impl_switch_test.cc
      writer/msl/generator_impl_test.cc
      writer/msl/generator_impl_type_test.cc
      writer/msl/generator_impl_unary_op_test.cc
      writer/msl/generator_impl_variable_decl_statement_test.cc
      writer/msl/generator_support_test.cc
      writer/msl/test_helper.h
    )

    if(${TINT_BUILD_IR})
      list(APPEND TINT_TEST_SRCS
        writer/msl/ir/generator_impl_ir_constant_test.cc
        writer/msl/ir/generator_impl_ir_function_test.cc
        writer/msl/ir/generator_impl_ir_type_test.cc
        writer/msl/ir/test_helper_ir.h
      )
    endif()
  endif()

  if (${TINT_BUILD_GLSL_WRITER})
    list(APPEND TINT_TEST_SRCS
      writer/glsl/generator_impl_array_accessor_test.cc
      writer/glsl/generator_impl_assign_test.cc
      writer/glsl/generator_impl_binary_test.cc
      writer/glsl/generator_impl_bitcast_test.cc
      writer/glsl/generator_impl_block_test.cc
      writer/glsl/generator_impl_break_test.cc
      writer/glsl/generator_impl_builtin_test.cc
      writer/glsl/generator_impl_builtin_texture_test.cc
      writer/glsl/generator_impl_call_test.cc
      writer/glsl/generator_impl_case_test.cc
      writer/glsl/generator_impl_cast_test.cc
      writer/glsl/generator_impl_constructor_test.cc
      writer/glsl/generator_impl_continue_test.cc
      writer/glsl/generator_impl_discard_test.cc
      writer/glsl/generator_impl_function_test.cc
      writer/glsl/generator_impl_identifier_test.cc
      writer/glsl/generator_impl_if_test.cc
      writer/glsl/generator_impl_import_test.cc
      writer/glsl/generator_impl_loop_test.cc
      writer/glsl/generator_impl_member_accessor_test.cc
      writer/glsl/generator_impl_module_constant_test.cc
      writer/glsl/generator_impl_return_test.cc
      writer/glsl/generator_impl_sanitizer_test.cc
      writer/glsl/generator_impl_storage_buffer_test.cc
      writer/glsl/generator_impl_switch_test.cc
      writer/glsl/generator_impl_test.cc
      writer/glsl/generator_impl_type_test.cc
      writer/glsl/generator_impl_unary_op_test.cc
      writer/glsl/generator_impl_uniform_buffer_test.cc
      writer/glsl/generator_impl_variable_decl_statement_test.cc
      writer/glsl/generator_impl_workgroup_var_test.cc
      writer/glsl/test_helper.h
    )
  endif()

  if (${TINT_BUILD_HLSL_WRITER})
    list(APPEND TINT_TEST_SRCS
      writer/hlsl/generator_impl_array_accessor_test.cc
      writer/hlsl/generator_impl_assign_test.cc
      writer/hlsl/generator_impl_binary_test.cc
      writer/hlsl/generator_impl_bitcast_test.cc
      writer/hlsl/generator_impl_block_test.cc
      writer/hlsl/generator_impl_break_test.cc
      writer/hlsl/generator_impl_builtin_test.cc
      writer/hlsl/generator_impl_builtin_texture_test.cc
      writer/hlsl/generator_impl_call_test.cc
      writer/hlsl/generator_impl_case_test.cc
      writer/hlsl/generator_impl_cast_test.cc
      writer/hlsl/generator_impl_const_assert_test.cc
      writer/hlsl/generator_impl_constructor_test.cc
      writer/hlsl/generator_impl_continue_test.cc
      writer/hlsl/generator_impl_discard_test.cc
      writer/hlsl/generator_impl_function_test.cc
      writer/hlsl/generator_impl_identifier_test.cc
      writer/hlsl/generator_impl_if_test.cc
      writer/hlsl/generator_impl_import_test.cc
      writer/hlsl/generator_impl_loop_test.cc
      writer/hlsl/generator_impl_member_accessor_test.cc
      writer/hlsl/generator_impl_module_constant_test.cc
      writer/hlsl/generator_impl_return_test.cc
      writer/hlsl/generator_impl_sanitizer_test.cc
      writer/hlsl/generator_impl_switch_test.cc
      writer/hlsl/generator_impl_test.cc
      writer/hlsl/generator_impl_type_test.cc
      writer/hlsl/generator_impl_unary_op_test.cc
      writer/hlsl/generator_impl_variable_decl_statement_test.cc
      writer/hlsl/generator_impl_workgroup_var_test.cc
      writer/hlsl/test_helper.h
    )
  endif()

  if (${TINT_BUILD_IR})
    list(APPEND TINT_TEST_SRCS
      ir/access_test.cc
      ir/binary_test.cc
      ir/bitcast_test.cc
      ir/block_param_test.cc
      ir/block_test.cc
      ir/break_if_test.cc
      ir/constant_test.cc
      ir/construct_test.cc
      ir/continue_test.cc
      ir/convert_test.cc
      ir/core_builtin_call_test.cc
      ir/discard_test.cc
      ir/exit_if_test.cc
      ir/exit_loop_test.cc
      ir/exit_switch_test.cc
      ir/from_program_accessor_test.cc
      ir/from_program_binary_test.cc
      ir/from_program_builtin_test.cc
      ir/from_program_call_test.cc
      ir/from_program_function_test.cc
      ir/from_program_let_test.cc
      ir/from_program_literal_test.cc
      ir/from_program_materialize_test.cc
      ir/from_program_store_test.cc
      ir/from_program_test.cc
      ir/from_program_unary_test.cc
      ir/from_program_var_test.cc
      ir/function_param_test.cc
      ir/function_test.cc
      ir/if_test.cc
      ir/instruction_result_test.cc
      ir/instruction_test.cc
      ir/intrinsic_call_test.cc
      ir/ir_test_helper.h
      ir/let_test.cc
      ir/load_test.cc
      ir/load_vector_element_test.cc
      ir/loop_test.cc
      ir/module_test.cc
      ir/multi_in_block_test.cc
      ir/next_iteration_test.cc
      ir/operand_instruction_test.cc
      ir/program_test_helper.h
      ir/return_test.cc
      ir/store_test.cc
      ir/store_vector_element_test.cc
      ir/switch_test.cc
      ir/swizzle_test.cc
      ir/transform/add_empty_entry_point_test.cc
      ir/transform/block_decorated_structs_test.cc
      ir/transform/demote_to_helper_test.cc
      ir/unary_test.cc
      ir/user_call_test.cc
      ir/validator_test.cc
      ir/value_test.cc
      ir/var_test.cc
    )
  endif()

  if (${TINT_BUILD_IR} AND ${TINT_BUILD_WGSL_READER} AND ${TINT_BUILD_WGSL_WRITER})
    list(APPEND TINT_TEST_SRCS
      ir/to_program_roundtrip_test.cc
    )
  endif()

  if (${TINT_BUILD_IR} AND ${TINT_BUILD_WGSL_WRITER})
    list(APPEND TINT_TEST_SRCS
      ir/to_program_inlining_test.cc
      ir/to_program_test.cc
    )
  endif()

  if (${TINT_BUILD_FUZZERS})
    list(APPEND TINT_TEST_SRCS
      fuzzers/mersenne_twister_engine.cc
      fuzzers/mersenne_twister_engine.h
      fuzzers/random_generator.cc
      fuzzers/random_generator.h
      fuzzers/random_generator_engine.cc
      fuzzers/random_generator_engine.h
      fuzzers/random_generator_test.cc
    )
  endif()

  add_executable(tint_unittests ${TINT_TEST_SRCS})
  set_target_properties(${target} PROPERTIES FOLDER "Tests")

  if(MSVC)
    # TODO(crbug.com/tint/1749): MSVC debug builds can suffer from stack
    # overflows when resolving deeply nested expression chains or statements.
    # Production builds neither use MSVC nor debug, so just bump the stack size
    # for this build combination.
    if (IS_DEBUG_BUILD)
      target_link_options(tint_unittests PRIVATE "/STACK:4194304") # 4MB, default is 1MB
    endif()
  else()
    target_compile_options(tint_unittests PRIVATE
      -Wno-global-constructors
      -Wno-weak-vtables
    )
  endif()

  ## Test executable
  target_include_directories(
      tint_unittests PRIVATE ${gmock_SOURCE_DIR}/include)
  target_link_libraries(tint_unittests libtint gmock tint_utils_io)
  tint_default_compile_options(tint_unittests)

  if(${TINT_BUILD_SPV_READER} OR ${TINT_BUILD_SPV_WRITER})
    tint_spvtools_compile_options(tint_unittests)
  endif()

  add_test(NAME tint_unittests COMMAND tint_unittests)
endif(TINT_BUILD_TESTS)

################################################################################
# Benchmarks
################################################################################
if(TINT_BUILD_BENCHMARKS)
  if(NOT TINT_BUILD_WGSL_READER)
    message(FATAL_ERROR "TINT_BUILD_BENCHMARKS requires TINT_BUILD_WGSL_READER")
  endif()

  list(APPEND TINT_BENCHMARK_SRCS
    "switch_bench.cc"
    "bench/benchmark.cc"
    "reader/wgsl/parser_bench.cc"
  )

  if (${TINT_BUILD_GLSL_WRITER})
    list(APPEND TINT_BENCHMARK_SRCS writer/glsl/generator_bench.cc)
  endif()
  if (${TINT_BUILD_HLSL_WRITER})
    list(APPEND TINT_BENCHMARK_SRCS writer/hlsl/generator_bench.cc)
  endif()
  if (${TINT_BUILD_MSL_WRITER})
    list(APPEND TINT_BENCHMARK_SRCS writer/msl/generator_bench.cc)
  endif()
  if (${TINT_BUILD_SPV_WRITER})
    list(APPEND TINT_BENCHMARK_SRCS writer/spirv/generator_bench.cc)
  endif()
  if (${TINT_BUILD_WGSL_WRITER})
    list(APPEND TINT_BENCHMARK_SRCS writer/wgsl/generator_bench.cc)
  endif()

  add_executable(tint-benchmark ${TINT_BENCHMARK_SRCS})
  set_target_properties(${target} PROPERTIES FOLDER "Benchmarks")

  tint_core_compile_options(tint-benchmark)

  target_link_libraries(tint-benchmark PRIVATE benchmark::benchmark libtint)

  if (TINT_EXTERNAL_BENCHMARK_CORPUS_DIR)
    # Glob all the files at TINT_EXTERNAL_BENCHMARK_CORPUS_DIR, and create a header
    # that lists these with the macros:
    # TINT_BENCHMARK_EXTERNAL_WGSL_PROGRAMS()
    # TINT_BENCHMARK_EXTERNAL_SPV_PROGRAMS()
    set(TINT_BENCHMARK_GEN_DIR "${DAWN_BUILD_GEN_DIR}/src/tint/benchmark/")
    set(TINT_BENCHMARK_EXTERNAL_SHADERS_HEADER "${TINT_BENCHMARK_GEN_DIR}/external_wgsl_programs.h")
    message("Globbing ${TINT_EXTERNAL_BENCHMARK_CORPUS_DIR}...")

    file(GLOB_RECURSE
      TINT_EXTERNAL_WGSL_BENCHMARK_FILES
      RELATIVE "${TINT_EXTERNAL_BENCHMARK_CORPUS_DIR}"
      "${TINT_EXTERNAL_BENCHMARK_CORPUS_DIR}/**.wgsl")
    list(TRANSFORM TINT_EXTERNAL_WGSL_BENCHMARK_FILES REPLACE
      "(.+)"
      "    BENCHMARK_CAPTURE\(FUNC, \"\\1\", \"${TINT_EXTERNAL_BENCHMARK_CORPUS_DIR}/\\1\")")
    list(JOIN TINT_EXTERNAL_WGSL_BENCHMARK_FILES "; \\\n" TINT_EXTERNAL_WGSL_BENCHMARK_FILES)

    file(GLOB_RECURSE
      TINT_EXTERNAL_SPV_BENCHMARK_FILES
      RELATIVE "${TINT_EXTERNAL_BENCHMARK_CORPUS_DIR}"
      "${TINT_EXTERNAL_BENCHMARK_CORPUS_DIR}/**.spv")

      list(TRANSFORM TINT_EXTERNAL_SPV_BENCHMARK_FILES REPLACE
      "(.+)"
      "    BENCHMARK_CAPTURE\(FUNC, \"\\1\", \"${TINT_EXTERNAL_BENCHMARK_CORPUS_DIR}/\\1\")")
    list(JOIN TINT_EXTERNAL_SPV_BENCHMARK_FILES "; \\\n" TINT_EXTERNAL_SPV_BENCHMARK_FILES)

    file(CONFIGURE
      OUTPUT "${TINT_BENCHMARK_EXTERNAL_SHADERS_HEADER}"
      CONTENT "
#define TINT_BENCHMARK_EXTERNAL_WGSL_PROGRAMS(FUNC) \\
${TINT_EXTERNAL_WGSL_BENCHMARK_FILES};

#define TINT_BENCHMARK_EXTERNAL_SPV_PROGRAMS(FUNC) \\
${TINT_EXTERNAL_SPV_BENCHMARK_FILES};")
    # Define TINT_BENCHMARK_EXTERNAL_SHADERS_HEADER to the generated header path
    target_compile_definitions(tint-benchmark PRIVATE
      "TINT_BENCHMARK_EXTERNAL_SHADERS_HEADER=\"${TINT_BENCHMARK_EXTERNAL_SHADERS_HEADER}\"")
  endif()
endif(TINT_BUILD_BENCHMARKS)
