# Copyright 2015 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("//chromecast/chromecast.gni")

source_set("common") {
  sources = [
    "cast_content_client.cc",
    "cast_content_client.h",
    "cast_resource_delegate.cc",
    "cast_resource_delegate.h",
    "global_descriptors.h",
    "platform_client_auth.h",
  ]

  if (chromecast_branding == "public") {
    sources += [ "platform_client_auth_simple.cc" ]
  }

  deps = [
    "//base",
    "//chromecast/base",
    "//chromecast/base:cast_version",
    "//chromecast/common/media",
    "//content/public/common",
    "//ui/base",
    "//ui/gfx",
    "//url:url",
  ]
}
