# Copyright 2021 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.

import("//build_overrides/build.gni")

import("../../scripts/dawn_overrides_with_defaults.gni")
import("../../tint_overrides_with_defaults.gni")

if (tint_build_unittests) {
  import("//testing/test.gni")
}

###############################################################################
# Common - Configs, etc. shared across targets
###############################################################################

config("tint_common_config") {
  include_dirs = [
    "${target_gen_dir}",
    "${tint_root_dir}/",
    "${tint_spirv_headers_dir}/include",
    "${tint_spirv_tools_dir}/",
    "${tint_spirv_tools_dir}/include",
  ]
}

config("tint_public_config") {
  defines = []
  if (tint_build_spv_reader) {
    defines += [ "TINT_BUILD_SPV_READER=1" ]
  } else {
    defines += [ "TINT_BUILD_SPV_READER=0" ]
  }

  if (tint_build_spv_writer) {
    defines += [ "TINT_BUILD_SPV_WRITER=1" ]
  } else {
    defines += [ "TINT_BUILD_SPV_WRITER=0" ]
  }

  if (tint_build_wgsl_reader) {
    defines += [ "TINT_BUILD_WGSL_READER=1" ]
  } else {
    defines += [ "TINT_BUILD_WGSL_READER=0" ]
  }

  if (tint_build_wgsl_writer) {
    defines += [ "TINT_BUILD_WGSL_WRITER=1" ]
  } else {
    defines += [ "TINT_BUILD_WGSL_WRITER=0" ]
  }

  if (tint_build_msl_writer) {
    defines += [ "TINT_BUILD_MSL_WRITER=1" ]
  } else {
    defines += [ "TINT_BUILD_MSL_WRITER=0" ]
  }

  if (tint_build_hlsl_writer) {
    defines += [ "TINT_BUILD_HLSL_WRITER=1" ]
  } else {
    defines += [ "TINT_BUILD_HLSL_WRITER=0" ]
  }

  if (tint_build_glsl_writer) {
    defines += [ "TINT_BUILD_GLSL_WRITER=1" ]
  } else {
    defines += [ "TINT_BUILD_GLSL_WRITER=0" ]
  }

  if (tint_build_syntax_tree_writer) {
    defines += [ "TINT_BUILD_SYNTAX_TREE_WRITER=1" ]
  } else {
    defines += [ "TINT_BUILD_SYNTAX_TREE_WRITER=0" ]
  }

  if (tint_build_ir) {
    defines += [ "TINT_BUILD_IR=1" ]
  } else {
    defines += [ "TINT_BUILD_IR=0" ]
  }

  include_dirs = [
    "${tint_root_dir}/",
    "${tint_root_dir}/include/",
    "${tint_spirv_headers_dir}/include",
  ]
}

config("tint_config") {
  include_dirs = []
  if (tint_build_spv_reader || tint_build_spv_writer) {
    include_dirs += [ "${tint_spirv_tools_dir}/include/" ]
  }
}

group("abseil") {
  # When build_with_chromium=true we need to include "//third_party/abseil-cpp:absl" while
  # it's beneficial to be more specific with standalone Dawn, especially when it comes to
  # including it as a dependency in other projects (such as Skia).
  if (build_with_chromium) {
    public_deps = [ "$dawn_abseil_dir:absl" ]
  } else {
    public_deps = [ "${dawn_root}/third_party/gn/abseil-cpp:strings" ]
  }
}

###############################################################################
# Helper library for IO operations
# Only to be used by tests and sample executable
###############################################################################
source_set("tint_utils_io") {
  sources = [
    "utils/io/command.h",
    "utils/io/tmpfile.h",
  ]

  if (is_linux || is_mac) {
    sources += [ "utils/io/command_posix.cc" ]
    sources += [ "utils/io/tmpfile_posix.cc" ]
  } else if (is_win) {
    sources += [ "utils/io/command_windows.cc" ]
    sources += [ "utils/io/tmpfile_windows.cc" ]
  } else {
    sources += [ "utils/io/command_other.cc" ]
    sources += [ "utils/io/tmpfile_other.cc" ]
  }

  deps = [ ":libtint_utils_src" ]
}

###############################################################################
# Helper library for validating generated shaders
# As this depends on tint_utils_io, this is only to be used by tests and sample
# executable
###############################################################################
source_set("tint_val") {
  sources = [
    "val/hlsl.cc",
    "val/msl.cc",
    "val/val.h",
  ]
  deps = [
    ":libtint_ast_src",
    ":libtint_program_src",
    ":libtint_utils_src",
    ":tint_utils_io",
  ]
}

###############################################################################
# Library - Tint core and optional modules of libtint
###############################################################################
# Targets that want to use tint as a library should depend on ":libtint" and
# use the build flags to control what is included, instead of trying to specify
# the subsets that they want.

template("libtint_source_set") {
  source_set(target_name) {
    forward_variables_from(invoker, "*", [ "configs" ])

    if (!defined(invoker.deps)) {
      deps = []
    }
    deps += [
      "${tint_spirv_headers_dir}:spv_headers",
      "${tint_spirv_tools_dir}:spvtools_core_enums_unified1",
      "${tint_spirv_tools_dir}:spvtools_core_tables_unified1",
      "${tint_spirv_tools_dir}:spvtools_headers",
      "${tint_spirv_tools_dir}:spvtools_language_header_cldebuginfo100",
      "${tint_spirv_tools_dir}:spvtools_language_header_debuginfo",
      "${tint_spirv_tools_dir}:spvtools_language_header_vkdebuginfo100",
    ]

    if (defined(invoker.configs)) {
      configs += invoker.configs
    }
    configs += [ ":tint_common_config" ]
    if (build_with_chromium) {
      configs -= [ "//build/config/compiler:chromium_code" ]
      configs += [ "//build/config/compiler:no_chromium_code" ]
    }

    if (!defined(invoker.public_configs)) {
      public_configs = []
    }
    public_configs += [ ":tint_public_config" ]
  }
}

libtint_source_set("libtint_symbols_src") {
  sources = [
    "number.cc",
    "number.h",
    "program_id.cc",
    "program_id.h",
    "reflection.h",
    "scope_stack.h",
    "symbol.cc",
    "symbol.h",
    "symbol_table.cc",
    "symbol_table.h",
  ]
  deps = [
    ":libtint_builtins_src",
    ":libtint_utils_src",
  ]
}

