# 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/features.gni")
import("//build/config/ui.gni")
import("//testing/test.gni")
import("//ui/base/ui_features.gni")
import("//ui/ozone/ozone.gni")
import("//ui/vector_icons/vector_icons.gni")

config("flags") {
  defines = [ "TOOLKIT_VIEWS=1" ]
}

aggregate_vector_icons("views_vector_icons") {
  icon_directory = "vector_icons"

  icons = [
    "checkbox_active.icon",
    "checkbox_normal.icon",
    "menu_check.1x.icon",
    "menu_check.icon",
    "menu_radio_empty.icon",
    "menu_radio_selected.icon",
    "radio_button_active.icon",
    "radio_button_normal.icon",
    "submenu_arrow.1x.icon",
    "submenu_arrow.icon",
  ]
}

component("views") {
  all_dependent_configs = [ ":flags" ]
  sources = [
    "accessibility/native_view_accessibility.h",
    "accessible_pane_view.cc",
    "accessible_pane_view.h",
    "animation/bounds_animator.cc",
    "animation/bounds_animator.h",
    "animation/flood_fill_ink_drop_ripple.cc",
    "animation/flood_fill_ink_drop_ripple.h",
    "animation/ink_drop.cc",
    "animation/ink_drop.h",
    "animation/ink_drop_animation_ended_reason.cc",
    "animation/ink_drop_animation_ended_reason.h",
    "animation/ink_drop_highlight.cc",
    "animation/ink_drop_highlight.h",
    "animation/ink_drop_highlight_observer.h",
    "animation/ink_drop_host.h",
    "animation/ink_drop_host_view.cc",
    "animation/ink_drop_host_view.h",
    "animation/ink_drop_impl.cc",
    "animation/ink_drop_impl.h",
    "animation/ink_drop_mask.cc",
    "animation/ink_drop_mask.h",
    "animation/ink_drop_painted_layer_delegates.cc",
    "animation/ink_drop_painted_layer_delegates.h",
    "animation/ink_drop_ripple.cc",
    "animation/ink_drop_ripple.h",
    "animation/ink_drop_ripple_observer.h",
    "animation/ink_drop_state.cc",
    "animation/ink_drop_state.h",
    "animation/ink_drop_stub.cc",
    "animation/ink_drop_stub.h",
    "animation/scroll_animator.cc",
    "animation/scroll_animator.h",
    "animation/square_ink_drop_ripple.cc",
    "animation/square_ink_drop_ripple.h",
    "background.cc",
    "background.h",
    "border.cc",
    "border.h",
    "bubble/bubble_border.cc",
    "bubble/bubble_border.h",
    "bubble/bubble_dialog_delegate.cc",
    "bubble/bubble_dialog_delegate.h",
    "bubble/bubble_frame_view.cc",
    "bubble/bubble_frame_view.h",
    "bubble/info_bubble.cc",
    "bubble/info_bubble.h",
    "bubble/tooltip_icon.cc",
    "bubble/tooltip_icon.h",
    "button_drag_utils.cc",
    "button_drag_utils.h",
    "cocoa/bridged_content_view.h",
    "cocoa/bridged_content_view.mm",
    "cocoa/bridged_content_view_touch_bar.mm",
    "cocoa/bridged_native_widget.h",
    "cocoa/bridged_native_widget.mm",
    "cocoa/bridged_native_widget_owner.h",
    "cocoa/cocoa_mouse_capture.h",
    "cocoa/cocoa_mouse_capture.mm",
    "cocoa/cocoa_mouse_capture_delegate.h",
    "cocoa/cocoa_window_move_loop.h",
    "cocoa/cocoa_window_move_loop.mm",
    "cocoa/drag_drop_client_mac.h",
    "cocoa/drag_drop_client_mac.mm",
    "cocoa/native_widget_mac_nswindow.h",
    "cocoa/native_widget_mac_nswindow.mm",
    "cocoa/tooltip_manager_mac.h",
    "cocoa/tooltip_manager_mac.mm",
    "cocoa/views_nswindow_delegate.h",
    "cocoa/views_nswindow_delegate.mm",
    "cocoa/views_scrollbar_bridge.h",
    "cocoa/views_scrollbar_bridge.mm",
    "cocoa/widget_owner_nswindow_adapter.h",
    "cocoa/widget_owner_nswindow_adapter.mm",
    "color_chooser/color_chooser_listener.h",
    "color_chooser/color_chooser_view.cc",
    "color_chooser/color_chooser_view.h",
    "context_menu_controller.h",
    "controls/button/blue_button.cc",
    "controls/button/blue_button.h",
    "controls/button/button.cc",
    "controls/button/button.h",
    "controls/button/checkbox.cc",
    "controls/button/checkbox.h",
    "controls/button/custom_button.cc",
    "controls/button/custom_button.h",
    "controls/button/image_button.cc",
    "controls/button/image_button.h",
    "controls/button/image_button_factory.cc",
    "controls/button/image_button_factory.h",
    "controls/button/label_button.cc",
    "controls/button/label_button.h",
    "controls/button/label_button_border.cc",
    "controls/button/label_button_border.h",
    "controls/button/md_text_button.cc",
    "controls/button/md_text_button.h",
    "controls/button/menu_button.cc",
    "controls/button/menu_button.h",
    "controls/button/menu_button_listener.h",
    "controls/button/radio_button.cc",
    "controls/button/radio_button.h",
    "controls/button/toggle_button.cc",
    "controls/button/toggle_button.h",
    "controls/combobox/combobox.cc",
    "controls/combobox/combobox.h",
    "controls/combobox/combobox_listener.h",
    "controls/focus_ring.cc",
    "controls/focus_ring.h",
    "controls/focusable_border.cc",
    "controls/focusable_border.h",
    "controls/focusable_rounded_border_mac.cc",
    "controls/focusable_rounded_border_mac.h",
    "controls/glow_hover_controller.cc",
    "controls/glow_hover_controller.h",
    "controls/image_view.cc",
    "controls/image_view.h",
    "controls/label.cc",
    "controls/label.h",
    "controls/link.cc",
    "controls/link.h",
    "controls/link_listener.h",
    "controls/menu/display_change_listener_mac.cc",
    "controls/menu/menu_config.cc",
    "controls/menu/menu_config.h",
    "controls/menu/menu_config_chromeos.cc",
    "controls/menu/menu_config_linux.cc",
    "controls/menu/menu_config_mac.mm",
    "controls/menu/menu_config_win.cc",
    "controls/menu/menu_controller.cc",
    "controls/menu/menu_controller.h",
    "controls/menu/menu_controller_delegate.h",
    "controls/menu/menu_delegate.cc",
    "controls/menu/menu_delegate.h",
    "controls/menu/menu_host.cc",
    "controls/menu/menu_host.h",
    "controls/menu/menu_host_root_view.cc",
    "controls/menu/menu_host_root_view.h",
    "controls/menu/menu_image_util.cc",
    "controls/menu/menu_image_util.h",
    "controls/menu/menu_insertion_delegate_win.h",
    "controls/menu/menu_item_view.cc",
    "controls/menu/menu_item_view.h",
    "controls/menu/menu_listener.cc",
    "controls/menu/menu_listener.h",
    "controls/menu/menu_model_adapter.cc",
    "controls/menu/menu_model_adapter.h",
    "controls/menu/menu_runner.cc",
    "controls/menu/menu_runner.h",
    "controls/menu/menu_runner_handler.h",
    "controls/menu/menu_runner_impl.cc",
    "controls/menu/menu_runner_impl.h",
    "controls/menu/menu_runner_impl_adapter.cc",
    "controls/menu/menu_runner_impl_adapter.h",
    "controls/menu/menu_runner_impl_cocoa.h",
    "controls/menu/menu_runner_impl_cocoa.mm",
    "controls/menu/menu_runner_impl_interface.h",
    "controls/menu/menu_scroll_view_container.cc",
    "controls/menu/menu_scroll_view_container.h",
    "controls/menu/menu_separator.cc",
    "controls/menu/menu_separator.h",
    "controls/menu/menu_types.h",
    "controls/menu/native_menu_win.cc",
    "controls/menu/native_menu_win.h",
    "controls/menu/submenu_view.cc",
    "controls/menu/submenu_view.h",
    "controls/message_box_view.cc",
    "controls/message_box_view.h",
    "controls/native/native_view_host.cc",
    "controls/native/native_view_host.h",
    "controls/native/native_view_host_mac.h",
    "controls/native/native_view_host_mac.mm",
    "controls/prefix_delegate.h",
    "controls/prefix_selector.cc",
    "controls/prefix_selector.h",
    "controls/progress_bar.cc",
    "controls/progress_bar.h",
    "controls/resize_area.cc",
    "controls/resize_area.h",
    "controls/resize_area_delegate.h",
    "controls/scroll_view.cc",
    "controls/scroll_view.h",
    "controls/scrollbar/base_scroll_bar.cc",
    "controls/scrollbar/base_scroll_bar.h",
    "controls/scrollbar/base_scroll_bar_button.cc",
    "controls/scrollbar/base_scroll_bar_button.h",
    "controls/scrollbar/base_scroll_bar_thumb.cc",
    "controls/scrollbar/base_scroll_bar_thumb.h",
    "controls/scrollbar/cocoa_scroll_bar.h",
    "controls/scrollbar/cocoa_scroll_bar.mm",
    "controls/scrollbar/overlay_scroll_bar.cc",
    "controls/scrollbar/overlay_scroll_bar.h",
    "controls/scrollbar/scroll_bar.cc",
    "controls/scrollbar/scroll_bar.h",
    "controls/scrollbar/scroll_bar_views.cc",
    "controls/scrollbar/scroll_bar_views.h",
    "controls/separator.cc",
    "controls/separator.h",
    "controls/slide_out_view.cc",
    "controls/slide_out_view.h",
    "controls/slider.cc",
    "controls/slider.h",
    "controls/styled_label.cc",
    "controls/styled_label.h",
    "controls/styled_label_listener.h",
    "controls/tabbed_pane/tabbed_pane.cc",
    "controls/tabbed_pane/tabbed_pane.h",
    "controls/tabbed_pane/tabbed_pane_listener.h",
    "controls/table/table_header.cc",
    "controls/table/table_header.h",
    "controls/table/table_utils.cc",
    "controls/table/table_utils.h",
    "controls/table/table_view.cc",
    "controls/table/table_view.h",
    "controls/table/table_view_observer.h",
    "controls/textfield/textfield.cc",
    "controls/textfield/textfield.h",
    "controls/textfield/textfield_controller.cc",
    "controls/textfield/textfield_controller.h",
    "controls/textfield/textfield_model.cc",
    "controls/textfield/textfield_model.h",
    "controls/throbber.cc",
    "controls/throbber.h",
    "controls/tree/tree_view.cc",
    "controls/tree/tree_view.h",
    "controls/tree/tree_view_controller.cc",
    "controls/tree/tree_view_controller.h",
    "debug_utils.cc",
    "debug_utils.h",
    "drag_controller.h",
    "drag_utils.cc",
    "drag_utils.h",
    "drag_utils_mac.mm",
    "event_monitor.h",
    "event_monitor_mac.h",
    "event_monitor_mac.mm",
    "focus/external_focus_tracker.cc",
    "focus/external_focus_tracker.h",
    "focus/focus_manager.cc",
    "focus/focus_manager.h",
    "focus/focus_manager_delegate.h",
    "focus/focus_manager_factory.cc",
    "focus/focus_manager_factory.h",
    "focus/focus_search.cc",
    "focus/focus_search.h",
    "focus/view_storage.cc",
    "focus/view_storage.h",
    "focus/widget_focus_manager.cc",
    "focus/widget_focus_manager.h",
    "layout/box_layout.cc",
    "layout/box_layout.h",
    "layout/fill_layout.cc",
    "layout/fill_layout.h",
    "layout/grid_layout.cc",
    "layout/grid_layout.h",
    "layout/layout_constants.h",
    "layout/layout_manager.cc",
    "layout/layout_manager.h",
    "layout/layout_provider.cc",
    "layout/layout_provider.h",
    "linux_ui/linux_ui.cc",
    "linux_ui/linux_ui.h",
    "linux_ui/status_icon_linux.cc",
    "linux_ui/status_icon_linux.h",
    "linux_ui/window_button_order_observer.h",
    "linux_ui/window_button_order_provider.cc",
    "masked_targeter_delegate.cc",
    "masked_targeter_delegate.h",
    "metrics.cc",
    "metrics.h",
    "metrics_mac.cc",
    "mouse_constants.h",
    "mouse_watcher.cc",
    "mouse_watcher.h",
    "mouse_watcher_view_host.cc",
    "mouse_watcher_view_host.h",
    "native_cursor.h",
    "native_cursor_mac.mm",
    "native_theme_delegate.h",
    "painter.cc",
    "painter.h",
    "pointer_watcher.h",
    "rect_based_targeting_utils.cc",
    "rect_based_targeting_utils.h",
    "repeat_controller.cc",
    "repeat_controller.h",
    "round_rect_painter.cc",
    "round_rect_painter.h",
    "selection_controller.cc",
    "selection_controller.h",
    "selection_controller_delegate.h",
    "shadow_border.cc",
    "shadow_border.h",
    "style/platform_style.cc",
    "style/platform_style.h",
    "style/platform_style_mac.mm",
    "style/typography.cc",
    "style/typography.h",
    "style/typography_provider.cc",
    "style/typography_provider.h",
    "view.cc",
    "view.h",
    "view_constants.cc",
    "view_constants.h",
    "view_model.cc",
    "view_model.h",
    "view_model_utils.cc",
    "view_model_utils.h",
    "view_observer.h",
    "view_targeter.cc",
    "view_targeter.h",
    "view_targeter_delegate.cc",
    "view_targeter_delegate.h",
    "views_delegate.cc",
    "views_delegate.h",
    "views_export.h",
    "views_exports.cc",
    "views_switches.cc",
    "views_switches.h",
    "views_touch_selection_controller_factory.h",
    "views_touch_selection_controller_factory_mac.cc",
    "widget/drop_helper.cc",
    "widget/drop_helper.h",
    "widget/native_widget.h",
    "widget/native_widget_delegate.h",
    "widget/native_widget_mac.h",
    "widget/native_widget_mac.mm",
    "widget/native_widget_private.h",
    "widget/root_view.cc",
    "widget/root_view.h",
    "widget/root_view_targeter.cc",
    "widget/root_view_targeter.h",
    "widget/tooltip_manager.cc",
    "widget/tooltip_manager.h",
    "widget/widget.cc",
    "widget/widget.h",
    "widget/widget_aura_utils.cc",
    "widget/widget_aura_utils.h",
    "widget/widget_delegate.cc",
    "widget/widget_delegate.h",
    "widget/widget_deletion_observer.cc",
    "widget/widget_deletion_observer.h",
    "widget/widget_observer.h",
    "widget/widget_removals_observer.h",
    "window/client_view.cc",
    "window/client_view.h",
    "window/custom_frame_view.cc",
    "window/custom_frame_view.h",
    "window/dialog_client_view.cc",
    "window/dialog_client_view.h",
    "window/dialog_delegate.cc",
    "window/dialog_delegate.h",
    "window/frame_background.cc",
    "window/frame_background.h",
    "window/frame_buttons.h",
    "window/native_frame_view.cc",
    "window/native_frame_view.h",
    "window/non_client_view.cc",
    "window/non_client_view.h",
    "window/window_button_order_provider.cc",
    "window/window_button_order_provider.h",
    "window/window_resources.h",
    "window/window_shape.cc",
    "window/window_shape.h",
    "word_lookup_client.h",
  ]

  sources += get_target_outputs(":views_vector_icons")

  configs += [
    "//build/config:precompiled_headers",

    # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
    "//build/config/compiler:no_size_t_to_int_warning",
  ]

  defines = [ "VIEWS_IMPLEMENTATION" ]

  deps = [
    ":views_vector_icons",
    "//base:i18n",
    "//base/third_party/dynamic_annotations",
    "//cc/paint",
    "//services/ui/public/interfaces",
    "//skia",
    "//third_party/icu",
    "//ui/accessibility",
    "//ui/display",
    "//ui/native_theme",
    "//ui/native_theme:native_theme_browser",
    "//ui/resources",
    "//ui/strings",
    "//ui/views/resources",
    "//url",
  ]

  public_deps = [
    "//base",
    "//ui/accessibility:ax_gen",
    "//ui/base",
    "//ui/base/ime",
    "//ui/compositor",
    "//ui/display",
    "//ui/events",
    "//ui/events:events_base",
    "//ui/events/platform",
    "//ui/gfx",
    "//ui/gfx/animation",
    "//ui/gfx/geometry",
    "//ui/vector_icons",
    "//ui/views/resources",
  ]

  if (use_x11 && !is_chromeos) {
    deps += [ "//ui/display/util" ]
  }
  if (is_linux && !is_chromeos) {
    sources -= [ "window/window_button_order_provider.cc" ]
    deps += [ "//ui/shell_dialogs" ]
  } else {
    sources -= [
      "linux_ui/linux_ui.cc",
      "linux_ui/linux_ui.h",
      "linux_ui/window_button_order_observer.h",
      "linux_ui/window_button_order_provider.cc",
    ]
  }

  if (is_chromeos) {
    sources -= [
      "controls/menu/menu_config_linux.cc",
      "linux_ui/status_icon_linux.cc",
      "linux_ui/status_icon_linux.h",
    ]
    sources += [ "widget/desktop_aura/desktop_window_tree_host_chromeos.cc" ]
  }

  if (is_win) {
    sources += [
      "widget/widget_hwnd_utils.cc",
      "widget/widget_hwnd_utils.h",
      "win/fullscreen_handler.cc",
      "win/fullscreen_handler.h",
      "win/hwnd_message_handler.cc",
      "win/hwnd_message_handler.h",
      "win/hwnd_message_handler_delegate.h",
      "win/hwnd_util.h",
      "win/hwnd_util_aurawin.cc",
      "win/scoped_fullscreen_visibility.cc",
      "win/scoped_fullscreen_visibility.h",
      "win/windows_session_change_observer.cc",
      "win/windows_session_change_observer.h",
    ]
    libs = [
      "dwmapi.lib",
      "imm32.lib",
      "oleacc.lib",
      "wtsapi32.lib",
    ]
    ldflags = [ "/DELAYLOAD:user32.dll" ]
    deps += [
      "//third_party/iaccessible2",
      "//third_party/wtl",
    ]
  }

  if (use_ozone) {
    deps += [ "//ui/ozone" ]
  }
  if (use_x11) {
    configs += [
      "//build/config/linux:x11",
      "//build/config/linux:xrandr",
    ]
    deps += [
      "//ui/events/devices",
      "//ui/events/devices/x11",
      "//ui/events/platform/x11",
      "//ui/gfx/x",
    ]
  }

  if (use_aura) {
    sources += [
      "accessibility/ax_aura_obj_cache.cc",
      "accessibility/ax_aura_obj_cache.h",
      "accessibility/ax_aura_obj_wrapper.cc",
      "accessibility/ax_aura_obj_wrapper.h",
      "accessibility/ax_view_obj_wrapper.cc",
      "accessibility/ax_view_obj_wrapper.h",
      "accessibility/ax_widget_obj_wrapper.cc",
      "accessibility/ax_widget_obj_wrapper.h",
      "accessibility/ax_window_obj_wrapper.cc",
      "accessibility/ax_window_obj_wrapper.h",
      "bubble/bubble_window_targeter.cc",
      "bubble/bubble_window_targeter.h",
      "bubble/tray_bubble_view.cc",
      "bubble/tray_bubble_view.h",
      "controls/menu/display_change_listener_aura.cc",
      "controls/menu/menu_pre_target_handler.cc",
      "controls/menu/menu_pre_target_handler.h",
      "controls/native/native_view_host_aura.cc",
      "controls/native/native_view_host_aura.h",
      "corewm/cursor_height_provider_win.cc",
      "corewm/cursor_height_provider_win.h",
      "corewm/tooltip.h",
      "corewm/tooltip_aura.cc",
      "corewm/tooltip_aura.h",
      "corewm/tooltip_controller.cc",
      "corewm/tooltip_controller.h",
      "corewm/tooltip_win.cc",
      "corewm/tooltip_win.h",
      "drag_utils_aura.cc",
      "event_monitor_aura.cc",
      "event_monitor_aura.h",
      "metrics_aura.cc",
      "native_cursor_aura.cc",
      "touchui/touch_selection_controller_impl.cc",
      "touchui/touch_selection_controller_impl.h",
      "touchui/touch_selection_menu_runner_views.cc",
      "touchui/touch_selection_menu_runner_views.h",
      "view_constants_aura.cc",
      "view_constants_aura.h",
      "views_touch_selection_controller_factory_aura.cc",
      "widget/desktop_aura/desktop_capture_client.cc",
      "widget/desktop_aura/desktop_capture_client.h",
      "widget/desktop_aura/desktop_drop_target_win.cc",
      "widget/desktop_aura/desktop_drop_target_win.h",
      "widget/desktop_aura/desktop_event_client.cc",
      "widget/desktop_aura/desktop_event_client.h",
      "widget/desktop_aura/desktop_focus_rules.cc",
      "widget/desktop_aura/desktop_focus_rules.h",
      "widget/desktop_aura/desktop_native_cursor_manager.cc",
      "widget/desktop_aura/desktop_native_cursor_manager.h",
      "widget/desktop_aura/desktop_native_widget_aura.cc",
      "widget/desktop_aura/desktop_native_widget_aura.h",
      "widget/desktop_aura/desktop_screen.h",
      "widget/desktop_aura/desktop_screen_position_client.cc",
      "widget/desktop_aura/desktop_screen_position_client.h",
      "widget/desktop_aura/desktop_window_tree_host.h",
      "widget/focus_manager_event_handler.cc",
      "widget/focus_manager_event_handler.h",
      "widget/native_widget_aura.cc",
      "widget/native_widget_aura.h",
      "widget/tooltip_manager_aura.cc",
      "widget/tooltip_manager_aura.h",
      "widget/window_reorderer.cc",
      "widget/window_reorderer.h",
    ]
    deps += [
      "//services/ui/public/interfaces",
      "//ui/aura",
      "//ui/touch_selection",
      "//ui/wm",
    ]
    if (!is_chromeos) {
      if (use_x11) {
        sources += [
          "widget/desktop_aura/desktop_drag_drop_client_aurax11.cc",
          "widget/desktop_aura/desktop_drag_drop_client_aurax11.h",
          "widget/desktop_aura/desktop_screen_x11.cc",
          "widget/desktop_aura/desktop_screen_x11.h",
          "widget/desktop_aura/desktop_window_tree_host_x11.cc",
          "widget/desktop_aura/desktop_window_tree_host_x11.h",
          "widget/desktop_aura/x11_desktop_handler.cc",
          "widget/desktop_aura/x11_desktop_handler.h",
          "widget/desktop_aura/x11_desktop_handler_observer.h",
          "widget/desktop_aura/x11_desktop_window_move_client.cc",
          "widget/desktop_aura/x11_desktop_window_move_client.h",
          "widget/desktop_aura/x11_move_loop.h",
          "widget/desktop_aura/x11_move_loop_delegate.h",
          "widget/desktop_aura/x11_pointer_grab.cc",
          "widget/desktop_aura/x11_pointer_grab.h",
          "widget/desktop_aura/x11_topmost_window_finder.cc",
          "widget/desktop_aura/x11_topmost_window_finder.h",
          "widget/desktop_aura/x11_whole_screen_move_loop.cc",
          "widget/desktop_aura/x11_whole_screen_move_loop.h",
          "widget/desktop_aura/x11_window_event_filter.cc",
          "widget/desktop_aura/x11_window_event_filter.h",
        ]
        if (use_atk) {
          sources += [
            "accessibility/native_view_accessibility_auralinux.cc",
            "accessibility/native_view_accessibility_auralinux.h",
          ]
          configs += [ "//build/config/linux/atk" ]
        }
      } else if (is_win) {
        sources += [
          "widget/desktop_aura/desktop_drag_drop_client_win.cc",
          "widget/desktop_aura/desktop_drag_drop_client_win.h",
          "widget/desktop_aura/desktop_screen_win.cc",
          "widget/desktop_aura/desktop_screen_win.h",
          "widget/desktop_aura/desktop_window_tree_host_win.cc",
          "widget/desktop_aura/desktop_window_tree_host_win.h",
        ]
      } else if (use_ozone) {
        sources += [ "widget/desktop_aura/desktop_window_tree_host_ozone.cc" ]
      }
      if (is_linux) {
        sources += [ "style/platform_style_linux.cc" ]
      }
    }
  }

  if (is_mac) {
    deps += [
      "//ui/accelerated_widget_mac",
      "//ui/events:dom_keycode_converter",
    ]
    libs = [
      "AppKit.framework",
      "CoreGraphics.framework",
      "Foundation.framework",
      "QuartzCore.framework",  # Required by bridged_native_widget.mm.
    ]
  }

  if (has_native_accessibility) {
    sources += [
      "accessibility/native_view_accessibility_base.cc",
      "accessibility/native_view_accessibility_base.h",
      "accessibility/native_view_accessibility_mac.h",
      "accessibility/native_view_accessibility_mac.mm",
      "accessibility/native_view_accessibility_win.cc",
      "accessibility/native_view_accessibility_win.h",
    ]
  } else {
    sources += [ "accessibility/native_view_accessibility_stub.cc" ]
  }
}

