# 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.

config("public_config") {
  include_dirs = [ "//chromecast/public" ]
}

source_set("public") {
  sources = [
    "avsettings.h",
    "cast_egl_platform.h",
    "cast_egl_platform_shlib.h",
    "cast_media_shlib.h",
    "cast_sys_info.h",
    "cast_sys_info_shlib.h",
    "chromecast_export.h",
    "graphics_properties_shlib.h",
    "graphics_types.h",
    "osd_plane.h",
    "osd_plane_shlib.h",
    "osd_surface.h",
    "reboot_shlib.h",
    "task_runner.h",
    "video_plane.h",
    "volume_control.h",
  ]

  public_configs = [ ":public_config" ]
}

if (is_android) {
  import("//build/config/android/rules.gni")

  java_cpp_enum("java_enums") {
    sources = [
      "avsettings.h",
    ]
  }

  java_cpp_enum("java_enums_volume_control") {
    sources = [
      "volume_control.h",
    ]
  }
}
