# 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")

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",
  ]

  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/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",
    ]
  }
}