libtint_source_set("libtint_utils_src") {
  sources = [
    "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",
    "switch.h",
    "utils/bitcast.h",
    "utils/bitset.h",
    "utils/block_allocator.h",
    "utils/bump_allocator.h",
    "utils/castable.cc",
    "utils/castable.h",
    "utils/compiler_macros.h",
    "utils/concat.h",
    "utils/crc32.h",
    "utils/debugger.cc",
    "utils/debugger.h",
    "utils/defer.h",
    "utils/enum_set.h",
    "utils/foreach_macro.h",
    "utils/hash.h",
    "utils/hashmap.h",
    "utils/hashmap_base.h",
    "utils/hashset.h",
    "utils/map.h",
    "utils/math.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/unicode.cc",
    "utils/unicode.h",
    "utils/unique_allocator.h",
    "utils/unique_vector.h",
    "utils/vector.h",
  ]

  if (is_linux || is_mac) {
    sources += [ "diagnostic/printer_posix.cc" ]
  } else if (is_win) {
    sources += [ "diagnostic/printer_windows.cc" ]
  } else {
    sources += [ "diagnostic/printer_other.cc" ]
  }
}

libtint_source_set("libtint_clone_context_hdrs") {
  sources = [ "clone_context.h" ]
  deps = [
    ":libtint_symbols_src",
    ":libtint_utils_src",
  ]
}

libtint_source_set("libtint_program_src") {
  sources = [
    "clone_context.cc",
    "program.cc",
    "program_builder.cc",
    "resolver/builtin_structs.cc",
    "resolver/builtin_structs.h",
    "resolver/const_eval.cc",
    "resolver/const_eval.h",
    "resolver/ctor_conv_intrinsic.cc",
    "resolver/ctor_conv_intrinsic.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/sem_helper.cc",
    "resolver/sem_helper.h",
    "resolver/uniformity.cc",
    "resolver/uniformity.h",
    "resolver/validator.cc",
    "resolver/validator.h",
  ]
  public = [
    "program.h",
    "program_builder.h",
    "resolver/resolver.h",
  ]
  friend = [
    ":tint_unittests_resolver_src",  # For resolver test access
  ]

  public_deps = [ ":libtint_clone_context_hdrs" ]

  deps = [
    ":libtint_ast_hdrs",
    ":libtint_builtins_src",
    ":libtint_constant_src",
    ":libtint_sem_src",
    ":libtint_symbols_src",
    ":libtint_type_src",
    ":libtint_utils_src",
  ]
}

libtint_source_set("libtint_initializer_src") {
  sources = [ "tint.cc" ]
}

libtint_source_set("libtint_inspector_src") {
  sources = [
    "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",
  ]
  deps = [
    ":libtint_ast_src",
    ":libtint_builtins_src",
    ":libtint_program_src",
    ":libtint_sem_src",
    ":libtint_type_src",
    ":libtint_utils_src",
  ]
}

libtint_source_set("libtint_transform_src") {
  sources = [
    "transform/transform.cc",
    "transform/transform.h",
  ]
  deps = [ ":libtint_utils_src" ]
}

libtint_source_set("libtint_ast_transform_base_src") {
  sources = [
    "ast/transform/transform.cc",
    "ast/transform/transform.h",
  ]
  deps = [
    ":libtint_builtins_src",
    ":libtint_program_src",
    ":libtint_sem_src",
    ":libtint_transform_src",
    ":libtint_type_src",
    ":libtint_utils_src",
  ]
}

libtint_source_set("libtint_transform_manager_src") {
  sources = [
    "transform/manager.cc",
    "transform/manager.h",
  ]
  deps = [
    ":libtint_ast_transform_base_src",
    ":libtint_ir_builder_src",
    ":libtint_ir_src",
    ":libtint_program_src",
    ":libtint_transform_src",
  ]
}

libtint_source_set("libtint_ast_transform_src") {
  sources = [
    "ast/transform/add_block_attribute.cc",
    "ast/transform/add_block_attribute.h",
    "ast/transform/add_empty_entry_point.cc",
    "ast/transform/add_empty_entry_point.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/canonicalize_entry_point_io.cc",
    "ast/transform/canonicalize_entry_point_io.h",
    "ast/transform/clamp_frag_depth.cc",
    "ast/transform/clamp_frag_depth.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/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/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",
  ]
  deps = [
    ":libtint_ast_src",
    ":libtint_ast_transform_base_src",
    ":libtint_builtins_src",
    ":libtint_program_src",
    ":libtint_sem_src",
    ":libtint_symbols_src",
    ":libtint_transform_manager_src",
    ":libtint_type_src",
    ":libtint_utils_src",
  ]
}

libtint_source_set("libtint_ir_transform_src") {
  sources = [
    "ir/transform/add_empty_entry_point.cc",
    "ir/transform/add_empty_entry_point.h",
  ]
  deps = [
    ":libtint_builtins_src",
    ":libtint_ir_src",
    ":libtint_symbols_src",
    ":libtint_type_src",
    ":libtint_utils_src",
  ]
}

