# 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("//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") } component("accessibility") { sources = [ "ax_action_data.cc", "ax_action_data.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_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_platform_unique_id.cc", "platform/ax_platform_unique_id.h", "platform/ax_snapshot_node_android_platform.cc", "platform/ax_snapshot_node_android_platform.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_mac.h", "platform/ax_platform_node_mac.mm", "platform/ax_platform_node_win.cc", "platform/ax_platform_node_win.h", "platform/ax_system_caret_win.cc", "platform/ax_system_caret_win.h", ] } defines = [ "ACCESSIBILITY_IMPLEMENTATION" ] public_deps = [ ":ax_gen", "//base", "//base:i18n", "//ui/base", "//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" ] } } if (is_android) { android_library("ui_accessibility_java") { deps = [ "//third_party/android_tools:android_support_annotations_java", ] srcjar_deps = [ ":ax_enumerations_srcjar" ] } java_cpp_enum("ax_enumerations_srcjar") { sources = [ "ax_enums.idl", ] } } 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_text_utils_unittest.cc", "ax_tree_combiner_unittest.cc", "ax_tree_serializer_unittest.cc", "ax_tree_unittest.cc", "platform/ax_platform_node_unittest.cc", "platform/ax_platform_node_unittest.h", "platform/ax_platform_node_win_unittest.cc", ] deps = [ ":accessibility", ":ax_gen", ":test_support", "//base", "//base/test:run_all_unittests", "//skia", "//testing/gtest", "//ui/base", "//ui/gfx", "//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" ] } } json_schema_api("ax_gen") { sources = [ "ax_enums.idl", ] deps = [ "//base/third_party/dynamic_annotations", ] root_namespace = "ui" schemas = true } fuzzer_test("ax_tree_fuzzer") { sources = [ "ax_tree_fuzzer.cc", ] deps = [ ":accessibility", ] }