static_library("test_support_internal") {
  testonly = true
  sources = [
    "animation/test/flood_fill_ink_drop_ripple_test_api.cc",
    "animation/test/flood_fill_ink_drop_ripple_test_api.h",
    "animation/test/ink_drop_highlight_test_api.cc",
    "animation/test/ink_drop_highlight_test_api.h",
    "animation/test/ink_drop_host_view_test_api.cc",
    "animation/test/ink_drop_host_view_test_api.h",
    "animation/test/ink_drop_impl_test_api.cc",
    "animation/test/ink_drop_impl_test_api.h",
    "animation/test/ink_drop_ripple_test_api.cc",
    "animation/test/ink_drop_ripple_test_api.h",
    "animation/test/ink_drop_utils.cc",
    "animation/test/square_ink_drop_ripple_test_api.cc",
    "animation/test/square_ink_drop_ripple_test_api.h",
    "animation/test/test_ink_drop.cc",
    "animation/test/test_ink_drop.h",
    "animation/test/test_ink_drop_animation_observer_helper.h",
    "animation/test/test_ink_drop_highlight_observer.cc",
    "animation/test/test_ink_drop_highlight_observer.h",
    "animation/test/test_ink_drop_host.cc",
    "animation/test/test_ink_drop_host.h",
    "animation/test/test_ink_drop_ripple_observer.cc",
    "animation/test/test_ink_drop_ripple_observer.h",
    "controls/textfield/textfield_test_api.cc",
    "controls/textfield/textfield_test_api.h",
    "corewm/test/tooltip_aura_test_api.cc",
    "corewm/test/tooltip_aura_test_api.h",
    "test/capture_tracking_view.cc",
    "test/capture_tracking_view.h",
    "test/combobox_test_api.cc",
    "test/combobox_test_api.h",
    "test/desktop_test_views_delegate.h",
    "test/desktop_test_views_delegate_mac.mm",
    "test/event_generator_delegate_mac.h",
    "test/event_generator_delegate_mac.mm",
    "test/focus_manager_test.cc",
    "test/focus_manager_test.h",
    "test/menu_runner_test_api.cc",
    "test/menu_runner_test_api.h",
    "test/menu_test_utils.cc",
    "test/menu_test_utils.h",
    "test/native_widget_factory.h",
    "test/scoped_views_test_helper.cc",
    "test/scoped_views_test_helper.h",
    "test/slider_test_api.cc",
    "test/slider_test_api.h",
    "test/test_layout_manager.cc",
    "test/test_layout_manager.h",
    "test/test_platform_native_widget.h",
    "test/test_views.cc",
    "test/test_views.h",
    "test/test_views_delegate.h",
    "test/test_views_delegate_mac.mm",
    "test/test_widget_observer.cc",
    "test/test_widget_observer.h",
    "test/views_interactive_ui_test_base.cc",
    "test/views_interactive_ui_test_base.h",
    "test/views_test_base.cc",
    "test/views_test_base.h",
    "test/views_test_helper.cc",
    "test/views_test_helper.h",
    "test/views_test_helper_mac.h",
    "test/views_test_helper_mac.mm",
    "test/widget_test.cc",
    "test/widget_test.h",
    "test/widget_test_mac.mm",
    "test/x11_property_change_waiter.cc",
    "test/x11_property_change_waiter.h",
    "views_test_suite.cc",
    "views_test_suite.h",
  ]

  # External code should depend upon "test_support".
  visibility = [ "./*" ]

  configs += [ "//build/config:precompiled_headers" ]

  public_deps = [
    ":views",
  ]
  deps = [
    "//base",
    "//base/test:test_support",
    "//gpu/ipc/service",
    "//ipc:test_support",
    "//skia",
    "//testing/gtest",
    "//ui/base",
    "//ui/base:test_support",
    "//ui/base/ime",
    "//ui/compositor",
    "//ui/compositor:test_support",
    "//ui/events",
    "//ui/events:events_base",
    "//ui/events:test_support",
    "//ui/events/platform",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//ui/gl:test_support",
  ]

  sources += [
    "test/platform_test_helper.cc",
    "test/platform_test_helper.h",
    "test/platform_test_helper_cocoa.mm",
  ]

  if (use_aura) {
    sources += [
      "corewm/tooltip_controller_test_helper.cc",
      "corewm/tooltip_controller_test_helper.h",
      "test/desktop_test_views_delegate_aura.cc",
      "test/test_views_delegate_aura.cc",
      "test/views_test_helper_aura.cc",
      "test/views_test_helper_aura.h",
      "test/widget_test_aura.cc",
    ]
    deps += [
      "//ui/aura",
      "//ui/aura:test_support",
      "//ui/views/mus",
      "//ui/wm",
    ]
    if (use_x11 && !is_chromeos) {
      sources += [
        "test/desktop_screen_x11_test_api.cc",
        "test/desktop_screen_x11_test_api.h",
        "test/test_desktop_screen_x11.cc",
        "test/test_desktop_screen_x11.h",
        "test/ui_controls_factory_desktop_aurax11.cc",
        "test/ui_controls_factory_desktop_aurax11.h",
      ]
    }
  }
  if (use_x11) {
    deps += [ "//ui/gfx/x" ]
  }
  if (ozone_platform_x11) {
    deps += [ "//ui/base/x" ]
  }
  if (use_ozone || !use_x11) {
    sources -= [
      "test/x11_property_change_waiter.cc",
      "test/x11_property_change_waiter.h",
    ]
  }
}

