# 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("renderer") {
  sources = [
    "cast_content_renderer_client.cc",
    "cast_content_renderer_client.h",
    "cast_media_load_deferrer.cc",
    "cast_media_load_deferrer.h",
    "cast_render_process_observer.cc",
    "cast_render_process_observer.h",
    "key_systems_cast.cc",
    "key_systems_cast.h",
  ]

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

  if (!is_android) {
    public_deps = [
      "//chromecast/renderer/media",
    ]
  }

  deps = [
    "//base",
    "//chromecast/base",
    "//chromecast/crash",
    "//chromecast/common/media",
    "//chromecast/media",
    "//components/cdm/renderer",
    "//components/network_hints/renderer",
    "//content/public/common",
    "//content/public/renderer",
    "//crypto",
    "//ipc",
    "//media",
    "//third_party/widevine/cdm:version_h",
  ]
}