libtint_source_set("libtint_ast_hdrs") {
  sources = [
    "ast/accessor_expression.h",
    "ast/alias.h",
    "ast/assignment_statement.h",
    "ast/attribute.h",
    "ast/binary_expression.h",
    "ast/binding_attribute.h",
    "ast/bitcast_expression.h",
    "ast/block_statement.h",
    "ast/bool_literal_expression.h",
    "ast/break_if_statement.h",
    "ast/break_statement.h",
    "ast/builtin_attribute.h",
    "ast/call_expression.h",
    "ast/call_statement.h",
    "ast/case_selector.h",
    "ast/case_statement.h",
    "ast/compound_assignment_statement.h",
    "ast/const.h",
    "ast/const_assert.h",
    "ast/continue_statement.h",
    "ast/diagnostic_attribute.h",
    "ast/diagnostic_control.h",
    "ast/diagnostic_directive.h",
    "ast/diagnostic_rule_name.h",
    "ast/disable_validation_attribute.h",
    "ast/discard_statement.h",
    "ast/enable.h",
    "ast/expression.h",
    "ast/extension.h",
    "ast/float_literal_expression.h",
    "ast/for_loop_statement.h",
    "ast/function.h",
    "ast/group_attribute.h",
    "ast/id_attribute.h",
    "ast/identifier.h",
    "ast/identifier_expression.h",
    "ast/if_statement.h",
    "ast/increment_decrement_statement.h",
    "ast/index_accessor_expression.h",
    "ast/int_literal_expression.h",
    "ast/internal_attribute.h",
    "ast/interpolate_attribute.h",
    "ast/invariant_attribute.h",
    "ast/let.h",
    "ast/literal_expression.h",
    "ast/location_attribute.h",
    "ast/loop_statement.h",
    "ast/member_accessor_expression.h",
    "ast/module.h",
    "ast/must_use_attribute.h",
    "ast/node.h",
    "ast/node_id.h",
    "ast/override.h",
    "ast/parameter.h",
    "ast/phony_expression.h",
    "ast/pipeline_stage.h",
    "ast/return_statement.h",
    "ast/stage_attribute.h",
    "ast/statement.h",
    "ast/stride_attribute.h",
    "ast/struct.h",
    "ast/struct_member.h",
    "ast/struct_member_align_attribute.h",
    "ast/struct_member_offset_attribute.h",
    "ast/struct_member_size_attribute.h",
    "ast/switch_statement.h",
    "ast/templated_identifier.h",
    "ast/traverse_expressions.h",
    "ast/type.h",
    "ast/type_decl.h",
    "ast/unary_op.h",
    "ast/unary_op_expression.h",
    "ast/var.h",
    "ast/variable.h",
    "ast/variable_decl_statement.h",
    "ast/while_statement.h",
    "ast/workgroup_attribute.h",
  ]
  deps = [
    ":libtint_builtins_src",
    ":libtint_clone_context_hdrs",
    ":libtint_symbols_src",
    ":libtint_type_src",
    ":libtint_utils_src",
  ]
}

libtint_source_set("libtint_ast_src") {
  sources = [
    "ast/accessor_expression.cc",
    "ast/alias.cc",
    "ast/assignment_statement.cc",
    "ast/attribute.cc",
    "ast/binary_expression.cc",
    "ast/binding_attribute.cc",
    "ast/bitcast_expression.cc",
    "ast/block_statement.cc",
    "ast/bool_literal_expression.cc",
    "ast/break_if_statement.cc",
    "ast/break_statement.cc",
    "ast/builtin_attribute.cc",
    "ast/call_expression.cc",
    "ast/call_statement.cc",
    "ast/case_selector.cc",
    "ast/case_statement.cc",
    "ast/compound_assignment_statement.cc",
    "ast/const.cc",
    "ast/const_assert.cc",
    "ast/continue_statement.cc",
    "ast/diagnostic_attribute.cc",
    "ast/diagnostic_control.cc",
    "ast/diagnostic_directive.cc",
    "ast/diagnostic_rule_name.cc",
    "ast/disable_validation_attribute.cc",
    "ast/discard_statement.cc",
    "ast/enable.cc",
    "ast/expression.cc",
    "ast/extension.cc",
    "ast/float_literal_expression.cc",
    "ast/for_loop_statement.cc",
    "ast/function.cc",
    "ast/group_attribute.cc",
    "ast/id_attribute.cc",
    "ast/identifier.cc",
    "ast/identifier_expression.cc",
    "ast/if_statement.cc",
    "ast/increment_decrement_statement.cc",
    "ast/index_accessor_expression.cc",
    "ast/int_literal_expression.cc",
    "ast/internal_attribute.cc",
    "ast/interpolate_attribute.cc",
    "ast/invariant_attribute.cc",
    "ast/let.cc",
    "ast/literal_expression.cc",
    "ast/location_attribute.cc",
    "ast/loop_statement.cc",
    "ast/member_accessor_expression.cc",
    "ast/module.cc",
    "ast/must_use_attribute.cc",
    "ast/node.cc",
    "ast/override.cc",
    "ast/parameter.cc",
    "ast/phony_expression.cc",
    "ast/pipeline_stage.cc",
    "ast/return_statement.cc",
    "ast/stage_attribute.cc",
    "ast/statement.cc",
    "ast/stride_attribute.cc",
    "ast/struct.cc",
    "ast/struct_member.cc",
    "ast/struct_member_align_attribute.cc",
    "ast/struct_member_offset_attribute.cc",
    "ast/struct_member_size_attribute.cc",
    "ast/switch_statement.cc",
    "ast/templated_identifier.cc",
    "ast/type.cc",
    "ast/type_decl.cc",
    "ast/unary_op.cc",
    "ast/unary_op_expression.cc",
    "ast/var.cc",
    "ast/variable.cc",
    "ast/variable_decl_statement.cc",
    "ast/while_statement.cc",
    "ast/workgroup_attribute.cc",
  ]
  public_deps = [ ":libtint_ast_hdrs" ]
  deps = [
    ":libtint_builtins_src",
    ":libtint_program_src",
    ":libtint_type_src",
    ":libtint_utils_src",
  ]
}

libtint_source_set("libtint_sem_src") {
  sources = [
    "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.cc",
    "sem/call.h",
    "sem/call_target.cc",
    "sem/call_target.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.cc",
    "sem/function.h",
    "sem/function_expression.cc",
    "sem/function_expression.h",
    "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/member_accessor_expression.h",
    "sem/module.cc",
    "sem/module.h",
    "sem/node.cc",
    "sem/node.h",
    "sem/parameter_usage.cc",
    "sem/parameter_usage.h",
    "sem/pipeline_stage_set.h",
    "sem/sampler_texture_pair.h",
    "sem/statement.cc",
    "sem/statement.h",
    "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/value_constructor.cc",
    "sem/value_constructor.h",
    "sem/value_conversion.cc",
    "sem/value_conversion.h",
    "sem/value_expression.cc",
    "sem/value_expression.h",
    "sem/variable.cc",
    "sem/variable.h",
    "sem/while_statement.cc",
    "sem/while_statement.h",
  ]

  deps = [
    ":libtint_ast_hdrs",
    ":libtint_builtins_src",
    ":libtint_constant_src",
    ":libtint_symbols_src",
    ":libtint_type_src",
    ":libtint_utils_src",
  ]
}

