blob: b67dd4686ec91431fcc1d1a307c8e8efd9059317 [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
5import("//build/config/android/rules.gni")
Jan Lamecki7df3c64a2018-11-30 12:01:426import("//chromecast/chromecast.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
Akira Baruah7c8154e12018-10-19 22:41:3414manifest_variables = [
15 "cast_build_enable_background_activities=$enable_background_activities",
Brett Kilty64a73af2019-06-12 16:28:3616 "is_android_things=$is_android_things",
Akira Baruah7c8154e12018-10-19 22:41:3417 "is_android_things_non_public=$is_android_things_non_public",
18]
Aidan Wolter63fb79e2017-11-11 00:56:5719
slan074ec342016-01-29 23:52:2620jinja_template("cast_shell_manifest") {
21 input = "apk/AndroidManifest.xml.jinja2"
agrieveacd4e48e2016-10-13 00:17:1422 output = cast_shell_android_manifest
Aidan Wolter63fb79e2017-11-11 00:56:5723
24 variables = manifest_variables
slan074ec342016-01-29 23:52:2625}
26
thoren9540c6d2017-05-22 20:07:0427java_cpp_template("cast_shell_build_config_gen") {
Nico Weber1d0f77d2020-01-14 16:44:4028 sources = [ "apk/templates/BuildConfig.template" ]
thoren9540c6d2017-05-22 20:07:0429 package_path = "org/chromium/chromecast/shell"
30
31 defines = []
32 if (display_web_contents_in_service) {
33 defines += [ "_DISPLAY_WEB_CONTENTS_IN_SERVICE" ]
34 }
Steve Fungdb75c692017-11-21 03:43:0535
Zhiheng Vincent Li7b37d582018-01-24 03:44:5436 if (enable_cast_fragment) {
37 defines += [ "_ENABLE_CAST_FRAGMENT" ]
38 }
39
Steve Fungdb75c692017-11-21 03:43:0540 # Set the logcat extractor size in lines.
41 defines += [ "_LOGCAT_EXTRACTOR_SIZE=${logcat_extractor_size}" ]
Sandeep Vijayasekar4ddbad72018-01-25 02:20:1142
43 if (use_remote_service_logcat) {
44 defines += [ "_USE_REMOTE_SERVICE_LOGCAT" ]
45 }
46
47 # Component name which will provide the device logs
48 defines +=
49 [ "_DEVICE_LOGS_PROVIDER_PACKAGE=\"${device_logs_provider_package}\"" ]
50 defines += [ "_DEVICE_LOGS_PROVIDER_CLASS=\"${device_logs_provider_class}\"" ]
thoren9540c6d2017-05-22 20:07:0451}
52
Simeon Anfinruda8b90442020-02-19 00:22:0853common_resources = [
54 "apk/res-values/values-v17/styles.xml",
55 "apk/res-values/values/strings.xml",
56]
57
slan074ec342016-01-29 23:52:2658android_resources("cast_shell_android_resources") {
agrieveacd4e48e2016-10-13 00:17:1459 android_manifest = cast_shell_android_manifest
agrieve24b56ca82016-06-30 14:46:3360 android_manifest_dep = ":cast_shell_manifest"
Simeon Anfinruda8b90442020-02-19 00:22:0861 sources = common_resources + [
62 "apk/res/drawable-hdpi/ic_settings_cast.png",
63 "apk/res/drawable-mdpi/ic_settings_cast.png",
64 "apk/res/drawable-xhdpi/ic_settings_cast.png",
65 "apk/res/drawable-xxhdpi/ic_settings_cast.png",
66 "apk/res/drawable-xxxhdpi/ic_settings_cast.png",
67 "apk/res/layout/cast_web_contents_activity.xml",
68 "apk/res/mipmap-hdpi/app_icon.png",
69 "apk/res/mipmap-mdpi/app_icon.png",
70 "apk/res/mipmap-xhdpi/app_icon.png",
71 "apk/res/mipmap-xxhdpi/app_icon.png",
72 ]
ziyangchcba216e82019-07-19 23:50:4573}
74
75android_resources("cast_shell_android_stub_resources") {
76 android_manifest = cast_shell_android_manifest
77 android_manifest_dep = ":cast_shell_manifest"
Simeon Anfinruda8b90442020-02-19 00:22:0878 sources = common_resources
slan074ec342016-01-29 23:52:2679}
80
Simeon Anfinrude2258e42017-08-28 21:20:4381android_library("cast_audio_manager_java") {
82 java_src_dir = "//chromecast/browser/android/apk/src"
ziyangch9aeac0f2019-09-27 17:19:1483
84 alternative_android_sdk_dep =
85 "//third_party/android_sdk:public_framework_system_java"
86
Natalie Chouinard14f935112019-12-23 19:33:1987 sources = [
shyamccd3df32018-08-10 21:43:4388 "$java_src_dir/org/chromium/chromecast/shell/CastAudioFocusRequest.java",
Natalie Chouinard14f935112019-12-23 19:33:1989 "$java_src_dir/org/chromium/chromecast/shell/CastAudioManager.java",
shyamccd3df32018-08-10 21:43:4390 ]
Simeon Anfinrud35420342018-02-27 22:22:4891 deps = [
92 "//base:base_java",
93 "//chromecast/base:base_java",
Peter Wen79e67d12020-07-16 20:24:5394 "//third_party/android_deps:androidx_annotation_annotation_java",
Simeon Anfinrud35420342018-02-27 22:22:4895 ]
Simeon Anfinrude2258e42017-08-28 21:20:4396}
97
98android_library("cast_intents_java") {
99 java_src_dir = "//chromecast/browser/android/apk/src"
Nico Weber1d0f77d2020-01-14 16:44:40100 sources = [ "$java_src_dir/org/chromium/chromecast/shell/CastIntents.java" ]
Simeon Anfinrude2258e42017-08-28 21:20:43101}
Sandeep Vijayasekar4ddbad72018-01-25 02:20:11102android_aidl("logs_provider_aidl") {
103 java_src_dir = "//chromecast/browser/android/apk/src"
104 interface_file =
105 "$java_src_dir/org/chromium/chromecast/shell/logs_provider_service.aidl"
106
Nico Weber1d0f77d2020-01-14 16:44:40107 sources =
108 [ "$java_src_dir/org/chromium/chromecast/shell/IDeviceLogsProvider.aidl" ]
Sandeep Vijayasekar4ddbad72018-01-25 02:20:11109}
Simeon Anfinrude2258e42017-08-28 21:20:43110
Simeon Anfinrudbfac5d92018-02-21 21:16:58111android_library("reactive_android_java") {
112 java_src_dir = "//chromecast/browser/android/apk/src"
Natalie Chouinard14f935112019-12-23 19:33:19113 sources = [
Simeon Anfinrud9784c172018-03-29 05:17:40114 "$java_src_dir/org/chromium/chromecast/shell/AsyncTaskRunner.java",
115 "$java_src_dir/org/chromium/chromecast/shell/LocalBroadcastReceiverScope.java",
116 ]
Simeon Anfinrudbfac5d92018-02-21 21:16:58117 deps = [
118 "//base:base_java",
Simeon Anfinrud950970e72018-03-26 16:16:06119 "//chromecast/base:base_java",
Ben Joyced4d9c562020-03-16 20:55:03120 "//third_party/android_deps:androidx_legacy_legacy_support_core_utils_java",
ziyangch102de6f2019-10-03 20:17:20121 "//third_party/android_deps:androidx_localbroadcastmanager_localbroadcastmanager_java",
Simeon Anfinrudbfac5d92018-02-21 21:16:58122 ]
123}
124
Benoît Lizéd8b8f742019-11-07 12:50:07125generate_product_config_srcjar("chromecast_product_config") {
Yuchen Liu4984ae22019-07-24 23:30:22126 java_package = "org.chromium.chromecast.shell"
127}
128
Thoren Paulson6f15f172020-04-28 22:40:31129android_library("resume_intents_java") {
130 java_src_dir = "//chromecast/browser/android/apk/src"
131 sources = [ "$java_src_dir/org/chromium/chromecast/shell/ResumeIntents.java" ]
132 deps = [ "//chromecast/base:base_java" ]
133}
134
slan074ec342016-01-29 23:52:26135android_library("cast_shell_java") {
136 java_src_dir = "//chromecast/browser/android/apk/src"
Natalie Chouinard14f935112019-12-23 19:33:19137 sources = [
Sandeep Vijayasekar4ddbad72018-01-25 02:20:11138 "$java_src_dir/org/chromium/chromecast/shell/AndroidAppLogcatProvider.java",
slan074ec342016-01-29 23:52:26139 "$java_src_dir/org/chromium/chromecast/shell/CastApplication.java",
slan074ec342016-01-29 23:52:26140 "$java_src_dir/org/chromium/chromecast/shell/CastBrowserHelper.java",
Zhiheng Vincent Li3d99ccc2018-06-13 23:26:06141 "$java_src_dir/org/chromium/chromecast/shell/CastCommandLineHelper.java",
Natalie Chouinard14f935112019-12-23 19:33:19142 "$java_src_dir/org/chromium/chromecast/shell/CastContentWindowAndroid.java",
slan074ec342016-01-29 23:52:26143 "$java_src_dir/org/chromium/chromecast/shell/CastCrashHandler.java",
144 "$java_src_dir/org/chromium/chromecast/shell/CastCrashUploader.java",
Sandeep Vijayasekar8edffd72017-10-11 21:37:24145 "$java_src_dir/org/chromium/chromecast/shell/CastCrashUploaderFactory.java",
slan074ec342016-01-29 23:52:26146 "$java_src_dir/org/chromium/chromecast/shell/CastMetricsHelper.java",
Thoren Paulsone8916d7f2018-09-26 18:22:08147 "$java_src_dir/org/chromium/chromecast/shell/CastSerialGenerator.java",
slan074ec342016-01-29 23:52:26148 "$java_src_dir/org/chromium/chromecast/shell/CastSysInfoAndroid.java",
derekjchow504caf22017-01-12 21:04:27149 "$java_src_dir/org/chromium/chromecast/shell/CastWebContentsActivity.java",
Zhiheng Vincent Li180905f52018-03-14 21:36:35150 "$java_src_dir/org/chromium/chromecast/shell/CastWebContentsComponent.java",
Zhiheng Vincent Li7b37d582018-01-24 03:44:54151 "$java_src_dir/org/chromium/chromecast/shell/CastWebContentsFragment.java",
Zhiheng Vincent Li180905f52018-03-14 21:36:35152 "$java_src_dir/org/chromium/chromecast/shell/CastWebContentsIntentUtils.java",
Natalie Chouinard14f935112019-12-23 19:33:19153 "$java_src_dir/org/chromium/chromecast/shell/CastWebContentsScopes.java",
thoren9540c6d2017-05-22 20:07:04154 "$java_src_dir/org/chromium/chromecast/shell/CastWebContentsService.java",
Zhiheng Vincent Li7b37d582018-01-24 03:44:54155 "$java_src_dir/org/chromium/chromecast/shell/CastWebContentsSurfaceHelper.java",
Jan Lamecki28d61682018-11-28 10:56:33156 "$java_src_dir/org/chromium/chromecast/shell/CastWebContentsView.java",
Sandeep Vijayasekar4ddbad72018-01-25 02:20:11157 "$java_src_dir/org/chromium/chromecast/shell/ElidedLogcatProvider.java",
Natalie Chouinard14f935112019-12-23 19:33:19158 "$java_src_dir/org/chromium/chromecast/shell/ExternalServiceDeviceLogcatProvider.java",
159 "$java_src_dir/org/chromium/chromecast/shell/LogcatElision.java",
Thoren Paulson6f15f172020-04-28 22:40:31160 "$java_src_dir/org/chromium/chromecast/shell/WebContentsRegistry.java",
slan074ec342016-01-29 23:52:26161 ]
162
Sandeep Vijayasekar4ddbad72018-01-25 02:20:11163 srcjar_deps = [
164 ":cast_shell_build_config_gen",
Benoît Lizéd8b8f742019-11-07 12:50:07165 ":chromecast_product_config",
Sandeep Vijayasekar4ddbad72018-01-25 02:20:11166 ":logs_provider_aidl",
Jan Lamecki7df3c64a2018-11-30 12:01:42167 "//chromecast/browser:java_enums",
Sandeep Vijayasekar4ddbad72018-01-25 02:20:11168 ]
thoren9540c6d2017-05-22 20:07:04169
Benoît Lizéd8b8f742019-11-07 12:50:07170 jar_excluded_patterns = [ "*/ProductConfig.class" ]
Yuchen Liu4984ae22019-07-24 23:30:22171
slan074ec342016-01-29 23:52:26172 deps = [
Simeon Anfinrude2258e42017-08-28 21:20:43173 ":cast_audio_manager_java",
174 ":cast_intents_java",
slan074ec342016-01-29 23:52:26175 ":cast_shell_android_resources",
agrieveacd4e48e2016-10-13 00:17:14176 ":cast_shell_manifest",
Simeon Anfinrudbfac5d92018-02-21 21:16:58177 ":reactive_android_java",
Thoren Paulson6f15f172020-04-28 22:40:31178 ":resume_intents_java",
slan074ec342016-01-29 23:52:26179 "//base:base_java",
Eric Stevenson56ab3312019-09-18 14:46:25180 "//base:jni_java",
slan074ec342016-01-29 23:52:26181 "//chromecast/base:base_java",
Simeon Anfinrud08677dd2019-06-30 23:30:47182 "//chromecast/media/cma/backend/android:audio_track_java",
Bryan Henryf9be8cc2017-06-09 01:36:24183 "//components/crash/android:java",
Jinsuk Kimd86d75972018-07-05 06:32:05184 "//components/embedder_support/android:content_view_java",
Attila Uygun1a5f9412018-06-05 09:58:01185 "//components/embedder_support/android:view_java",
Joshua Perazaf890e4b2019-01-03 19:19:02186 "//components/minidump_uploader:minidump_uploader_java",
slan074ec342016-01-29 23:52:26187 "//content/public/android:content_java",
188 "//media/base/android:media_java",
189 "//net/android:net_java",
Peter Wen79e67d12020-07-16 20:24:53190 "//third_party/android_deps:androidx_annotation_annotation_java",
Ben Joyced4d9c562020-03-16 20:55:03191 "//third_party/android_deps:androidx_core_core_java",
Ben Joycee779ce62019-08-15 22:57:37192
193 # TODO(slan): We may need to pass this in as a parameter.
Ben Joyced4d9c562020-03-16 20:55:03194 "//third_party/android_deps:androidx_legacy_legacy_support_core_utils_java",
Simeon Anfinrud7336de42020-07-22 14:46:12195 "//third_party/android_deps:androidx_localbroadcastmanager_localbroadcastmanager_java",
196 "//third_party/android_deps:androidx_slice_slice_builders_java",
197
198 # Used internally for Settings UI.
199 "//third_party/android_deps:androidx_slice_slice_core_java",
slan074ec342016-01-29 23:52:26200 "//ui/android:ui_java",
201 ]
Eric Stevenson56ab3312019-09-18 14:46:25202 annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
Chris Kuiper3b76c8f522017-05-11 23:38:23203
Elvin Lee0622dff2018-12-14 17:44:12204 if (is_android_things_non_public) {
Alex Leung61dea442018-12-11 18:53:38205 deps += [ ":cast_shell_android_things_sys_info_java" ]
Andrei Pascovici358545d2018-05-19 01:33:03206 if (enable_assistant) {
207 deps += [ "//chromecast/internal/assistant/ui:boot_parameters_java" ]
208 }
Aidan Wolterd6c24152018-04-09 18:14:17209 }
slan074ec342016-01-29 23:52:26210}
thoren9540c6d2017-05-22 20:07:04211
Michael Spang08706a22020-02-07 21:18:24212if (is_android_things_non_public) {
Alex Leung61dea442018-12-11 18:53:38213 android_library("cast_shell_android_things_sys_info_java") {
Nico Weber1d0f77d2020-01-14 16:44:40214 sources = [ "//chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastSysInfoAndroidThings.java" ]
Alex Leung61dea442018-12-11 18:53:38215 deps = [
216 "//base:base_java",
217 "//chromecast/internal/android/prebuilt/things:support_lib_java",
218 ]
219 }
220
221 generate_jni("cast_shell_android_things_sys_info_jni_headers") {
Nico Weber1d0f77d2020-01-14 16:44:40222 sources = [ "//chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastSysInfoAndroidThings.java" ]
223 deps = [ "//chromecast/internal/android/prebuilt/things:support_lib_java" ]
Alex Leung61dea442018-12-11 18:53:38224 }
225}
226
thoren9540c6d2017-05-22 20:07:04227junit_binary("cast_shell_junit_tests") {
Natalie Chouinard14f935112019-12-23 19:33:19228 sources = [
Simeon Anfinrud9784c172018-03-29 05:17:40229 "junit/src/org/chromium/chromecast/shell/AsyncTaskRunnerTest.java",
shyamccd3df32018-08-10 21:43:43230 "junit/src/org/chromium/chromecast/shell/CastAudioFocusRequestTest.java",
Natalie Chouinard14f935112019-12-23 19:33:19231 "junit/src/org/chromium/chromecast/shell/CastAudioManagerTest.java",
Zhiheng Vincent Li3d99ccc2018-06-13 23:26:06232 "junit/src/org/chromium/chromecast/shell/CastCommandLineHelperTest.java",
Simeon Anfinrudfec44752018-03-07 16:03:03233 "junit/src/org/chromium/chromecast/shell/CastWebContentsActivityTest.java",
Sandeep Vijayasekare527bc42017-09-19 20:54:01234 "junit/src/org/chromium/chromecast/shell/CastWebContentsComponentTest.java",
Zhiheng Vincent Li180905f52018-03-14 21:36:35235 "junit/src/org/chromium/chromecast/shell/CastWebContentsIntentUtilsTest.java",
Simeon Anfinrudacf4b982018-08-15 00:39:49236 "junit/src/org/chromium/chromecast/shell/CastWebContentsServiceTest.java",
Simeon Anfinrud3a2e44cc2018-04-17 20:29:43237 "junit/src/org/chromium/chromecast/shell/CastWebContentsSurfaceHelperTest.java",
Natalie Chouinard14f935112019-12-23 19:33:19238 "junit/src/org/chromium/chromecast/shell/ElidedLogcatProviderUnitTest.java",
Simeon Anfinrudbfac5d92018-02-21 21:16:58239 "junit/src/org/chromium/chromecast/shell/LocalBroadcastReceiverScopeTest.java",
Simeon Anfinrud927ecc52017-12-08 19:55:25240 "junit/src/org/chromium/chromecast/shell/LogcatElisionUnitTest.java",
Sandeep Vijayasekare527bc42017-09-19 20:54:01241 ]
thoren9540c6d2017-05-22 20:07:04242
243 srcjar_deps = [ ":cast_shell_build_config_gen" ]
244
245 deps = [
Andrew Grieve30a9a3e2020-05-20 03:58:35246 ":cast_audio_manager_java",
Simeon Anfinrudf28465492017-08-30 17:21:44247 ":cast_intents_java",
thoren9540c6d2017-05-22 20:07:04248 ":cast_shell_java",
Andrew Grieve30a9a3e2020-05-20 03:58:35249 ":reactive_android_java",
250 "//base:base_java",
Sandeep Vijayasekar27b285d2018-05-02 00:26:41251 "//base:base_java_test_support",
Simeon Anfinrudbc3cd02b2018-04-18 02:12:33252 "//base:base_junit_test_support",
Andrew Grieve30a9a3e2020-05-20 03:58:35253 "//chromecast/base:base_java",
Simeon Anfinrudacf4b982018-08-15 00:39:49254 "//chromecast/base:cast_base_test_utils_java",
thoren9540c6d2017-05-22 20:07:04255 "//content/public/android:content_java",
Ben Joyced4d9c562020-03-16 20:55:03256 "//third_party/android_deps:androidx_legacy_legacy_support_core_utils_java",
Andrew Grieve30a9a3e2020-05-20 03:58:35257 "//third_party/android_deps:androidx_localbroadcastmanager_localbroadcastmanager_java",
Simeon Anfinrud927ecc52017-12-08 19:55:25258 "//third_party/hamcrest:hamcrest_java",
thoren9540c6d2017-05-22 20:07:04259 ]
260}