blob: fefb400a0c49b394ec0f725f580270c9df2c9ed9 [file] [log] [blame]
slan074ec342016-01-29 23:52:261# Copyright 2016 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
thoren9540c6d2017-05-22 20:07:045import("//chromecast/chromecast.gni")
slan074ec342016-01-29 23:52:266import("//build/config/android/rules.gni")
Chris Kuiper3b76c8f522017-05-11 23:38:237import("//media/media_options.gni")
slan074ec342016-01-29 23:52:268
9assert(is_android)
10
agrieveacd4e48e2016-10-13 00:17:1411cast_shell_android_manifest =
12 "$root_gen_dir/cast_shell_manifest/AndroidManifest.xml"
13
Simeon Anfinrud927ecc52017-12-08 19:55:2514manifest_variables =
15 [ "cast_build_enable_background_activities=$enable_background_activities" ]
Aidan Wolter63fb79e2017-11-11 00:56:5716
slan074ec342016-01-29 23:52:2617jinja_template("cast_shell_manifest") {
18 input = "apk/AndroidManifest.xml.jinja2"
agrieveacd4e48e2016-10-13 00:17:1419 output = cast_shell_android_manifest
Aidan Wolter63fb79e2017-11-11 00:56:5720
21 variables = manifest_variables
slan074ec342016-01-29 23:52:2622}
23
thoren9540c6d2017-05-22 20:07:0424java_cpp_template("cast_shell_build_config_gen") {
25 sources = [
26 "apk/templates/BuildConfig.template",
27 ]
28 package_path = "org/chromium/chromecast/shell"
29
30 defines = []
31 if (display_web_contents_in_service) {
32 defines += [ "_DISPLAY_WEB_CONTENTS_IN_SERVICE" ]
33 }
Steve Fungdb75c692017-11-21 03:43:0534
Zhiheng Vincent Li7b37d582018-01-24 03:44:5435 if (enable_cast_fragment) {
36 defines += [ "_ENABLE_CAST_FRAGMENT" ]
37 }
38
Steve Fungdb75c692017-11-21 03:43:0539 # Set the logcat extractor size in lines.
40 defines += [ "_LOGCAT_EXTRACTOR_SIZE=${logcat_extractor_size}" ]
Sandeep Vijayasekar4ddbad72018-01-25 02:20:1141
42 if (use_remote_service_logcat) {
43 defines += [ "_USE_REMOTE_SERVICE_LOGCAT" ]
44 }
45
46 # Component name which will provide the device logs
47 defines +=
48 [ "_DEVICE_LOGS_PROVIDER_PACKAGE=\"${device_logs_provider_package}\"" ]
49 defines += [ "_DEVICE_LOGS_PROVIDER_CLASS=\"${device_logs_provider_class}\"" ]
thoren9540c6d2017-05-22 20:07:0450}
51
slan074ec342016-01-29 23:52:2652android_resources("cast_shell_android_resources") {
agrieveacd4e48e2016-10-13 00:17:1453 android_manifest = cast_shell_android_manifest
agrieve24b56ca82016-06-30 14:46:3354 android_manifest_dep = ":cast_shell_manifest"
slan074ec342016-01-29 23:52:2655 resource_dirs = [ "//chromecast/browser/android/apk/res" ]
slan074ec342016-01-29 23:52:2656}
57
Simeon Anfinrude2258e42017-08-28 21:20:4358android_library("cast_audio_manager_java") {
59 java_src_dir = "//chromecast/browser/android/apk/src"
60 java_files =
61 [ "$java_src_dir/org/chromium/chromecast/shell/CastAudioManager.java" ]
Simeon Anfinrud35420342018-02-27 22:22:4862 deps = [
63 "//base:base_java",
64 "//chromecast/base:base_java",
65 ]
Simeon Anfinrude2258e42017-08-28 21:20:4366}
67
68android_library("cast_intents_java") {
69 java_src_dir = "//chromecast/browser/android/apk/src"
70 java_files =
71 [ "$java_src_dir/org/chromium/chromecast/shell/CastIntents.java" ]
72}
Sandeep Vijayasekar4ddbad72018-01-25 02:20:1173android_aidl("logs_provider_aidl") {
74 java_src_dir = "//chromecast/browser/android/apk/src"
75 interface_file =
76 "$java_src_dir/org/chromium/chromecast/shell/logs_provider_service.aidl"
77
78 sources = [
79 "$java_src_dir/org/chromium/chromecast/shell/IDeviceLogsProvider.aidl",
80 ]
81}
Simeon Anfinrude2258e42017-08-28 21:20:4382
Simeon Anfinrudbfac5d92018-02-21 21:16:5883android_library("reactive_android_java") {
84 java_src_dir = "//chromecast/browser/android/apk/src"
Simeon Anfinrud9784c172018-03-29 05:17:4085 java_files = [
86 "$java_src_dir/org/chromium/chromecast/shell/AsyncTaskRunner.java",
87 "$java_src_dir/org/chromium/chromecast/shell/LocalBroadcastReceiverScope.java",
88 ]
Simeon Anfinrudbfac5d92018-02-21 21:16:5889 deps = [
90 "//base:base_java",
Simeon Anfinrud950970e72018-03-26 16:16:0691 "//chromecast/base:base_java",
Simeon Anfinrudbfac5d92018-02-21 21:16:5892 "//third_party/android_tools:android_support_core_utils_java",
93 ]
94}
95
slan074ec342016-01-29 23:52:2696android_library("cast_shell_java") {
97 java_src_dir = "//chromecast/browser/android/apk/src"
98 java_files = [
Sandeep Vijayasekar4ddbad72018-01-25 02:20:1199 "$java_src_dir/org/chromium/chromecast/shell/AndroidAppLogcatProvider.java",
100 "$java_src_dir/org/chromium/chromecast/shell/ExternalServiceDeviceLogcatProvider.java",
slan074ec342016-01-29 23:52:26101 "$java_src_dir/org/chromium/chromecast/shell/CastApplication.java",
slan074ec342016-01-29 23:52:26102 "$java_src_dir/org/chromium/chromecast/shell/CastBrowserHelper.java",
derekjchow504caf22017-01-12 21:04:27103 "$java_src_dir/org/chromium/chromecast/shell/CastContentWindowAndroid.java",
slan074ec342016-01-29 23:52:26104 "$java_src_dir/org/chromium/chromecast/shell/CastCrashHandler.java",
105 "$java_src_dir/org/chromium/chromecast/shell/CastCrashUploader.java",
Sandeep Vijayasekar8edffd72017-10-11 21:37:24106 "$java_src_dir/org/chromium/chromecast/shell/CastCrashUploaderFactory.java",
slan074ec342016-01-29 23:52:26107 "$java_src_dir/org/chromium/chromecast/shell/CastMetricsHelper.java",
slan074ec342016-01-29 23:52:26108 "$java_src_dir/org/chromium/chromecast/shell/CastSysInfoAndroid.java",
derekjchow504caf22017-01-12 21:04:27109 "$java_src_dir/org/chromium/chromecast/shell/CastWebContentsActivity.java",
Zhiheng Vincent Li180905f52018-03-14 21:36:35110 "$java_src_dir/org/chromium/chromecast/shell/CastWebContentsComponent.java",
Zhiheng Vincent Li7b37d582018-01-24 03:44:54111 "$java_src_dir/org/chromium/chromecast/shell/CastWebContentsFragment.java",
Zhiheng Vincent Li180905f52018-03-14 21:36:35112 "$java_src_dir/org/chromium/chromecast/shell/CastWebContentsIntentUtils.java",
thoren9540c6d2017-05-22 20:07:04113 "$java_src_dir/org/chromium/chromecast/shell/CastWebContentsService.java",
Zhiheng Vincent Li7b37d582018-01-24 03:44:54114 "$java_src_dir/org/chromium/chromecast/shell/CastWebContentsSurfaceHelper.java",
Simeon Anfinrud927ecc52017-12-08 19:55:25115 "$java_src_dir/org/chromium/chromecast/shell/LogcatElision.java",
Sandeep Vijayasekar4ddbad72018-01-25 02:20:11116 "$java_src_dir/org/chromium/chromecast/shell/ElidedLogcatProvider.java",
slan074ec342016-01-29 23:52:26117 ]
118
Andrew Grieve27a1f5092018-01-03 18:21:38119 android_manifest_for_lint = cast_shell_android_manifest
agrieveacd4e48e2016-10-13 00:17:14120
Sandeep Vijayasekar4ddbad72018-01-25 02:20:11121 srcjar_deps = [
122 ":cast_shell_build_config_gen",
123 ":logs_provider_aidl",
124 ]
thoren9540c6d2017-05-22 20:07:04125
slan074ec342016-01-29 23:52:26126 deps = [
Simeon Anfinrude2258e42017-08-28 21:20:43127 ":cast_audio_manager_java",
128 ":cast_intents_java",
slan074ec342016-01-29 23:52:26129 ":cast_shell_android_resources",
agrieveacd4e48e2016-10-13 00:17:14130 ":cast_shell_manifest",
Simeon Anfinrudbfac5d92018-02-21 21:16:58131 ":reactive_android_java",
slan074ec342016-01-29 23:52:26132 "//base:base_java",
133 "//chromecast/base:base_java",
Jinsuk Kim71c0c57f2018-02-22 01:00:20134 "//components/content_view:content_view_java",
Bryan Henryf9be8cc2017-06-09 01:36:24135 "//components/crash/android:java",
slan074ec342016-01-29 23:52:26136 "//content/public/android:content_java",
yucliu5c1cc482016-12-01 20:35:10137 "//device/geolocation:geolocation_java",
slan074ec342016-01-29 23:52:26138 "//media/base/android:media_java",
139 "//net/android:net_java",
140
141 # TODO(slan): We may need to pass this in as a parameter.
ianwen7a884062016-12-06 19:00:13142 "//third_party/android_tools:android_support_core_utils_java",
slan074ec342016-01-29 23:52:26143 "//ui/android:ui_java",
144 ]
Chris Kuiper3b76c8f522017-05-11 23:38:23145
146 if (is_cast_using_cma_backend) {
147 deps += [ "//chromecast/media/cma/backend/android:audio_track_java" ]
148 }
Aidan Wolterd6c24152018-04-09 18:14:17149
150 if (is_android_things_non_public) {
151 java_files += [ "$java_src_dir/org/chromium/chromecast/shell/CastSysInfoAndroidThings.java" ]
152 deps += [ "//chromecast/internal/android/prebuilt/things:support_lib_java" ]
153 }
slan074ec342016-01-29 23:52:26154}
thoren9540c6d2017-05-22 20:07:04155
156junit_binary("cast_shell_junit_tests") {
Sandeep Vijayasekare527bc42017-09-19 20:54:01157 java_files = [
Simeon Anfinrud9784c172018-03-29 05:17:40158 "junit/src/org/chromium/chromecast/shell/AsyncTaskRunnerTest.java",
Simeon Anfinrud35420342018-02-27 22:22:48159 "junit/src/org/chromium/chromecast/shell/CastAudioManagerTest.java",
Simeon Anfinrudfec44752018-03-07 16:03:03160 "junit/src/org/chromium/chromecast/shell/CastWebContentsActivityTest.java",
Sandeep Vijayasekare527bc42017-09-19 20:54:01161 "junit/src/org/chromium/chromecast/shell/CastWebContentsComponentTest.java",
Zhiheng Vincent Li180905f52018-03-14 21:36:35162 "junit/src/org/chromium/chromecast/shell/CastWebContentsIntentUtilsTest.java",
Simeon Anfinrudbfac5d92018-02-21 21:16:58163 "junit/src/org/chromium/chromecast/shell/LocalBroadcastReceiverScopeTest.java",
Simeon Anfinrud927ecc52017-12-08 19:55:25164 "junit/src/org/chromium/chromecast/shell/LogcatElisionUnitTest.java",
Sandeep Vijayasekar4ddbad72018-01-25 02:20:11165 "junit/src/org/chromium/chromecast/shell/ElidedLogcatProviderUnitTest.java",
Sandeep Vijayasekare527bc42017-09-19 20:54:01166 ]
thoren9540c6d2017-05-22 20:07:04167
168 srcjar_deps = [ ":cast_shell_build_config_gen" ]
169
170 deps = [
Simeon Anfinrudf28465492017-08-30 17:21:44171 ":cast_intents_java",
thoren9540c6d2017-05-22 20:07:04172 ":cast_shell_java",
173 "//base:base_java_test_support",
174 "//content/public/android:content_java",
175 "//third_party/android_tools:android_support_core_utils_java",
Simeon Anfinrud927ecc52017-12-08 19:55:25176 "//third_party/hamcrest:hamcrest_java",
thoren9540c6d2017-05-22 20:07:04177 ]
178}