libtint_source_set("libtint_builtins_src") {
  sources = [
    "builtin/access.cc",
    "builtin/access.h",
    "builtin/address_space.cc",
    "builtin/address_space.h",
    "builtin/attribute.cc",
    "builtin/attribute.h",
    "builtin/builtin.cc",
    "builtin/builtin.h",
    "builtin/builtin_value.cc",
    "builtin/builtin_value.h",
    "builtin/diagnostic_rule.cc",
    "builtin/diagnostic_rule.h",
    "builtin/diagnostic_severity.cc",
    "builtin/diagnostic_severity.h",
    "builtin/extension.cc",
    "builtin/extension.h",
    "builtin/function.cc",
    "builtin/function.h",
    "builtin/interpolation.h",
    "builtin/interpolation_sampling.cc",
    "builtin/interpolation_sampling.h",
    "builtin/interpolation_type.cc",
    "builtin/interpolation_type.h",
    "builtin/texel_format.cc",
    "builtin/texel_format.h",
  ]
  deps = [ ":libtint_utils_src" ]
}

libtint_source_set("libtint_type_src") {
  sources = [
    "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/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/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",
  ]

  deps = [
    ":libtint_builtins_src",
    ":libtint_symbols_src",
    ":libtint_utils_src",
  ]
}

libtint_source_set("libtint_constant_src") {
  sources = [
    "constant/clone_context.h",
    "constant/composite.cc",
    "constant/composite.h",
    "constant/node.cc",
    "constant/node.h",
    "constant/scalar.cc",
    "constant/scalar.h",
    "constant/splat.cc",
    "constant/splat.h",
    "constant/value.cc",
    "constant/value.h",
  ]
  deps = [
    ":libtint_symbols_src",
    ":libtint_type_src",
    ":libtint_utils_src",
  ]
}

libtint_source_set("libtint_reader_src") {
  sources = [
    "reader/reader.cc",
    "reader/reader.h",
  ]

  public_deps = [ ":libtint_program_src" ]
}

libtint_source_set("libtint_spv_reader_src") {
  sources = [
    "reader/spirv/attributes.h",
    "reader/spirv/construct.cc",
    "reader/spirv/construct.h",
    "reader/spirv/entry_point_info.cc",
    "reader/spirv/entry_point_info.h",
    "reader/spirv/enum_converter.cc",
    "reader/spirv/enum_converter.h",
    "reader/spirv/fail_stream.h",
    "reader/spirv/function.cc",
    "reader/spirv/function.h",
    "reader/spirv/namer.cc",
    "reader/spirv/namer.h",
    "reader/spirv/parser.cc",
    "reader/spirv/parser.h",
    "reader/spirv/parser_impl.cc",
    "reader/spirv/parser_impl.h",
    "reader/spirv/parser_type.cc",
    "reader/spirv/parser_type.h",
    "reader/spirv/usage.cc",
    "reader/spirv/usage.h",
  ]

  deps = [
    ":libtint_ast_src",
    ":libtint_ast_transform_src",
    ":libtint_builtins_src",
    ":libtint_program_src",
    ":libtint_reader_src",
    ":libtint_sem_src",
    ":libtint_symbols_src",
    ":libtint_transform_manager_src",
    ":libtint_type_src",
    ":libtint_utils_src",
    "${tint_spirv_tools_dir}/:spvtools_opt",
  ]

  public_configs = [ "${tint_spirv_tools_dir}/:spvtools_internal_config" ]
}

libtint_source_set("libtint_writer_src") {
  sources = [
    "writer/append_vector.cc",
    "writer/append_vector.h",
    "writer/array_length_from_uniform_options.cc",
    "writer/array_length_from_uniform_options.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/text.cc",
    "writer/text.h",
    "writer/text_generator.cc",
    "writer/text_generator.h",
    "writer/writer.cc",
    "writer/writer.h",
  ]

  deps = [
    ":libtint_ast_src",
    ":libtint_ast_transform_src",
    ":libtint_builtins_src",
    ":libtint_inspector_src",
    ":libtint_program_src",
    ":libtint_sem_src",
    ":libtint_transform_manager_src",
    ":libtint_type_src",
    ":libtint_utils_src",
  ]
}

libtint_source_set("libtint_spv_writer_src") {
  sources = [
    "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",
  ]

  deps = [
    ":libtint_ast_src",
    ":libtint_ast_transform_src",
    ":libtint_builtins_src",
    ":libtint_constant_src",
    ":libtint_program_src",
    ":libtint_sem_src",
    ":libtint_symbols_src",
    ":libtint_transform_manager_src",
    ":libtint_type_src",
    ":libtint_utils_src",
    ":libtint_writer_src",
  ]

  if (tint_build_ir) {
    sources += [
      "writer/spirv/generator_impl_ir.cc",
      "writer/spirv/generator_impl_ir.h",
    ]
    deps += [
      ":libtint_ir_builder_src",
      ":libtint_ir_src",
      ":libtint_ir_transform_src",
    ]
  }
}

libtint_source_set("libtint_wgsl_reader_src") {
  sources = [
    "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",
  ]

  deps = [
    ":abseil",
    ":libtint_ast_src",
    ":libtint_builtins_src",
    ":libtint_program_src",
    ":libtint_reader_src",
    ":libtint_symbols_src",
    ":libtint_type_src",
    ":libtint_utils_src",
  ]
}

libtint_source_set("libtint_wgsl_writer_src") {
  sources = [
    "writer/wgsl/generator.cc",
    "writer/wgsl/generator.h",
    "writer/wgsl/generator_impl.cc",
    "writer/wgsl/generator_impl.h",
  ]

  deps = [
    ":libtint_ast_src",
    ":libtint_builtins_src",
    ":libtint_program_src",
    ":libtint_sem_src",
    ":libtint_type_src",
    ":libtint_utils_src",
    ":libtint_writer_src",
  ]
}

libtint_source_set("libtint_msl_writer_src") {
  sources = [
    "writer/msl/generator.cc",
    "writer/msl/generator.h",
    "writer/msl/generator_impl.cc",
    "writer/msl/generator_impl.h",
  ]

  deps = [
    ":libtint_ast_src",
    ":libtint_ast_transform_src",
    ":libtint_builtins_src",
    ":libtint_constant_src",
    ":libtint_program_src",
    ":libtint_sem_src",
    ":libtint_symbols_src",
    ":libtint_transform_manager_src",
    ":libtint_type_src",
    ":libtint_utils_src",
    ":libtint_writer_src",
  ]
}

