# Copyright 2013 The Flutter 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("//flutter/common/config.gni")

source_set("ax") {
  visibility = [ "//flutter/third_party/accessibility/*" ]
  include_dirs = [ "//flutter/third_party/accessibility" ]

  sources = [
    "platform/ax_platform_node.cc",
    "platform/ax_platform_node.h",
    "platform/ax_platform_node_base.cc",
    "platform/ax_platform_node_base.h",
    "platform/ax_platform_node_delegate.h",
    "platform/ax_platform_node_delegate_base.cc",
    "platform/ax_platform_node_delegate_base.h",
    "platform/ax_unique_id.cc",
    "platform/ax_unique_id.h",
    "platform/compute_attributes.cc",
    "platform/compute_attributes.h",
  ]

  sources += [
    "ax_action_data.cc",
    "ax_action_data.h",
    "ax_action_handler.cc",
    "ax_action_handler.h",
    "ax_action_handler_base.cc",
    "ax_action_handler_base.h",
    "ax_active_popup.cc",
    "ax_active_popup.h",
    "ax_base_export.h",
    "ax_clipping_behavior.h",
    "ax_constants.h",
    "ax_coordinate_system.h",
    "ax_enum_util.cc",
    "ax_enum_util.h",
    "ax_enums.h",
    "ax_event_generator.cc",
    "ax_event_generator.h",
    "ax_event_intent.cc",
    "ax_event_intent.h",
    "ax_export.h",
    "ax_mode.cc",
    "ax_mode.h",
    "ax_mode_observer.h",
    "ax_node.cc",
    "ax_node.h",
    "ax_node_data.cc",
    "ax_node_data.h",
    "ax_node_position.cc",
    "ax_node_position.h",
    "ax_node_text_styles.cc",
    "ax_node_text_styles.h",
    "ax_offscreen_result.h",
    "ax_position.h",
    "ax_range.h",
    "ax_relative_bounds.cc",
    "ax_relative_bounds.h",
    "ax_role_properties.cc",
    "ax_role_properties.h",
    "ax_table_info.cc",
    "ax_table_info.h",
    "ax_tree.cc",
    "ax_tree.h",
    "ax_tree_data.cc",
    "ax_tree_data.h",
    "ax_tree_id.cc",
    "ax_tree_id.h",
    "ax_tree_id_registry.cc",
    "ax_tree_id_registry.h",
    "ax_tree_manager.h",
    "ax_tree_manager_map.cc",
    "ax_tree_manager_map.h",
    "ax_tree_observer.cc",
    "ax_tree_observer.h",
    "ax_tree_update.h",
  ]

  if (is_mac) {
    sources += [
      "platform/ax_platform_node_mac.h",
      "platform/ax_platform_node_mac.mm",
    ]
  } else if (is_win) {
    sources += [
      "platform/ax_fragment_root_delegate_win.h",
      "platform/ax_fragment_root_win.cc",
      "platform/ax_fragment_root_win.h",
      "platform/ax_platform_node_delegate_utils_win.cc",
      "platform/ax_platform_node_delegate_utils_win.h",
      "platform/ax_platform_node_win.cc",
      "platform/ax_platform_node_win.h",
      "platform/uia_registrar_win.cc",
      "platform/uia_registrar_win.h",
    ]
    libs = [
      "oleacc.lib",
      "uiautomationcore.lib",
    ]
  }

  public_deps = [
    "//flutter/third_party/accessibility/ax_build",
    "//flutter/third_party/accessibility/base",
    "//flutter/third_party/accessibility/gfx",
  ]
}
