# Copyright 2014 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("//build/config/linux/gtk/gtk.gni") import("//build/config/linux/pkg_config.gni") import("//build/config/features.gni") import("//build/config/ui.gni") import("//mojo/public/tools/bindings/mojom.gni") import("//services/service_manager/public/service_manifest.gni") import("//testing/libfuzzer/fuzzer_test.gni") import("//testing/test.gni") import("//tools/json_schema_compiler/json_schema_api.gni") import("//ui/base/ui_features.gni") if (is_android) { import("//build/config/android/rules.gni") } mojom("ax_enums_mojo") { sources = [ "ax_enums.mojom", ] public_deps = [ "//mojo/public/mojom/base", "//ui/gfx/geometry/mojo", "//ui/gfx/mojo", ] } component("accessibility") { sources = [ "ax_action_data.cc", "ax_action_data.h", "ax_enum_util.cc", "ax_enum_util.h", "ax_event.cc", "ax_event.h", "ax_event_generator.cc", "ax_event_generator.h", "ax_export.h", "ax_host_delegate.cc", "ax_host_delegate.h", "ax_node.cc", "ax_node.h", "ax_node_data.cc", "ax_node_data.h", "ax_node_position.cc", "ax_node_position.h", "ax_position.h", "ax_range.h", "ax_relative_bounds.cc", "ax_relative_bounds.h", "ax_role_properties.cc", "ax_role_properties.h", "ax_serializable_tree.cc", "ax_serializable_tree.h", "ax_table_info.cc", "ax_table_info.h", "ax_text_utils.cc", "ax_text_utils.h", "ax_tree.cc", "ax_tree.h", "ax_tree_combiner.cc", "ax_tree_combiner.h", "ax_tree_data.cc", "ax_tree_data.h", "ax_tree_id_registry.cc", "ax_tree_id_registry.h", "ax_tree_serializer.cc", "ax_tree_serializer.h", "ax_tree_source.h", "ax_tree_update.h", "platform/ax_android_constants.cc", "platform/ax_android_constants.h", "platform/ax_platform_node.cc", "platform/ax_platform_node.h", "platform/ax_unique_id.cc", "platform/ax_unique_id.h", ] if (has_native_accessibility) { sources += [ "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_platform_node_mac.h", "platform/ax_platform_node_mac.mm", "platform/ax_platform_node_win.cc", "platform/ax_platform_node_win.h", "platform/ax_platform_relation_win.cc", "platform/ax_platform_relation_win.h", "platform/ax_system_caret_win.cc", "platform/ax_system_caret_win.h", ] } defines = [ "ACCESSIBILITY_IMPLEMENTATION" ] public_deps = [ ":ax_enums_mojo", "//base", "//base:i18n", "//ui/base", "//ui/display", "//ui/gfx", "//ui/gfx/geometry", "//ui/strings", ] if (is_win) { public_deps += [ "//third_party/iaccessible2" ] libs = [ "oleacc.lib" ] } if (is_mac) { libs = [ "AppKit.framework", "Foundation.framework", ] } if (use_atk) { sources += [ "platform/atk_util_auralinux.cc", "platform/atk_util_auralinux.h", "platform/ax_platform_atk_hyperlink.cc", "platform/ax_platform_atk_hyperlink.h", "platform/ax_platform_node_auralinux.cc", "platform/ax_platform_node_auralinux.h", ] configs += [ "//build/config/linux/atk" ] if (use_glib) { configs += [ "//build/config/linux:glib" ] } if (use_gtk3) { sources += [ "platform/atk_util_auralinux_gtk3.cc" ] } else { sources += [ "platform/atk_util_auralinux_gtk2.cc" ] } } if (use_aura) { sources += [ "platform/aura_window_properties.cc", "platform/aura_window_properties.h", ] public_deps += [ "//ui/aura" ] } } source_set("ax_assistant") { sources = [ "ax_assistant_structure.cc", "ax_assistant_structure.h", ] deps = [ ":accessibility", ] } service_manifest("manifest") { name = "ax_host_service" source = "ax_host_service_manifest.json" } static_library("test_support") { testonly = true sources = [ "tree_generator.cc", "tree_generator.h", ] if (is_win || use_atk) { sources += [ "platform/test_ax_node_wrapper.cc", "platform/test_ax_node_wrapper.h", ] } deps = [ ":accessibility", ] } test("accessibility_unittests") { testonly = true sources = [ "ax_event_generator_unittest.cc", "ax_generated_tree_unittest.cc", "ax_node_position_unittest.cc", "ax_table_info_unittest.cc", "ax_text_utils_unittest.cc", "ax_tree_combiner_unittest.cc", "ax_tree_serializer_unittest.cc", "ax_tree_unittest.cc", "mojom/ax_action_data_mojom_traits_unittest.cc", "mojom/ax_event_mojom_traits_unittest.cc", "mojom/ax_node_data_mojom_traits_unittest.cc", "mojom/ax_tree_data_mojom_traits_unittest.cc", "mojom/ax_tree_update_mojom_traits_unittest.cc", "platform/ax_platform_node_unittest.cc", "platform/ax_platform_node_unittest.h", "platform/ax_platform_node_win_unittest.cc", "platform/ax_unique_id_unittest.cc", "run_all_unittests.cc", ] deps = [ ":accessibility", ":ax_enums_mojo", ":test_support", "//base", "//base/test:test_support", "//mojo/core/embedder", "//mojo/core/test:test_support", "//mojo/public/cpp/test_support:test_utils", "//skia", "//testing/gtest", "//ui/accessibility/mojom", "//ui/base", "//ui/gfx", "//ui/gfx:test_support", "//ui/gfx/geometry", ] if (is_win) { deps += [ "//third_party/iaccessible2" ] libs = [ "oleacc.lib" ] } if (use_atk) { sources += [ "platform/ax_platform_node_auralinux_unittest.cc" ] configs += [ "//build/config/linux/atk" ] } } fuzzer_test("ax_tree_fuzzer") { sources = [ "ax_tree_fuzzer.cc", ] deps = [ ":accessibility", ] }