libtint_source_set("libtint_hlsl_writer_src") {
  sources = [
    "writer/hlsl/generator.cc",
    "writer/hlsl/generator.h",
    "writer/hlsl/generator_impl.cc",
    "writer/hlsl/generator_impl.h",
  ]

  deps = [
    ":libtint_ast_src",
    ":libtint_ast_transform_src",
    ":libtint_builtins_src",
    ":libtint_constant_src",
    ":libtint_program_src",
    ":libtint_sem_src",
    ":libtint_symbols_src",
    ":libtint_transform_manager_src",
    ":libtint_type_src",
    ":libtint_utils_src",
    ":libtint_writer_src",
  ]
}

libtint_source_set("libtint_glsl_writer_src") {
  sources = [
    "writer/glsl/generator.cc",
    "writer/glsl/generator.h",
    "writer/glsl/generator_impl.cc",
    "writer/glsl/generator_impl.h",
  ]

  deps = [
    ":libtint_ast_src",
    ":libtint_ast_transform_src",
    ":libtint_builtins_src",
    ":libtint_constant_src",
    ":libtint_program_src",
    ":libtint_sem_src",
    ":libtint_symbols_src",
    ":libtint_transform_manager_src",
    ":libtint_type_src",
    ":libtint_utils_src",
    ":libtint_writer_src",
  ]
}

libtint_source_set("libtint_syntax_tree_writer_src") {
  sources = [
    "writer/syntax_tree/generator.cc",
    "writer/syntax_tree/generator.h",
    "writer/syntax_tree/generator_impl.cc",
    "writer/syntax_tree/generator_impl.h",
  ]

  deps = [
    ":libtint_ast_src",
    ":libtint_builtins_src",
    ":libtint_program_src",
    ":libtint_sem_src",
    ":libtint_type_src",
    ":libtint_utils_src",
    ":libtint_writer_src",
  ]
}

libtint_source_set("libtint_ir_builder_src") {
  sources = [
    "ir/from_program.cc",
    "ir/from_program.h",
    "ir/to_program.cc",
    "ir/to_program.h",
  ]
  deps = [
    ":libtint_ast_src",
    ":libtint_constant_src",
    ":libtint_ir_src",
    ":libtint_program_src",
    ":libtint_sem_src",
    ":libtint_symbols_src",
    ":libtint_type_src",
    ":libtint_utils_src",
  ]
}

libtint_source_set("libtint_ir_src") {
  sources = [
    "ir/binary.cc",
    "ir/binary.h",
    "ir/bitcast.cc",
    "ir/bitcast.h",
    "ir/block.cc",
    "ir/block.h",
    "ir/block_param.cc",
    "ir/block_param.h",
    "ir/builder.cc",
    "ir/builder.h",
    "ir/builtin.cc",
    "ir/builtin.h",
    "ir/call.cc",
    "ir/call.h",
    "ir/constant.cc",
    "ir/constant.h",
    "ir/construct.cc",
    "ir/construct.h",
    "ir/convert.cc",
    "ir/convert.h",
    "ir/debug.cc",
    "ir/debug.h",
    "ir/disassembler.cc",
    "ir/disassembler.h",
    "ir/discard.cc",
    "ir/discard.h",
    "ir/flow_node.cc",
    "ir/flow_node.h",
    "ir/function.cc",
    "ir/function.h",
    "ir/function_terminator.cc",
    "ir/function_terminator.h",
    "ir/if.cc",
    "ir/if.h",
    "ir/instruction.cc",
    "ir/instruction.h",
    "ir/loop.cc",
    "ir/loop.h",
    "ir/module.cc",
    "ir/module.h",
    "ir/root_terminator.cc",
    "ir/root_terminator.h",
    "ir/store.cc",
    "ir/store.h",
    "ir/switch.cc",
    "ir/switch.h",
    "ir/transform/transform.cc",
    "ir/transform/transform.h",
    "ir/unary.cc",
    "ir/unary.h",
    "ir/user_call.cc",
    "ir/user_call.h",
    "ir/value.cc",
    "ir/value.h",
    "ir/var.cc",
    "ir/var.h",
  ]

  deps = [
    ":libtint_builtins_src",
    ":libtint_constant_src",
    ":libtint_symbols_src",
    ":libtint_transform_src",
    ":libtint_type_src",
    ":libtint_utils_src",
  ]
}

source_set("libtint") {
  public_deps = [
    ":libtint_ast_src",
    ":libtint_ast_transform_base_src",
    ":libtint_ast_transform_src",
    ":libtint_constant_src",
    ":libtint_initializer_src",
    ":libtint_inspector_src",
    ":libtint_program_src",
    ":libtint_sem_src",
    ":libtint_symbols_src",
    ":libtint_type_src",
    ":libtint_utils_src",
    ":libtint_writer_src",
  ]

  if (tint_build_spv_reader) {
    public_deps += [ ":libtint_spv_reader_src" ]
  }

  if (tint_build_spv_writer) {
    public_deps += [ ":libtint_spv_writer_src" ]
  }

  if (tint_build_wgsl_reader) {
    public_deps += [ ":libtint_wgsl_reader_src" ]
  }

  if (tint_build_wgsl_writer) {
    public_deps += [ ":libtint_wgsl_writer_src" ]
  }

  if (tint_build_msl_writer) {
    public_deps += [ ":libtint_msl_writer_src" ]
  }

  if (tint_build_hlsl_writer) {
    public_deps += [ ":libtint_hlsl_writer_src" ]
  }

  if (tint_build_glsl_writer) {
    public_deps += [ ":libtint_glsl_writer_src" ]
  }

  if (tint_build_syntax_tree_writer) {
    public_deps += [ ":libtint_syntax_tree_writer_src" ]
  }

  if (tint_build_ir) {
    assert(!build_with_chromium,
           "tint_build_ir cannot be used when building Chromium")
    public_deps += [
      ":libtint_ir_builder_src",
      ":libtint_ir_src",
    ]
  }

  configs += [ ":tint_common_config" ]
  public_configs = [ ":tint_public_config" ]

  if (build_with_chromium) {
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
  }
}

