# 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/ui.gni")
import("//testing/test.gni")

assert(is_chromeos)

component("app_list") {
  sources = [
    "app_list_export.h",
    "app_list_metrics.cc",
    "app_list_metrics.h",
    "app_list_util.cc",
    "app_list_util.h",
    "app_list_view_delegate.h",
    "paged_view_structure.cc",
    "paged_view_structure.h",
    "pagination_controller.cc",
    "pagination_controller.h",
    "pagination_model.cc",
    "pagination_model.h",
    "pagination_model_observer.h",
    "views/app_list_drag_and_drop_host.h",
    "views/app_list_folder_view.cc",
    "views/app_list_folder_view.h",
    "views/app_list_item_view.cc",
    "views/app_list_item_view.h",
    "views/app_list_main_view.cc",
    "views/app_list_main_view.h",
    "views/app_list_menu_model_adapter.cc",
    "views/app_list_menu_model_adapter.h",
    "views/app_list_page.cc",
    "views/app_list_page.h",
    "views/app_list_view.cc",
    "views/app_list_view.h",
    "views/apps_container_view.cc",
    "views/apps_container_view.h",
    "views/apps_grid_view.cc",
    "views/apps_grid_view.h",
    "views/apps_grid_view_folder_delegate.h",
    "views/contents_view.cc",
    "views/contents_view.h",
    "views/expand_arrow_view.cc",
    "views/expand_arrow_view.h",
    "views/folder_background_view.cc",
    "views/folder_background_view.h",
    "views/folder_header_view.cc",
    "views/folder_header_view.h",
    "views/folder_header_view_delegate.h",
    "views/horizontal_page.cc",
    "views/horizontal_page.h",
    "views/horizontal_page_container.cc",
    "views/horizontal_page_container.h",
    "views/image_shadow_animator.cc",
    "views/image_shadow_animator.h",
    "views/indicator_chip_view.cc",
    "views/indicator_chip_view.h",
    "views/page_switcher.cc",
    "views/page_switcher.h",
    "views/pulsing_block_view.cc",
    "views/pulsing_block_view.h",
    "views/search_box_view.cc",
    "views/search_box_view.h",
    "views/search_result_actions_view.cc",
    "views/search_result_actions_view.h",
    "views/search_result_actions_view_delegate.h",
    "views/search_result_answer_card_view.cc",
    "views/search_result_answer_card_view.h",
    "views/search_result_base_view.cc",
    "views/search_result_base_view.h",
    "views/search_result_container_view.cc",
    "views/search_result_container_view.h",
    "views/search_result_list_view.cc",
    "views/search_result_list_view.h",
    "views/search_result_page_view.cc",
    "views/search_result_page_view.h",
    "views/search_result_suggestion_chip_view.cc",
    "views/search_result_suggestion_chip_view.h",
    "views/search_result_tile_item_list_view.cc",
    "views/search_result_tile_item_list_view.h",
    "views/search_result_tile_item_view.cc",
    "views/search_result_tile_item_view.h",
    "views/search_result_view.cc",
    "views/search_result_view.h",
    "views/suggestion_chip_container_view.cc",
    "views/suggestion_chip_container_view.h",
    "views/suggestion_chip_view.cc",
    "views/suggestion_chip_view.h",
    "views/suggestions_container_view.cc",
    "views/suggestions_container_view.h",
    "views/top_icon_animation_view.cc",
    "views/top_icon_animation_view.h",
  ]

  defines = [ "APP_LIST_IMPLEMENTATION" ]

  deps = [
    "//ash/app_list/resources",
    "//ash/app_menu",
    "//ash/public/cpp/app_list/vector_icons",
    "//base",
    "//base:i18n",
    "//base/third_party/dynamic_annotations",
    "//cc/paint",
    "//chromeos:chromeos",
    "//components/keyed_service/core",
    "//components/sync",
    "//mojo/public/cpp/bindings",
    "//services/ui/public/cpp",
    "//services/ui/public/interfaces",
    "//skia",
    "//third_party/icu",
    "//ui/accessibility",
    "//ui/aura",
    "//ui/base",
    "//ui/base/ime",
    "//ui/chromeos/search_box",
    "//ui/compositor",
    "//ui/display",
    "//ui/events",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//ui/keyboard/",
    "//ui/resources",
    "//ui/strings",
    "//ui/views",
    "//ui/views/mus/remote_view:remote_view_host",
    "//ui/wm",
  ]

  # TODO(hejq): Remove this once app_list is migrated. http://crbug.com/733662
  public_deps = [
    "//ash/app_list/model:app_list_model",
    "//ash/app_list/model:search_model",
    "//ash/public/cpp:cpp",
  ]
}

static_library("test_support") {
  sources = [
    "test/app_list_test_model.cc",
    "test/app_list_test_model.h",
    "test/app_list_test_view_delegate.cc",
    "test/app_list_test_view_delegate.h",
    "test/test_search_result.cc",
    "test/test_search_result.h",
    "views/test/apps_grid_view_test_api.cc",
    "views/test/apps_grid_view_test_api.h",
  ]

  deps = [
    ":app_list",
    "//base",
    "//ui/base:base",
    "//ui/events",
    "//ui/gfx",
    "//ui/gfx/geometry",
  ]
}

executable("app_list_demo") {
  testonly = true

  sources = [
    "demo/app_list_demo_views.cc",
  ]

  deps = [
    ":app_list",
    ":test_support",
    "//base",
    "//build/win:default_exe_manifest",
    "//content",
    "//content/public/browser",
    "//skia",
    "//ui/base",
    "//ui/events",
    "//ui/resources",
    "//ui/resources:ui_test_pak",
    "//ui/views",
    "//ui/views_content_client",
    "//url",
  ]
}

test("app_list_unittests") {
  sources = [
    "folder_image_unittest.cc",
    "pagination_model_unittest.cc",
    "test/run_all_unittests.cc",
    "views/app_list_main_view_unittest.cc",
    "views/app_list_menu_model_adapter_unittest.cc",
    "views/app_list_view_unittest.cc",
    "views/apps_grid_view_unittest.cc",
    "views/folder_header_view_unittest.cc",
    "views/image_shadow_animator_unittest.cc",
    "views/search_box_view_unittest.cc",
    "views/search_result_answer_card_view_unittest.cc",
    "views/search_result_list_view_unittest.cc",
    "views/search_result_page_view_unittest.cc",
    "views/search_result_tile_item_list_view_unittest.cc",
  ]

  configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]

  deps = [
    ":app_list",
    ":test_support",
    "//ash/public/cpp/app_list/vector_icons",
    "//base",
    "//base/test:test_support",
    "//mojo/core/embedder",
    "//skia",
    "//testing/gtest",
    "//ui/accessibility",
    "//ui/base",
    "//ui/chromeos/search_box",
    "//ui/compositor",
    "//ui/events:test_support",
    "//ui/gfx:test_support",
    "//ui/gl:test_support",
    "//ui/keyboard",
    "//ui/resources",
    "//ui/views",
    "//ui/views:test_support",
  ]

  data_deps = [
    "//third_party/mesa:osmesa",
    "//ui/resources:ui_test_pak_data",
  ]
}