static_library("test_support") {
  testonly = true
  public_deps = [
    ":test_support_internal",
  ]
  sources = [
    "test/native_widget_factory_desktop.cc",
  ]
}

# This target contains the unit tests that are shared between views_unittests
# and views_mus_unittests.
source_set("views_unittests_sources") {
  testonly = true
  sources = [
    "accessibility/native_view_accessibility_win_unittest.cc",
    "accessible_pane_view_unittest.cc",
    "animation/bounds_animator_unittest.cc",
    "animation/flood_fill_ink_drop_ripple_unittest.cc",
    "animation/ink_drop_highlight_unittest.cc",
    "animation/ink_drop_host_view_unittest.cc",
    "animation/ink_drop_impl_unittest.cc",
    "animation/ink_drop_ripple_unittest.cc",
    "animation/ink_drop_unittest.cc",
    "animation/square_ink_drop_ripple_unittest.cc",
    "border_unittest.cc",
    "bubble/bubble_border_unittest.cc",
    "bubble/bubble_dialog_delegate_unittest.cc",
    "bubble/bubble_frame_view_unittest.cc",
    "bubble/bubble_window_targeter_unittest.cc",
    "cocoa/bridged_native_widget_unittest.mm",
    "cocoa/cocoa_mouse_capture_unittest.mm",
    "cocoa/drag_drop_client_mac_unittest.mm",
    "controls/button/blue_button_unittest.cc",
    "controls/button/custom_button_unittest.cc",
    "controls/button/image_button_factory_unittest.cc",
    "controls/button/image_button_unittest.cc",
    "controls/button/label_button_unittest.cc",
    "controls/button/menu_button_unittest.cc",
    "controls/button/toggle_button_unittest.cc",
    "controls/combobox/combobox_unittest.cc",
    "controls/label_unittest.cc",
    "controls/menu/menu_controller_unittest.cc",
    "controls/menu/menu_item_view_unittest.cc",
    "controls/menu/menu_model_adapter_unittest.cc",
    "controls/menu/menu_runner_cocoa_unittest.mm",
    "controls/menu/menu_runner_unittest.cc",
    "controls/native/native_view_host_mac_unittest.mm",
    "controls/native/native_view_host_test_base.cc",
    "controls/native/native_view_host_test_base.h",
    "controls/native/native_view_host_unittest.cc",
    "controls/prefix_selector_unittest.cc",
    "controls/progress_bar_unittest.cc",
    "controls/resize_area_unittest.cc",
    "controls/scroll_view_unittest.cc",
    "controls/scrollbar/scrollbar_unittest.cc",
    "controls/slider_unittest.cc",
    "controls/styled_label_unittest.cc",
    "controls/tabbed_pane/tabbed_pane_accessibility_mac_unittest.mm",
    "controls/tabbed_pane/tabbed_pane_unittest.cc",
    "controls/table/table_utils_unittest.cc",
    "controls/table/table_view_unittest.cc",
    "controls/table/test_table_model.cc",
    "controls/table/test_table_model.h",
    "controls/textfield/textfield_model_unittest.cc",
    "controls/tree/tree_view_unittest.cc",
    "event_monitor_unittest.cc",
    "focus/focus_manager_unittest.cc",
    "focus/focus_traversal_unittest.cc",
    "layout/box_layout_unittest.cc",
    "layout/fill_layout_unittest.cc",
    "layout/grid_layout_unittest.cc",
    "rect_based_targeting_utils_unittest.cc",
    "test/widget_test_unittest.cc",
    "view_model_unittest.cc",
    "view_model_utils_unittest.cc",
    "view_targeter_unittest.cc",
    "view_unittest.cc",
    "view_unittest_mac.mm",
    "widget/native_widget_mac_accessibility_unittest.mm",
    "widget/native_widget_mac_unittest.mm",
    "widget/native_widget_unittest.cc",
    "widget/root_view_unittest.cc",
    "widget/widget_unittest.cc",
    "window/custom_frame_view_unittest.cc",
    "window/dialog_client_view_unittest.cc",
    "window/dialog_delegate_unittest.cc",
  ]

  configs += [ "//build/config:precompiled_headers" ]

  # Make all deps in this target public so both views_unittests and
  # views_mus_unittests will get them.
  public_deps = [
    ":test_support",
    "//base",
    "//base:i18n",
    "//base/test:test_support",
    "//cc",
    "//cc/paint",
    "//services/ui/public/interfaces",
    "//skia",
    "//testing/gtest",
    "//third_party/icu",
    "//ui/accessibility",
    "//ui/base",
    "//ui/base:test_support",
    "//ui/base/ime",
    "//ui/compositor:test_support",
    "//ui/events:dom_keycode_converter",
    "//ui/events:events_base",
    "//ui/events:test_support",
    "//ui/events/platform",
    "//ui/gfx:test_support",
    "//ui/gfx/geometry",
    "//ui/gl:test_support",
    "//ui/native_theme",
    "//ui/resources",
    "//ui/resources:ui_test_pak",
    "//ui/strings",
    "//ui/vector_icons",
    "//url",
  ]

  data_deps = [
    "//ui/resources:ui_test_pak_data",
  ]

  if (is_win) {
    public_deps += [
      "//build/win:default_exe_manifest",
      "//third_party/iaccessible2",
      "//third_party/wtl",
    ]
    libs = [
      "imm32.lib",
      "oleacc.lib",
      "comctl32.lib",
    ]
  }

  if (has_native_accessibility) {
    sources += [ "accessibility/native_view_accessibility_unittest.cc" ]
  }

  if (use_x11) {
    configs += [
      "//build/config/linux:x11",
      "//build/config/linux:xext",
    ]
    public_deps += [
      "//ui/events/devices",
      "//ui/events/platform/x11",
      "//ui/gfx/x",
    ]
  }

  if (use_aura) {
    sources += [
      "accessibility/ax_aura_obj_cache_unittest.cc",
      "controls/native/native_view_host_aura_unittest.cc",
      "touchui/touch_selection_menu_runner_views_unittest.cc",
      "view_unittest_aura.cc",
    ]
    public_deps += [
      "//ui/aura",
      "//ui/aura:test_support",
      "//ui/touch_selection",
      "//ui/wm",
    ]
  }

  if (is_mac) {
    # views_unittests not yet compiling on Mac. http://crbug.com/378134
    sources -= [
      "bubble/bubble_window_targeter_unittest.cc",
      "controls/native/native_view_host_unittest.cc",
    ]
    public_deps += [ "//ui/accelerated_widget_mac" ]
  }
}

