# 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("//mojo/public/tools/bindings/mojom.gni")

# C++ headers and sources that can be used outside ash.
component("cpp") {
  sources = [
    "accelerators.cc",
    "accelerators.h",
    "accessibility_controller.cc",
    "accessibility_controller.h",
    "accessibility_controller_client.h",
    "accessibility_controller_enums.h",
    "accessibility_event_rewriter_delegate.h",
    "accessibility_focus_ring_controller.cc",
    "accessibility_focus_ring_controller.h",
    "accessibility_focus_ring_info.cc",
    "accessibility_focus_ring_info.h",
    "ambient/ambient_backend_controller.cc",
    "ambient/ambient_backend_controller.h",
    "ambient/ambient_client.cc",
    "ambient/ambient_client.h",
    "ambient/ambient_metrics.cc",
    "ambient/ambient_metrics.h",
    "ambient/ambient_prefs.cc",
    "ambient/ambient_prefs.h",
    "ambient/ambient_ui_model.cc",
    "ambient/ambient_ui_model.h",
    "ambient/common/ambient_settings.cc",
    "ambient/common/ambient_settings.h",
    "ambient/fake_ambient_backend_controller_impl.cc",
    "ambient/fake_ambient_backend_controller_impl.h",
    "android_intent_helper.cc",
    "android_intent_helper.h",
    "app_list/app_list_client.h",
    "app_list/app_list_color_provider.cc",
    "app_list/app_list_color_provider.h",
    "app_list/app_list_config.cc",
    "app_list/app_list_config.h",
    "app_list/app_list_config_provider.cc",
    "app_list/app_list_config_provider.h",
    "app_list/app_list_controller.cc",
    "app_list/app_list_controller.h",
    "app_list/app_list_controller_observer.h",
    "app_list/app_list_features.cc",
    "app_list/app_list_features.h",
    "app_list/app_list_metrics.cc",
    "app_list/app_list_metrics.h",
    "app_list/app_list_notifier.h",
    "app_list/app_list_switches.cc",
    "app_list/app_list_switches.h",
    "app_list/app_list_types.cc",
    "app_list/app_list_types.h",
    "app_list/internal_app_id_constants.h",
    "app_menu_constants.h",
    "app_types_util.cc",
    "app_types_util.h",
    "arc_app_id_provider.cc",
    "arc_app_id_provider.h",
    "arc_resize_lock_type.h",
    "ash_constants.h",
    "ash_public_export.h",
    "ash_typography.cc",
    "ash_typography.h",
    "ash_view_ids.h",
    "assistant/assistant_interface_binder.cc",
    "assistant/assistant_interface_binder.h",
    "assistant/assistant_setup.cc",
    "assistant/assistant_setup.h",
    "assistant/assistant_state.cc",
    "assistant/assistant_state.h",
    "assistant/assistant_state_base.cc",
    "assistant/assistant_state_base.h",
    "assistant/assistant_web_view.cc",
    "assistant/assistant_web_view.h",
    "assistant/assistant_web_view_factory.cc",
    "assistant/assistant_web_view_factory.h",
    "assistant/controller/assistant_alarm_timer_controller.cc",
    "assistant/controller/assistant_alarm_timer_controller.h",
    "assistant/controller/assistant_controller.cc",
    "assistant/controller/assistant_controller.h",
    "assistant/controller/assistant_controller_observer.h",
    "assistant/controller/assistant_interaction_controller.cc",
    "assistant/controller/assistant_interaction_controller.h",
    "assistant/controller/assistant_notification_controller.cc",
    "assistant/controller/assistant_notification_controller.h",
    "assistant/controller/assistant_screen_context_controller.cc",
    "assistant/controller/assistant_screen_context_controller.h",
    "assistant/controller/assistant_suggestions_controller.cc",
    "assistant/controller/assistant_suggestions_controller.h",
    "assistant/controller/assistant_ui_controller.cc",
    "assistant/controller/assistant_ui_controller.h",
    "assistant/conversation_starter.cc",
    "assistant/conversation_starter.h",
    "assistant/conversation_starters_client.cc",
    "assistant/conversation_starters_client.h",
    "back_gesture_contextual_nudge_controller.h",
    "back_gesture_contextual_nudge_delegate.h",
    "cast_config_controller.cc",
    "cast_config_controller.h",
    "child_accounts/parent_access_controller.cc",
    "child_accounts/parent_access_controller.h",
    "clipboard_history_controller.cc",
    "clipboard_history_controller.h",
    "clipboard_image_model_factory.cc",
    "clipboard_image_model_factory.h",
    "desk_template.cc",
    "desk_template.h",
    "desks_helper.cc",
    "desks_helper.h",
    "esim_manager.cc",
    "esim_manager.h",
    "file_icon_util.cc",
    "file_icon_util.h",
    "fps_counter.cc",
    "fps_counter.h",
    "gesture_action_type.h",
    "holding_space/holding_space_client.h",
    "holding_space/holding_space_constants.h",
    "holding_space/holding_space_controller.cc",
    "holding_space/holding_space_controller.h",
    "holding_space/holding_space_controller_observer.h",
    "holding_space/holding_space_image.cc",
    "holding_space/holding_space_image.h",
    "holding_space/holding_space_item.cc",
    "holding_space/holding_space_item.h",
    "holding_space/holding_space_metrics.cc",
    "holding_space/holding_space_metrics.h",
    "holding_space/holding_space_model.cc",
    "holding_space/holding_space_model.h",
    "holding_space/holding_space_model_observer.h",
    "holding_space/holding_space_prefs.cc",
    "holding_space/holding_space_prefs.h",
    "holding_space/holding_space_progress.cc",
    "holding_space/holding_space_progress.h",
    "holding_space/holding_space_util.cc",
    "holding_space/holding_space_util.h",
    "image_downloader.cc",
    "image_downloader.h",
    "image_util.cc",
    "image_util.h",
    "ime_controller.cc",
    "ime_controller.h",
    "ime_controller_client.h",
    "ime_info.cc",
    "ime_info.h",
    "in_session_auth_dialog_client.h",
    "in_session_auth_dialog_controller.cc",
    "in_session_auth_dialog_controller.h",
    "keyboard/arc/arc_input_method_bounds_tracker.cc",
    "keyboard/arc/arc_input_method_bounds_tracker.h",
    "keyboard/keyboard_config.h",
    "keyboard/keyboard_controller.cc",
    "keyboard/keyboard_controller.h",
    "keyboard/keyboard_controller_observer.h",
    "keyboard/keyboard_switches.cc",
    "keyboard/keyboard_switches.h",
    "keyboard/keyboard_types.h",
    "keyboard_shortcut_viewer.h",
    "kiosk_app_menu.cc",
    "kiosk_app_menu.h",
    "locale_update_controller.cc",
    "locale_update_controller.h",
    "lock_screen_widget_factory.cc",
    "lock_screen_widget_factory.h",
    "login_accelerators.cc",
    "login_accelerators.h",
    "login_screen.cc",
    "login_screen.h",
    "login_screen_client.h",
    "login_screen_model.cc",
    "login_screen_model.h",
    "login_screen_test_api.h",
    "login_types.cc",
    "login_types.h",
    "media_client.h",
    "media_controller.cc",
    "media_controller.h",
    "media_notification_provider.cc",
    "media_notification_provider.h",
    "media_notification_provider_observer.h",
    "message_center/arc_notification_constants.h",
    "message_center/arc_notification_manager_base.cc",
    "message_center/arc_notification_manager_base.h",
    "message_center/arc_notification_manager_delegate.h",
    "message_center/arc_notifications_host_initializer.cc",
    "message_center/arc_notifications_host_initializer.h",
    "message_center_ash.cc",
    "message_center_ash.h",
    "metrics_util.cc",
    "metrics_util.h",
    "microphone_mute_notification_delegate.cc",
    "microphone_mute_notification_delegate.h",
    "move_to_desks_menu_delegate.cc",
    "move_to_desks_menu_delegate.h",
    "nearby_share_controller.h",
    "nearby_share_delegate.h",
    "network_config_service.cc",
    "network_config_service.h",
    "network_icon_image_source.cc",
    "network_icon_image_source.h",
    "new_window_delegate.cc",
    "new_window_delegate.h",
    "night_light_controller.cc",
    "night_light_controller.h",
    "note_taking_client.cc",
    "note_taking_client.h",
    "notification_utils.cc",
    "notification_utils.h",
    "notifier_metadata.cc",
    "notifier_metadata.h",
    "notifier_settings_controller.cc",
    "notifier_settings_controller.h",
    "notifier_settings_observer.h",
    "pagination/pagination_controller.cc",
    "pagination/pagination_controller.h",
    "pagination/pagination_model.cc",
    "pagination/pagination_model.h",
    "pagination/pagination_model_observer.h",
    "power_utils.cc",
    "power_utils.h",
    "presentation_time_recorder.cc",
    "presentation_time_recorder.h",
    "privacy_screen_dlp_helper.cc",
    "privacy_screen_dlp_helper.h",
    "projector/projector_client.h",
    "projector/projector_controller.cc",
    "projector/projector_controller.h",
    "projector/projector_session.cc",
    "projector/projector_session.h",
    "quick_answers/controller/quick_answers_browser_client.cc",
    "quick_answers/controller/quick_answers_browser_client.h",
    "quick_answers/controller/quick_answers_controller.cc",
    "quick_answers/controller/quick_answers_controller.h",
    "quick_answers/quick_answers_state.cc",
    "quick_answers/quick_answers_state.h",
    "resize_shadow_type.h",
    "rounded_corner_utils.cc",
    "rounded_corner_utils.h",
    "rounded_image_view.cc",
    "rounded_image_view.h",
    "scale_utility.cc",
    "scale_utility.h",
    "scoped_clipboard_history_pause.h",
    "scoped_guest_button_blocker.h",
    "scoped_singleton_resetter_for_test.h",
    "screen_backlight.cc",
    "screen_backlight.h",
    "screen_backlight_observer.h",
    "screen_backlight_type.h",
    "select_to_speak_event_handler_delegate.h",
    "session/session_activation_observer.h",
    "session/session_controller.cc",
    "session/session_controller.h",
    "session/session_controller_client.h",
    "session/session_observer.cc",
    "session/session_observer.h",
    "session/session_types.cc",
    "session/session_types.h",
    "session/user_info.cc",
    "session/user_info.h",
    "shelf_item.cc",
    "shelf_item.h",
    "shelf_item_delegate.cc",
    "shelf_item_delegate.h",
    "shelf_model.cc",
    "shelf_model.h",
    "shelf_model_observer.h",
    "shelf_prefs.cc",
    "shelf_prefs.h",
    "shelf_types.cc",
    "shelf_types.h",
    "shelf_ui_info.cc",
    "shelf_ui_info.h",
    "shell_window_ids.cc",
    "shell_window_ids.h",
    "shutdown_controller.cc",
    "shutdown_controller.h",
    "simple_geo_position.h",
    "style/color_mode_observer.h",
    "style/color_provider.cc",
    "style/color_provider.h",
    "stylus_utils.cc",
    "stylus_utils.h",
    "system_tray.cc",
    "system_tray.h",
    "system_tray_client.h",
    "system_tray_observer.h",
    "tab_cluster/tab_cluster_ui_controller.cc",
    "tab_cluster/tab_cluster_ui_controller.h",
    "tab_cluster/tab_cluster_ui_item.cc",
    "tab_cluster/tab_cluster_ui_item.h",
    "tablet_mode.cc",
    "tablet_mode.h",
    "tablet_mode_observer.h",
    "toast_data.cc",
    "toast_data.h",
    "toast_manager.cc",
    "toast_manager.h",
    "update_types.h",
    "view_shadow.cc",
    "view_shadow.h",
    "views_text_services_context_menu_impl.cc",
    "views_text_services_context_menu_impl.h",
    "vm_camera_mic_constants.cc",
    "vm_camera_mic_constants.h",
    "wallpaper/online_wallpaper_params.cc",
    "wallpaper/online_wallpaper_params.h",
    "wallpaper/wallpaper_controller.cc",
    "wallpaper/wallpaper_controller.h",
    "wallpaper/wallpaper_controller_client.h",
    "wallpaper/wallpaper_controller_observer.cc",
    "wallpaper/wallpaper_controller_observer.h",
    "wallpaper/wallpaper_info.cc",
    "wallpaper/wallpaper_info.h",
    "wallpaper/wallpaper_types.h",
    "webauthn_request_registrar.cc",
    "webauthn_request_registrar.h",
    "window_animation_types.h",
    "window_backdrop.cc",
    "window_backdrop.h",
    "window_properties.cc",
    "window_properties.h",
  ]

  defines = [ "ASH_PUBLIC_IMPLEMENTATION" ]

  assert_no_deps = [
    "//ash/public/cpp/external_arc",
    "//components/arc",
    "//components/exo",
    "//components/soda",
  ]

  deps = [
    "//ash/constants",
    "//ash/public/cpp/ambient/proto",
    "//base/util/values:values_util",
    "//chromeos/components/quick_answers/public/cpp:prefs",
    "//chromeos/dbus/power:power_manager_proto",
    "//chromeos/services/assistant/public/cpp",
    "//chromeos/services/cellular_setup:in_process_esim_manager",
    "//chromeos/services/network_config:in_process_instance",
    "//chromeos/strings:strings_grit",
    "//chromeos/ui/base",
    "//chromeos/ui/frame",
    "//chromeos/ui/vector_icons",
    "//components/language/core/browser:browser",
    "//components/pref_registry",
    "//components/prefs",
    "//components/sync/model",
    "//mojo/public/cpp/bindings",
    "//net/traffic_annotation",
    "//services/network/public/cpp:cpp",
    "//skia/public/mojom",
    "//ui/aura",
    "//ui/chromeos/strings",
    "//ui/compositor_extra",
    "//ui/display",
    "//ui/events/devices",
    "//ui/message_center/public/cpp",
    "//ui/views",
    "//ui/wm",
    "//ui/wm/public",
  ]

  public_deps = [
    "//ash/public/mojom",
    "//base",
    "//chromeos/components/security_token_pin",
    "//chromeos/crosapi/mojom",
    "//chromeos/services/assistant/public/mojom",
    "//chromeos/services/cellular_setup/public/mojom",
    "//chromeos/services/network_config/public/mojom",
    "//components/arc/mojom:notifications",
    "//components/full_restore",
    "//components/session_manager:base",
    "//components/user_manager",
    "//ui/base/ime/chromeos:ime_types",
    "//ui/gfx",
  ]

  output_name = "ash_public_cpp"
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "ambient/ambient_metrics_unittest.cc",
    "android_intent_helper_unittest.cc",
    "app_list/app_list_config_provider_unittest.cc",
    "file_icon_util_unittest.cc",
    "holding_space/holding_space_image_unittest.cc",
    "holding_space/holding_space_item_unittest.cc",
    "holding_space/holding_space_model_unittest.cc",
    "holding_space/holding_space_progress_unittest.cc",
    "metrics_util_unittest.cc",
    "pagination/pagination_model_unittest.cc",
    "power_utils_unittest.cc",
    "shelf_model_unittest.cc",
    "view_shadow_unittest.cc",
  ]

  deps = [
    ":cpp",
    "//base",
    "//base/test:test_support",
    "//chromeos/ui/vector_icons",
    "//mojo/public/cpp/bindings",
    "//testing/gtest",
    "//ui/aura:test_support",
    "//ui/compositor_extra",
    "//ui/gfx:test_support",
    "//ui/views",
    "//ui/views:test_support",
  ]
}

source_set("test_support") {
  testonly = true
  sources = [
    "test/test_app_list_color_provider.cc",
    "test/test_app_list_color_provider.h",
    "test/test_image_downloader.cc",
    "test/test_image_downloader.h",
    "test/test_keyboard_controller_observer.cc",
    "test/test_keyboard_controller_observer.h",
    "test/test_nearby_share_delegate.cc",
    "test/test_nearby_share_delegate.h",
    "test/test_new_window_delegate.cc",
    "test/test_new_window_delegate.h",
    "test/test_system_tray_client.cc",
    "test/test_system_tray_client.h",
  ]

  deps = [
    ":cpp",
    "//base",
    "//services/device/public/cpp:test_support",
    "//services/network/public/cpp:cpp",
    "//ui/aura",
    "//ui/aura:test_support",
    "//ui/gfx",
    "//ui/gfx:test_support",
    "//ui/views",
  ]
}
