# 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/jumbo.gni")
import("//build/config/ui.gni")

jumbo_component("views_content_client") {
  testonly = true
  sources = [
    "views_content_browser_client.cc",
    "views_content_browser_client.h",
    "views_content_client.cc",
    "views_content_client.h",
    "views_content_client_export.h",
    "views_content_client_main_parts.cc",
    "views_content_client_main_parts.h",
    "views_content_client_main_parts_chromeos.cc",
    "views_content_client_main_parts_mac.mm",
    "views_content_main_delegate.cc",
    "views_content_main_delegate.h",
  ]

  defines = [ "VIEWS_CONTENT_CLIENT_IMPLEMENTATION" ]

  deps = [
    "//base",
    "//base:i18n",
    "//content",
    "//content/shell:content_shell_lib",
    "//third_party/icu",
    "//ui/base",
    "//ui/display",
    "//ui/events",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//ui/resources",
    "//ui/resources:ui_test_pak",
    "//ui/resources:ui_test_pak_data_200_percent",
    "//ui/views",
    "//ui/views:test_support",
  ]

  if (use_aura) {
    sources += [
      "views_content_client_main_parts_aura.cc",
      "views_content_client_main_parts_aura.h",
    ]

    if (!is_chromeos) {
      sources += [ "views_content_client_main_parts_desktop_aura.cc" ]
    }

    deps += [
      "//ui/aura",
      "//ui/wm",
    ]
  }

  if (is_chromeos) {
    deps += [
      "//ui/aura:test_support",
      "//ui/wm:test_support",
    ]
  }
}