test("views_unittests") {
  sources = [
    "run_all_unittests_main.cc",

    # EventGenerator doesn't work well with IME in mus so this must not be in
    # the shared unit test sources.
    # crbug.com/615033 crbug.com/548407
    "controls/textfield/textfield_unittest.cc",
  ]

  if (use_aura) {
    sources += [
      # These tests currently use AuraTestBase, but then try to use views
      # objects. Thus, when they are run in views_mus_unittests, they test the
      # local aura path instead of the remote mus path, so pull them
      # out. crbug.com/710939.
      #
      # Some of the tests need drag-drop support. crbug.com/614037
      "corewm/tooltip_controller_unittest.cc",
      "touchui/touch_selection_controller_impl_unittest.cc",
      "widget/native_widget_aura_unittest.cc",
      "widget/window_reorderer_unittest.cc",
    ]

    if (is_mac) {
      # views_unittests not yet compiling on Mac. http://crbug.com/378134
      sources -= [ "widget/window_reorderer_unittest.cc" ]
    }

    if (!is_chromeos) {
      sources += [
        "widget/desktop_aura/desktop_focus_rules_unittest.cc",
        "widget/desktop_aura/desktop_native_widget_aura_unittest.cc",
      ]
      if (use_x11) {
        sources += [
          "widget/desktop_aura/desktop_drag_drop_client_aurax11_unittest.cc",
          "widget/desktop_aura/desktop_screen_x11_unittest.cc",
          "widget/desktop_aura/desktop_window_tree_host_x11_unittest.cc",
        ]
      }
    }
  }

  if (!is_chromeos) {
    sources += [ "widget/desktop_widget_unittest.cc" ]
  }

  deps = [
    ":views_unittests_sources",
  ]
}

if (is_mac) {
  test("macviews_interactive_ui_tests") {
    sources = [
      "cocoa/bridged_native_widget_interactive_uitest.mm",
      "run_all_unittests_main.cc",
      "widget/native_widget_mac_interactive_uitest.mm",
    ]
    deps = [
      ":test_support",
      ":views",
      "//base",
      "//base/test:test_support",
      "//skia",
      "//testing/gtest",
      "//ui/base:test_support",
      "//ui/compositor",
      "//ui/events:test_support",
      "//ui/gl:test_support",
      "//ui/resources",
      "//ui/resources:ui_test_pak",
      "//ui/strings",
    ]
  }
}
