# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//third_party/blink/renderer/modules/modules.gni")

blink_modules_sources("accessibility") {
  sources = [
    "ax_enums.cc",
    "ax_enums.h",
    "ax_image_map_link.cc",
    "ax_image_map_link.h",
    "ax_inline_text_box.cc",
    "ax_inline_text_box.h",
    "ax_layout_object.cc",
    "ax_layout_object.h",
    "ax_list.cc",
    "ax_list.h",
    "ax_list_box.cc",
    "ax_list_box.h",
    "ax_list_box_option.cc",
    "ax_list_box_option.h",
    "ax_media_controls.cc",
    "ax_media_controls.h",
    "ax_menu_list.cc",
    "ax_menu_list.h",
    "ax_menu_list_option.cc",
    "ax_menu_list_option.h",
    "ax_menu_list_popup.cc",
    "ax_menu_list_popup.h",
    "ax_mock_object.cc",
    "ax_mock_object.h",
    "ax_node_object.cc",
    "ax_node_object.h",
    "ax_object.cc",
    "ax_object.h",
    "ax_object_cache_impl.cc",
    "ax_object_cache_impl.h",
    "ax_position.cc",
    "ax_position.h",
    "ax_progress_indicator.cc",
    "ax_progress_indicator.h",
    "ax_radio_input.cc",
    "ax_radio_input.h",
    "ax_range.cc",
    "ax_range.h",
    "ax_relation_cache.cc",
    "ax_relation_cache.h",
    "ax_selection.cc",
    "ax_selection.h",
    "ax_slider.cc",
    "ax_slider.h",
    "ax_sparse_attribute_setter.cc",
    "ax_sparse_attribute_setter.h",
    "ax_svg_root.cc",
    "ax_svg_root.h",
    "ax_validation_message.cc",
    "ax_validation_message.h",
    "ax_virtual_object.cc",
    "ax_virtual_object.h",
    "inspector_accessibility_agent.cc",
    "inspector_accessibility_agent.h",
    "inspector_type_builder_helper.cc",
    "inspector_type_builder_helper.h",
  ]

  deps = [
    "//ui/accessibility:ax_enums_mojo_blink",
  ]

  # The modules/accessibility/ depends closely on core/ --
  # include the core pch for faster Windows compilation times.
  configs += [ "//third_party/blink/renderer/core:blink_core_pch" ]
}