if (tint_build_unittests) {
  ###############################################################################
  # Gtest Gmock - Handle building inside and outside of Chromium.
  ###############################################################################
  # When building outside of Chromium we need to define our own targets for GTest
  # and GMock. However when compiling inside of Chromium we need to reuse the
  # existing targets, both because Chromium has a special harness for swarming
  # and because otherwise the "gn check" fails.

  if (!build_with_chromium) {
    # When we aren't in Chromium we define out own targets based on the location
    # of the googletest repo.
    config("gtest_config") {
      include_dirs = [
        "${tint_googletest_dir}/googletest",
        "${tint_googletest_dir}/googletest/include",
      ]
    }
    static_library("gtest") {
      testonly = true
      sources = [ "${tint_googletest_dir}/googletest/src/gtest-all.cc" ]
      public_configs = [ ":gtest_config" ]
    }

    config("gmock_config") {
      include_dirs = [
        "${tint_googletest_dir}/googlemock",
        "${tint_googletest_dir}/googlemock/include",
        "${tint_googletest_dir}/googletest/include",
      ]
    }

    static_library("gmock") {
      testonly = true
      sources = [ "${tint_googletest_dir}/googlemock/src/gmock-all.cc" ]
      public_configs = [ ":gmock_config" ]
    }

    group("gmock_and_gtest") {
      testonly = true
      public_deps = [
        ":gmock",
        ":gtest",
      ]
    }
  } else {
    # When we are in Chromium we reuse its targets, and also add some deps that
    # are needed to launch the test in swarming mode.
    group("gmock_and_gtest") {
      testonly = true
      public_deps = [
        "//base",
        "//base/test:test_support",
        "//testing/gmock",
        "//testing/gtest",
        "//third_party/googletest:gmock",
      ]
    }
  }

  ###############################################################################
  # Wrapping of Chromium targets
  ###############################################################################
  # These targets are separated because they are Chromium sources files that
  # can't use the tint_internal config, otherwise Tint's warning flags get
  # applied while compiling a bunch of Chromium's //base (via header inclusion)
  source_set("tint_unittests_main") {
    testonly = true
    deps = [ ":gmock_and_gtest" ]
    if (build_with_chromium) {
      sources = [ "//gpu/tint_unittests_main.cc" ]
    } else {
      sources = [ "test_main.cc" ]
      configs += [ ":tint_unittests_config" ]
      deps += [ ":libtint" ]

      if (tint_build_hlsl_writer) {
        deps += [ ":tint_unittests_hlsl_writer_src" ]
      }

      if (tint_build_msl_writer) {
        deps += [ ":tint_unittests_msl_writer_src" ]
      }

      if (tint_build_spv_reader) {
        deps += [ ":tint_unittests_spv_reader_src" ]
      }
    }
  }

  ###############################################################################
  # Tests - For libtint core and optional modules
  ###############################################################################
  config("tint_unittests_config") {
    include_dirs = [
      "${tint_googletest_dir}/googlemock/include",
      "${tint_googletest_dir}/googletest/include",
    ]

    configs = [
      ":tint_common_config",
      ":tint_public_config",
    ]
  }

  template("tint_unittests_source_set") {
    source_set(target_name) {
      forward_variables_from(invoker, "*", [ "configs" ])

      if (defined(invoker.configs)) {
        configs += invoker.configs
      }
      configs += [ ":tint_unittests_config" ]
      if (build_with_chromium) {
        configs -= [ "//build/config/compiler:chromium_code" ]
        configs += [ "//build/config/compiler:no_chromium_code" ]
      }

      testonly = true

      if (!defined(invoker.deps)) {
        deps = []
      }
      deps += [
        ":gmock_and_gtest",
        ":libtint",
        ":tint_utils_io",
      ]
    }
  }

  tint_unittests_source_set("libtint_unittests_ast_helper") {
    sources = [
      "ast/test_helper.h",
      "ast/test_helper_test.cc",
    ]
    deps = [ ":libtint_ast_src" ]
  }

  tint_unittests_source_set("tint_unittests_ast_src") {
    sources = [
      "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_expression_test.cc",
      "ast/identifier_test.cc",
      "ast/if_statement_test.cc",
      "ast/increment_decrement_statement_test.cc",
      "ast/index_accessor_expression_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/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",
    ]
    deps = [
      ":libtint_ast_src",
      ":libtint_ast_transform_src",
      ":libtint_builtins_src",
      ":libtint_unittests_ast_helper",
      ":libtint_utils_src",
    ]

    if (tint_build_wgsl_reader && tint_build_wgsl_writer) {
      # This AST test relies on the WGSL reader and writer
      sources += [ "ast/module_clone_test.cc" ]
    }
  }

  tint_unittests_source_set("tint_unittests_builtins_src") {
    sources = [
      "builtin/access_test.cc",
      "builtin/address_space_test.cc",
      "builtin/attribute_test.cc",
      "builtin/builtin_test.cc",
      "builtin/builtin_value_test.cc",
      "builtin/diagnostic_rule_test.cc",
      "builtin/diagnostic_severity_test.cc",
      "builtin/extension_test.cc",
      "builtin/interpolation_sampling_test.cc",
      "builtin/interpolation_type_test.cc",
      "builtin/texel_format_test.cc",
    ]
    deps = [ ":libtint_builtins_src" ]
  }

  tint_unittests_source_set("tint_unittests_diagnostic_src") {
    sources = [
      "diagnostic/diagnostic_test.cc",
      "diagnostic/formatter_test.cc",
      "diagnostic/printer_test.cc",
    ]
  }

  tint_unittests_source_set("tint_unittests_inspector_src") {
    sources = [
      "inspector/inspector_test.cc",
      "inspector/test_inspector_builder.cc",
      "inspector/test_inspector_builder.h",
      "inspector/test_inspector_runner.cc",
      "inspector/test_inspector_runner.h",
    ]
    deps = [ ":libtint_inspector_src" ]
  }

  tint_unittests_source_set("tint_unittests_resolver_src") {
    sources = [
      "resolver/address_space_layout_validation_test.cc",
      "resolver/address_space_validation_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/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.cc",
      "resolver/resolver_test_helper.cc",
      "resolver/resolver_test_helper.h",
      "resolver/root_identifier_test.cc",
      "resolver/side_effects_test.cc",
      "resolver/struct_address_space_use_test.cc",
      "resolver/struct_layout_test.cc",
      "resolver/struct_pipeline_stage_use_test.cc",
      "resolver/type_validation_test.cc",
      "resolver/uniformity_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",
    ]
    deps = [
      ":libtint_ast_transform_src",
      ":libtint_builtins_src",
      ":libtint_utils_src",
      ":tint_unittests_ast_src",
    ]
  }

  tint_unittests_source_set("tint_unittests_sem_src") {
    sources = [
      "sem/builtin_test.cc",
      "sem/diagnostic_severity_test.cc",
      "sem/struct_test.cc",
      "sem/value_expression_test.cc",
    ]
  }

  tint_unittests_source_set("tint_unittests_constant_src") {
    sources = [
      "constant/composite_test.cc",
      "constant/scalar_test.cc",
      "constant/splat_test.cc",
    ]
  }

  tint_unittests_source_set("tint_unittests_type_src") {
    sources = [
      "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",
    ]
    deps = [ ":libtint_builtins_src" ]
  }

  tint_unittests_source_set("tint_unittests_ast_transform_src") {
    sources = [
      "ast/transform/add_block_attribute_test.cc",
      "ast/transform/add_empty_entry_point_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/canonicalize_entry_point_io_test.cc",
      "ast/transform/clamp_frag_depth_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/for_loop_to_loop_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/transform_test.cc",
      "ast/transform/truncate_interstage_variables_test.cc",
      "ast/transform/unshadow_test.cc",
      "ast/transform/utils/get_insertion_point_test.cc",
      "ast/transform/utils/hoist_to_decl_before_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",
    ]

    deps = [
      ":libtint_ast_transform_base_src",
      ":libtint_ast_transform_src",
      ":libtint_builtins_src",
      ":libtint_transform_manager_src",
      ":libtint_unittests_ast_helper",
      ":libtint_utils_src",
      ":libtint_wgsl_reader_src",
      ":libtint_wgsl_writer_src",
    ]
  }

  tint_unittests_source_set("tint_unittests_ir_transform_src") {
    sources = [
      "ir/transform/add_empty_entry_point_test.cc",
      "ir/transform/test_helper.h",
    ]

    deps = [
      ":libtint_ir_src",
      ":libtint_ir_transform_src",
      ":libtint_transform_manager_src",
    ]
  }

  tint_unittests_source_set("tint_unittests_utils_src") {
    sources = [
      "debug_test.cc",
      "source_test.cc",
      "switch_test.cc",
      "utils/bitcast_test.cc",
      "utils/bitset_test.cc",
      "utils/block_allocator_test.cc",
      "utils/bump_allocator_test.cc",
      "utils/castable_test.cc",
      "utils/crc32_test.cc",
      "utils/defer_test.cc",
      "utils/enum_set_test.cc",
      "utils/hash_test.cc",
      "utils/hashmap_test.cc",
      "utils/hashset_test.cc",
      "utils/io/command_test.cc",
      "utils/io/tmpfile_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",
    ]
    deps = [ ":libtint_utils_src" ]
  }

  tint_unittests_source_set("tint_unittests_writer_src") {
    sources = [
      "writer/append_vector_test.cc",
      "writer/check_supported_extensions_test.cc",
      "writer/flatten_bindings_test.cc",
      "writer/float_to_string_test.cc",
      "writer/text_generator_test.cc",
    ]
    deps = [
      ":libtint_unittests_ast_helper",
      ":libtint_utils_src",
      ":libtint_writer_src",
    ]
  }

  # Note, this includes the source files along with the test as otherwise the cmd helpers wouldn't
  # be included in the binary.
  tint_unittests_source_set("tint_unittests_cmd_src") {
    sources = [
      "cmd/generate_external_texture_bindings.cc",
      "cmd/generate_external_texture_bindings.h",
      "cmd/generate_external_texture_bindings_test.cc",
    ]
  }

  tint_unittests_source_set("tint_unittests_spv_reader_src") {
    sources = [
      "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_call_test.cc",
      "reader/spirv/function_cfg_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.cc",
      "reader/spirv/parser_impl_test_helper.cc",
      "reader/spirv/parser_impl_test_helper.h",
      "reader/spirv/parser_impl_user_name_test.cc",
      "reader/spirv/parser_test.cc",
      "reader/spirv/parser_type_test.cc",
      "reader/spirv/spirv_tools_helpers_test.cc",
      "reader/spirv/spirv_tools_helpers_test.h",
      "reader/spirv/usage_test.cc",
    ]

    deps = [
      ":libtint_builtins_src",
      ":libtint_spv_reader_src",
      ":libtint_wgsl_writer_src",
      "${tint_spirv_tools_dir}/:spvtools_opt",
    ]
  }

  tint_unittests_source_set("tint_unittests_spv_writer_src") {
    sources = [
      "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",
    ]

    deps = [
      ":libtint_builtins_src",
      ":libtint_spv_writer_src",
      ":libtint_utils_src",
      ":tint_unittests_ast_src",
      "${tint_spirv_tools_dir}/:spvtools",
    ]

    if (tint_build_ir) {
      sources += [
        "writer/spirv/generator_impl_binary_test.cc",
        "writer/spirv/generator_impl_constant_test.cc",
        "writer/spirv/generator_impl_function_test.cc",
        "writer/spirv/generator_impl_if_test.cc",
        "writer/spirv/generator_impl_ir_test.cc",
        "writer/spirv/generator_impl_type_test.cc",
      ]
      deps += [ ":libtint_ir_src" ]
    }
  }

  tint_unittests_source_set("tint_unittests_wgsl_reader_src") {
    sources = [
      "reader/wgsl/classify_template_args_test.cc",
      "reader/wgsl/lexer_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_attribute_list_test.cc",
      "reader/wgsl/parser_impl_function_attribute_test.cc",
      "reader/wgsl/parser_impl_function_decl_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_require_directive_test.cc",
      "reader/wgsl/parser_impl_reserved_keyword_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_attribute_decl_test.cc",
      "reader/wgsl/parser_impl_struct_body_decl_test.cc",
      "reader/wgsl/parser_impl_struct_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_attribute_list_test.cc",
      "reader/wgsl/parser_impl_variable_attribute_test.cc",
      "reader/wgsl/parser_impl_variable_decl_test.cc",
      "reader/wgsl/parser_impl_variable_ident_decl_test.cc",
      "reader/wgsl/parser_impl_variable_qualifier_test.cc",
      "reader/wgsl/parser_impl_variable_stmt_test.cc",
      "reader/wgsl/parser_impl_while_stmt_test.cc",
      "reader/wgsl/parser_test.cc",
      "reader/wgsl/token_test.cc",
    ]

    deps = [
      ":libtint_builtins_src",
      ":libtint_unittests_ast_helper",
      ":libtint_wgsl_reader_src",
    ]
  }

  tint_unittests_source_set("tint_unittests_wgsl_writer_src") {
    sources = [
      "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_literal_test.cc",
      "writer/wgsl/generator_impl_loop_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_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",
    ]

    deps = [
      ":libtint_builtins_src",
      ":libtint_utils_src",
      ":libtint_wgsl_writer_src",
      ":tint_unittests_ast_src",
    ]
  }

  tint_unittests_source_set("tint_unittests_msl_writer_src") {
    sources = [
      "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/test_helper.h",
    ]

    deps = [
      ":libtint_msl_writer_src",
      ":libtint_utils_src",
      ":tint_unittests_ast_src",
    ]
  }

  tint_unittests_source_set("tint_unittests_hlsl_writer_src") {
    sources = [
      "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",
    ]

    deps = [
      ":libtint_ast_transform_src",
      ":libtint_hlsl_writer_src",
      ":libtint_transform_manager_src",
      ":libtint_utils_src",
      ":tint_unittests_ast_src",
    ]
  }

  tint_unittests_source_set("tint_unittests_glsl_writer_src") {
    sources = [
      "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",
    ]

    deps = [
      ":libtint_ast_transform_src",
      ":libtint_glsl_writer_src",
      ":libtint_symbols_src",
      ":libtint_transform_manager_src",
      ":libtint_utils_src",
      ":tint_unittests_ast_src",
    ]
  }

  tint_unittests_source_set("tint_unittests_symbols_src") {
    sources = [
      "number_test.cc",
      "reflection_test.cc",
      "scope_stack_test.cc",
      "symbol_table_test.cc",
      "symbol_test.cc",
    ]
    deps = [ ":libtint_symbols_src" ]
  }

  tint_unittests_source_set("tint_unittests_core_src") {
    sources = [
      "clone_context_test.cc",
      "program_builder_test.cc",
      "program_test.cc",
      "transform/manager_test.cc",
    ]

    deps = [
      ":libtint_ast_transform_base_src",
      ":libtint_program_src",
      ":libtint_transform_manager_src",
      ":libtint_unittests_ast_helper",
      ":tint_unittests_ast_src",
    ]

    if (tint_build_ir) {
      deps += [
        ":libtint_ir_builder_src",
        ":libtint_ir_src",
      ]
    }
  }

  tint_unittests_source_set("tint_unittests_ir_src") {
    sources = [
      "ir/binary_test.cc",
      "ir/bitcast_test.cc",
      "ir/constant_test.cc",
      "ir/discard_test.cc",
      "ir/from_program_binary_test.cc",
      "ir/from_program_call_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/module_test.cc",
      "ir/store_test.cc",
      "ir/test_helper.h",
      "ir/to_program_roundtrip_test.cc",
      "ir/unary_test.cc",
    ]

    deps = [
      ":libtint_ir_builder_src",
      ":libtint_ir_src",
    ]
  }

  if (build_with_chromium) {
    tint_unittests_source_set("tint_unittests_fuzzer_src") {
      sources = [ "fuzzers/random_generator_test.cc" ]

      deps = [
        ":tint_unittests_core_src",
        "fuzzers:tint_fuzzer_common_src",
      ]
    }
  }

  source_set("tint_unittests_src") {
    testonly = true

    deps = [
      ":libtint_wgsl_reader_src",
      ":libtint_wgsl_writer_src",
      ":tint_unittests_ast_src",
      ":tint_unittests_ast_transform_src",
      ":tint_unittests_builtins_src",
      ":tint_unittests_cmd_src",
      ":tint_unittests_constant_src",
      ":tint_unittests_core_src",
      ":tint_unittests_diagnostic_src",
      ":tint_unittests_inspector_src",
      ":tint_unittests_resolver_src",
      ":tint_unittests_sem_src",
      ":tint_unittests_symbols_src",
      ":tint_unittests_type_src",
      ":tint_unittests_utils_src",
      ":tint_unittests_writer_src",
    ]

    if (tint_build_spv_reader) {
      deps += [ ":tint_unittests_spv_reader_src" ]
    }

    if (tint_build_spv_writer) {
      deps += [ ":tint_unittests_spv_writer_src" ]
    }

    if (tint_build_wgsl_reader) {
      deps += [ ":tint_unittests_wgsl_reader_src" ]
    }

    if (tint_build_wgsl_writer) {
      deps += [ ":tint_unittests_wgsl_writer_src" ]
    }

    if (tint_build_msl_writer) {
      deps += [ ":tint_unittests_msl_writer_src" ]
    }

    if (tint_build_hlsl_writer) {
      deps += [ ":tint_unittests_hlsl_writer_src" ]
    }

    if (tint_build_glsl_writer) {
      deps += [ ":tint_unittests_glsl_writer_src" ]
    }

    if (tint_build_ir) {
      deps += [
        ":tint_unittests_ir_src",
        ":tint_unittests_ir_transform_src",
      ]
    }

    if (build_with_chromium) {
      deps += [ ":tint_unittests_fuzzer_src" ]
    }

    configs += [ ":tint_unittests_config" ]

    if (build_with_chromium) {
      configs -= [ "//build/config/compiler:chromium_code" ]
      configs += [ "//build/config/compiler:no_chromium_code" ]
    }
  }

  test("tint_unittests") {
    deps = [
      ":gmock_and_gtest",
      ":tint_unittests_src",
      "${tint_spirv_tools_dir}/:spvtools",
      "${tint_spirv_tools_dir}/:spvtools_opt",
      "${tint_spirv_tools_dir}/:spvtools_val",
    ]

    deps += [ ":tint_unittests_main" ]

    configs += [ ":tint_unittests_config" ]

    if (build_with_chromium) {
      configs -= [ "//build/config/compiler:chromium_code" ]
      configs += [ "//build/config/compiler:no_chromium_code" ]
    }

    if (is_win && is_debug) {
      # TODO(crbug.com/tint/1749): both msvc and clang builds stack overflow on debug builds.
      # Increase the initial stack size to 4 MB (default is 1MB).
      ldflags = [ "/STACK:4194304" ]
    }

    testonly = true
  }
}
