summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chromecast/BUILD.gn87
-rw-r--r--chromecast/app/BUILD.gn98
-rw-r--r--chromecast/browser/BUILD.gn164
-rw-r--r--chromecast/browser/media/BUILD.gn32
-rw-r--r--chromecast/build/args.gn16
-rw-r--r--chromecast/chromecast.gni1
-rw-r--r--chromecast/common/BUILD.gn7
-rw-r--r--chromecast/common/media/BUILD.gn30
-rw-r--r--chromecast/graphics/BUILD.gn16
-rw-r--r--chromecast/renderer/BUILD.gn44
-rw-r--r--chromecast/renderer/media/BUILD.gn31
11 files changed, 522 insertions, 4 deletions
diff --git a/chromecast/BUILD.gn b/chromecast/BUILD.gn
index e5f3b89..feb33a5 100644
--- a/chromecast/BUILD.gn
+++ b/chromecast/BUILD.gn
@@ -3,6 +3,11 @@
# found in the LICENSE file.
import("//chromecast/chromecast.gni")
+import("//build/config/features.gni")
+import("//build/config/ui.gni")
+import("//testing/test.gni")
+import("//tools/grit/repack.gni")
+import("//ui/ozone/ozone.gni")
config("config") {
defines = []
@@ -25,9 +30,89 @@ group("chromecast_unittests") {
testonly = true
deps = [
- "//chromecast/app:cast_shell_unittests",
+ # TODO(slan): Get this target building and comment it in.
+ # "//chromecast/app:cast_shell_unittests",
"//chromecast/base:cast_base_unittests",
"//chromecast/crash:cast_crash_unittests",
"//chromecast/media:cast_media_unittests",
]
}
+
+source_set("cast_shell_common") {
+ deps = [
+ # TODO(slan): add ":cast_locales_pak" (b/22959691)
+ ":cast_shell_pak",
+ "//chromecast/app",
+ "//chromecast/browser",
+ "//chromecast/common",
+ "//chromecast/common/media",
+ "//chromecast/renderer",
+ ]
+}
+
+source_set("cast_shell_media") {
+ deps = [
+ "//chromecast/browser/media",
+ "//chromecast/common/media",
+ "//chromecast/renderer/media",
+ ]
+}
+
+executable("cast_shell") {
+ sources = [
+ "app/cast_main.cc",
+ ]
+
+ deps = [
+ ":cast_shell_common",
+ ":cast_shell_media",
+ "//chromecast/app",
+ "//content/public/app:both",
+ ]
+
+ if (ozone_platform_egltest) {
+ deps += [ "//ui/ozone/platform/egltest:eglplatform_shim_x11" ]
+ }
+}
+
+repack("cast_shell_pak") {
+ sources = [
+ "$root_gen_dir/blink/public/resources/blink_image_resources_100_percent.pak",
+ "$root_gen_dir/blink/public/resources/blink_resources.pak",
+ "$root_gen_dir/chromecast/app/shell_resources.pak",
+ "$root_gen_dir/content/app/resources/content_resources_100_percent.pak",
+ "$root_gen_dir/content/app/strings/content_strings_en-US.pak",
+ "$root_gen_dir/content/content_resources.pak",
+ "$root_gen_dir/net/net_resources.pak",
+ "$root_gen_dir/ui/resources/ui_resources_100_percent.pak",
+ "$root_gen_dir/ui/resources/webui_resources.pak",
+ "$root_gen_dir/ui/strings/app_locale_settings_en-US.pak",
+ "$root_gen_dir/ui/strings/ui_strings_en-US.pak",
+ ]
+
+ if (chromecast_branding != "public" && use_chromecast_webui) {
+ sources += [
+ # TODO(slan): Update these paths to be accurate for internal builds.
+ ]
+ }
+
+ output = "$root_out_dir/assets/cast_shell.pak"
+
+ deps = [
+ "//chromecast/app:resources",
+ "//content:resources",
+ "//content/app/resources",
+ "//content/app/strings",
+ "//net:net_resources",
+ "//third_party/WebKit/public:resources",
+ "//third_party/WebKit/public:image_resources_grit",
+ "//ui/resources",
+ "//ui/strings",
+ ]
+
+ if (chromecast_branding != "public" && use_chromecast_webui) {
+ deps += [
+ # TODO(slan): Update these paths to be accurate for internal builds.
+ ]
+ }
+}
diff --git a/chromecast/app/BUILD.gn b/chromecast/app/BUILD.gn
index 6515e11..d1a69e2 100644
--- a/chromecast/app/BUILD.gn
+++ b/chromecast/app/BUILD.gn
@@ -3,6 +3,28 @@
# found in the LICENSE file.
import("//testing/test.gni")
+import("//tools/grit/grit_rule.gni")
+
+source_set("app") {
+ sources = [
+ "cast_main_delegate.cc",
+ "cast_main_delegate.h",
+ ]
+
+ deps = [
+ ":cast_crash_client",
+ "//base",
+ "//chromecast/base",
+ "//chromecast/browser",
+ "//chromecast/common",
+ "//chromecast/renderer",
+ "//components/crash/app:lib",
+ "//content/public/app:both",
+ "//content/public/browser",
+ "//content/public/common",
+ "//ui/base",
+ ]
+}
source_set("cast_crash_client") {
sources = [
@@ -40,3 +62,79 @@ test("cast_shell_unittests") {
"//testing/gtest",
]
}
+
+grit("resources") {
+ source = "//chromecast/app/resources/shell_resources.grd"
+
+ resource_ids = "//chromecast/app/resources/resource_ids"
+
+ outputs = [
+ "grit/shell_resources.h",
+ "shell_resources.pak",
+ "shell_resources.rc",
+ ]
+}
+
+grit("chromecast_settings") {
+ source = "//chromecast/app/resources/chromecast_settings.grd"
+
+ resource_ids = "//chromecast/app/resources/resource_ids"
+
+ outputs = [
+ "grit/chromecast_settings.h",
+ "chromecast_settings_am.pak",
+ "chromecast_settings_ar.pak",
+ "chromecast_settings_bg.pak",
+ "chromecast_settings_bn.pak",
+ "chromecast_settings_ca.pak",
+ "chromecast_settings_cs.pak",
+ "chromecast_settings_da.pak",
+ "chromecast_settings_de.pak",
+ "chromecast_settings_el.pak",
+ "chromecast_settings_en-GB.pak",
+ "chromecast_settings_en-US.pak",
+ "chromecast_settings_es.pak",
+ "chromecast_settings_es-419.pak",
+ "chromecast_settings_et.pak",
+ "chromecast_settings_fa.pak",
+ "chromecast_settings_fake-bidi.pak",
+ "chromecast_settings_fi.pak",
+ "chromecast_settings_fil.pak",
+ "chromecast_settings_fr.pak",
+ "chromecast_settings_gu.pak",
+ "chromecast_settings_he.pak",
+ "chromecast_settings_hi.pak",
+ "chromecast_settings_hr.pak",
+ "chromecast_settings_hu.pak",
+ "chromecast_settings_id.pak",
+ "chromecast_settings_it.pak",
+ "chromecast_settings_ja.pak",
+ "chromecast_settings_kn.pak",
+ "chromecast_settings_ko.pak",
+ "chromecast_settings_lt.pak",
+ "chromecast_settings_lv.pak",
+ "chromecast_settings_ml.pak",
+ "chromecast_settings_mr.pak",
+ "chromecast_settings_ms.pak",
+ "chromecast_settings_nl.pak",
+ "chromecast_settings_nb.pak",
+ "chromecast_settings_pl.pak",
+ "chromecast_settings_pt-BR.pak",
+ "chromecast_settings_pt-PT.pak",
+ "chromecast_settings_ro.pak",
+ "chromecast_settings_ru.pak",
+ "chromecast_settings_sk.pak",
+ "chromecast_settings_sl.pak",
+ "chromecast_settings_sr.pak",
+ "chromecast_settings_sv.pak",
+ "chromecast_settings_sw.pak",
+ "chromecast_settings_ta.pak",
+ "chromecast_settings_te.pak",
+ "chromecast_settings_th.pak",
+ "chromecast_settings_tr.pak",
+ "chromecast_settings_uk.pak",
+ "chromecast_settings_vi.pak",
+ "chromecast_settings_zh-CN.pak",
+ "chromecast_settings_zh-TW.pak",
+ ]
+}
diff --git a/chromecast/browser/BUILD.gn b/chromecast/browser/BUILD.gn
new file mode 100644
index 0000000..c6236a4d
--- /dev/null
+++ b/chromecast/browser/BUILD.gn
@@ -0,0 +1,164 @@
+# 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")
+import("//testing/test.gni")
+
+source_set("browser") {
+ sources = [
+ "cast_browser_context.cc",
+ "cast_browser_context.h",
+ "cast_browser_main_parts.cc",
+ "cast_browser_main_parts.h",
+ "cast_browser_process.cc",
+ "cast_browser_process.h",
+ "cast_content_browser_client.cc",
+ "cast_content_browser_client.h",
+ "cast_content_window.cc",
+ "cast_content_window.h",
+ "cast_download_manager_delegate.cc",
+ "cast_download_manager_delegate.h",
+ "cast_http_user_agent_settings.cc",
+ "cast_http_user_agent_settings.h",
+ "cast_net_log.cc",
+ "cast_net_log.h",
+ "cast_network_delegate.cc",
+ "cast_network_delegate.h",
+ "cast_permission_manager.cc",
+ "cast_permission_manager.h",
+ "cast_quota_permission_context.cc",
+ "cast_quota_permission_context.h",
+ "cast_resource_dispatcher_host_delegate.cc",
+ "cast_resource_dispatcher_host_delegate.h",
+ "devtools/cast_dev_tools_delegate.cc",
+ "devtools/cast_dev_tools_delegate.h",
+ "devtools/remote_debugging_server.cc",
+ "devtools/remote_debugging_server.h",
+ "geolocation/cast_access_token_store.cc",
+ "geolocation/cast_access_token_store.h",
+ "metrics/cast_metrics_prefs.cc",
+ "metrics/cast_metrics_prefs.h",
+ "metrics/cast_metrics_service_client.cc",
+ "metrics/cast_metrics_service_client.h",
+ "metrics/cast_stability_metrics_provider.cc",
+ "metrics/cast_stability_metrics_provider.h",
+ "metrics/platform_metrics_providers.h",
+ "pref_service_helper.cc",
+ "pref_service_helper.h",
+ "service/cast_service.cc",
+ "service/cast_service.h",
+ "service/cast_service_android.cc",
+ "service/cast_service_android.h",
+ "url_request_context_factory.cc",
+ "url_request_context_factory.h",
+ ]
+
+ if (chromecast_branding == "public") {
+ sources += [
+ "cast_content_browser_client_simple.cc",
+ "cast_network_delegate_simple.cc",
+ "devtools/remote_debugging_server_simple.cc",
+ "pref_service_helper_simple.cc",
+ ]
+
+ if (!is_android) {
+ sources += [
+ "metrics/platform_metrics_providers_simple.cc",
+ "service/cast_service_simple.cc",
+ "service/cast_service_simple.h",
+ ]
+ }
+ }
+
+ deps = [
+ "//base",
+ "//base:prefs",
+ "//base:i18n",
+ "//cc",
+ "//chromecast/app:chromecast_settings",
+ "//chromecast/app:resources",
+ "//chromecast/base",
+ "//chromecast/base:cast_sys_info",
+ "//chromecast/common",
+ "//chromecast/graphics",
+ "//chromecast/media",
+ "//chromecast/net",
+ "//chromecast/public",
+ "//components/crash/app",
+ "//components/crash/browser",
+ "//components/devtools_http_handler:devtools_http_handler",
+ "//components/metrics",
+ "//components/metrics:gpu",
+ "//components/metrics:net",
+ "//components/metrics:profiler",
+ "//components/network_hints/browser",
+ "//content",
+ "//content/public/browser",
+ "//content/public/common",
+ "//content/public/utility",
+ "//media",
+ "//ipc",
+ "//net",
+ "//ui/base",
+ "//ui/compositor",
+ "//ui/gl",
+ ]
+
+ if (!is_android) {
+ sources += [
+ "metrics/external_metrics.cc",
+ "metrics/external_metrics.h",
+ ]
+
+ public_deps = [
+ "//chromecast/browser/media",
+ ]
+
+ deps += [ "//components/metrics:serialization" ]
+ }
+}
+
+source_set("test_support") {
+ testonly = true
+
+ sources = [
+ "test/chromecast_browser_test.cc",
+ "test/chromecast_browser_test.h",
+ "test/chromecast_browser_test_runner.cc",
+ ]
+
+ public_deps = [
+ ":browser",
+ "//chromecast:cast_shell_common",
+ ]
+
+ deps = [
+ "//base",
+ "//chromecast/app",
+ "//chromecast/base",
+ "//content/public/browser",
+ "//content/public/common",
+ "//content/test:test_support",
+ "//testing/gtest",
+ ]
+}
+
+config("browser_test_config") {
+ defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
+}
+
+test("cast_shell_browser_test") {
+ sources = [
+ "test/chromecast_shell_browser_test.cc",
+ ]
+
+ configs += [ ":browser_test_config" ]
+
+ deps = [
+ ":test_support",
+ "//base",
+ "//testing/gtest",
+ "//url",
+ ]
+}
diff --git a/chromecast/browser/media/BUILD.gn b/chromecast/browser/media/BUILD.gn
new file mode 100644
index 0000000..74b6754
--- /dev/null
+++ b/chromecast/browser/media/BUILD.gn
@@ -0,0 +1,32 @@
+# 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("media") {
+ sources = [
+ "cast_browser_cdm_factory.cc",
+ "cast_browser_cdm_factory.h",
+ "cast_media_client_android.cc",
+ "cast_media_client_android.h",
+ "cma_message_filter_host.cc",
+ "cma_message_filter_host.h",
+ "media_pipeline_host.cc",
+ "media_pipeline_host.h",
+ ]
+
+ if (chromecast_branding == "public" && !is_android) {
+ sources += [ "cast_browser_cdm_factory_simple.cc" ]
+ }
+
+ deps = [
+ "//base",
+ "//chromecast/common/media",
+ "//chromecast/media",
+ "//chromecast/public",
+ "//content/public/browser",
+ "//media",
+ "//ui/gfx/geometry",
+ ]
+}
diff --git a/chromecast/build/args.gn b/chromecast/build/args.gn
index 54f0ca9..a768a59 100644
--- a/chromecast/build/args.gn
+++ b/chromecast/build/args.gn
@@ -11,9 +11,25 @@ enable_plugins = true
enable_pepper_cdms = false
# Flags set from build/common.gypi
+
+# Compile with MSE support for MPEG2 TS. See //media/media_options.gni for more
+# detail.
enable_mpeg2ts_stream_parser = true
+
+# Instead of maintaining a separate "Chromecast" ffmpeg branding, "ChromeOS" is
+# used, as it sufficiently covers all the required codecs.
ffmpeg_branding = "ChromeOS"
+
+# Setting this to true generates libeglplatform_shim.so.1 from
+# //ui/ozone/platform/egltest:egl_platform_x11.
+ozone_platform_ozonex = true
+
+# Chromecast must use proprietary codecs. Setting this to true defines the
+# USE_PROPRIETARY_CODECS macro and the proper EME_CODEC macros.
proprietary_codecs = true
+
+# See //build/config/ui.gni. Notice that use_x11 = is_linux && !use_ozone.
+use_ozone = true
# TODO(halliwell): look into supporting Cast Ozone with GN.
# ozone_platform_cast = 1
# TODO(gyp): Add support for blink_logging_always_on and enable it.
diff --git a/chromecast/chromecast.gni b/chromecast/chromecast.gni
index 646d19f..610b179 100644
--- a/chromecast/chromecast.gni
+++ b/chromecast/chromecast.gni
@@ -5,7 +5,6 @@
declare_args() {
# chromecast_branding is used to indicate build version. Set it to
# "public" for Chromium build.
- # TODO(slan): Make this variable consistent with the GYP build.
chromecast_branding = "public"
use_playready = false
diff --git a/chromecast/common/BUILD.gn b/chromecast/common/BUILD.gn
index 127823b..9c2ed7b 100644
--- a/chromecast/common/BUILD.gn
+++ b/chromecast/common/BUILD.gn
@@ -2,6 +2,8 @@
# 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",
@@ -14,8 +16,9 @@ source_set("common") {
"pref_names.h",
]
- # TODO(kmackay) Add "platform_client_auth._simple.cc" to sources
- # if chromecast_branding != "Chrome"
+ if (chromecast_branding == "public") {
+ sources += [ "platform_client_auth_simple.cc" ]
+ }
deps = [
"//base",
diff --git a/chromecast/common/media/BUILD.gn b/chromecast/common/media/BUILD.gn
new file mode 100644
index 0000000..a2052cd
--- /dev/null
+++ b/chromecast/common/media/BUILD.gn
@@ -0,0 +1,30 @@
+# 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.
+
+source_set("media") {
+ sources = [
+ "cast_message_generator.cc",
+ "cast_message_generator.h",
+ "cast_messages.h",
+ "cma_ipc_common.h",
+ "cma_message_generator.cc",
+ "cma_message_generator.h",
+ "cma_messages.h",
+ "cma_param_traits.cc",
+ "cma_param_traits.h",
+ "cma_param_traits_macros.h",
+ "shared_memory_chunk.cc",
+ "shared_memory_chunk.h",
+ ]
+
+ deps = [
+ "//base",
+ "//chromecast/media",
+ "//content/public/common",
+ "//ipc",
+ "//media",
+ "//media:shared_memory_support",
+ "//ui/gfx/ipc",
+ ]
+}
diff --git a/chromecast/graphics/BUILD.gn b/chromecast/graphics/BUILD.gn
new file mode 100644
index 0000000..f07a871
--- /dev/null
+++ b/chromecast/graphics/BUILD.gn
@@ -0,0 +1,16 @@
+# 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.
+
+source_set("graphics") {
+ sources = [
+ "cast_screen.cc",
+ "cast_screen.h",
+ ]
+
+ deps = [
+ "//ui/aura",
+ "//ui/gfx",
+ "//ui/gfx/geometry",
+ ]
+}
diff --git a/chromecast/renderer/BUILD.gn b/chromecast/renderer/BUILD.gn
new file mode 100644
index 0000000..cd7f240
--- /dev/null
+++ b/chromecast/renderer/BUILD.gn
@@ -0,0 +1,44 @@
+# 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",
+ ]
+}
diff --git a/chromecast/renderer/media/BUILD.gn b/chromecast/renderer/media/BUILD.gn
new file mode 100644
index 0000000..6bbba52
--- /dev/null
+++ b/chromecast/renderer/media/BUILD.gn
@@ -0,0 +1,31 @@
+# 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.
+
+source_set("media") {
+ sources = [
+ "audio_pipeline_proxy.cc",
+ "audio_pipeline_proxy.h",
+ "capabilities_message_filter.cc",
+ "capabilities_message_filter.h",
+ "chromecast_media_renderer_factory.cc",
+ "chromecast_media_renderer_factory.h",
+ "cma_message_filter_proxy.cc",
+ "cma_message_filter_proxy.h",
+ "media_channel_proxy.cc",
+ "media_channel_proxy.h",
+ "media_pipeline_proxy.cc",
+ "media_pipeline_proxy.h",
+ "video_pipeline_proxy.cc",
+ "video_pipeline_proxy.h",
+ ]
+
+ deps = [
+ "//base",
+ "//chromecast/common/media",
+ "//chromecast/media",
+ "//content/public/renderer",
+ "//ipc",
+ "//media",
+ ]
+}