blob: e730107d386993d0de0bf8b38040543141eedd47 [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
slan074ec342016-01-29 23:52:265import("//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") {
28 sources = [
29 "apk/templates/BuildConfig.template",
30 ]
31 package_path = "org/chromium/chromecast/shell"
32
33 defines = []
34 if (display_web_contents_in_service) {
35 defines += [ "_DISPLAY_WEB_CONTENTS_IN_SERVICE" ]
36 }
Steve Fungdb75c692017-11-21 03:43:0537
Zhiheng Vincent Li7b37d582018-01-24 03:44:5438 if (enable_cast_fragment) {
39 defines += [ "_ENABLE_CAST_FRAGMENT" ]
40 }
41
Steve Fungdb75c692017-11-21 03:43:0542 # Set the logcat extractor size in lines.
43 defines += [ "_LOGCAT_EXTRACTOR_SIZE=${logcat_extractor_size}" ]
Sandeep Vijayasekar4ddbad72018-01-25 02:20:1144
45 if (use_remote_service_logcat) {
46 defines += [ "_USE_REMOTE_SERVICE_LOGCAT" ]
47 }
48
49 # Component name which will provide the device logs
50 defines +=
51 [ "_DEVICE_LOGS_PROVIDER_PACKAGE=\"${device_logs_provider_package}\"" ]
52 defines += [ "_DEVICE_LOGS_PROVIDER_CLASS=\"${device_logs_provider_class}\"" ]
thoren9540c6d2017-05-22 20:07:0453}
54
slan074ec342016-01-29 23:52:2655android_resources("cast_shell_android_resources") {
agrieveacd4e48e2016-10-13 00:17:1456 android_manifest = cast_shell_android_manifest
agrieve24b56ca82016-06-30 14:46:3357 android_manifest_dep = ":cast_shell_manifest"
slan074ec342016-01-29 23:52:2658 resource_dirs = [ "//chromecast/browser/android/apk/res" ]
slan074ec342016-01-29 23:52:2659}
60
Simeon Anfinrude2258e42017-08-28 21:20:4361android_library("cast_audio_manager_java") {
62 java_src_dir = "//chromecast/browser/android/apk/src"
shyamccd3df32018-08-10 21:43:4363 java_files = [
64 "$java_src_dir/org/chromium/chromecast/shell/CastAudioManager.java",
65 "$java_src_dir/org/chromium/chromecast/shell/CastAudioFocusRequest.java",
66 ]
Simeon Anfinrud35420342018-02-27 22:22:4867 deps = [
68 "//base:base_java",
69 "//chromecast/base:base_java",
70 ]
Simeon Anfinrude2258e42017-08-28 21:20:4371}
72
73android_library("cast_intents_java") {
74 java_src_dir = "//chromecast/browser/android/apk/src"
75 java_files =
76 [ "$java_src_dir/org/chromium/chromecast/shell/CastIntents.java" ]
77}
Sandeep Vijayasekar4ddbad72018-01-25 02:20:1178android_aidl("logs_provider_aidl") {
79 java_src_dir = "//chromecast/browser/android/apk/src"
80 interface_file =
81 "$java_src_dir/org/chromium/chromecast/shell/logs_provider_service.aidl"
82
83 sources = [
84 "$java_src_dir/org/chromium/chromecast/shell/IDeviceLogsProvider.aidl",
85 ]
86}
Simeon Anfinrude2258e42017-08-28 21:20:4387
Simeon Anfinrudbfac5d92018-02-21 21:16:5888android_library("reactive_android_java") {
89 java_src_dir = "//chromecast/browser/android/apk/src"
Simeon Anfinrud9784c172018-03-29 05:17:4090 java_files = [
91 "$java_src_dir/org/chromium/chromecast/shell/AsyncTaskRunner.java",
92 "$java_src_dir/org/chromium/chromecast/shell/LocalBroadcastReceiverScope.java",
93 ]
Simeon Anfinrudbfac5d92018-02-21 21:16:5894 deps = [
95 "//base:base_java",
Simeon Anfinrud950970e72018-03-26 16:16:0696 "//chromecast/base:base_java",
Peter Wen02ff5382019-03-13 18:13:3897 "//third_party/android_deps:com_android_support_support_core_utils_java",
Simeon Anfinrudbfac5d92018-02-21 21:16:5898 ]
99}
100
slan074ec342016-01-29 23:52:26101android_library("cast_shell_java") {
102 java_src_dir = "//chromecast/browser/android/apk/src"
103 java_files = [
Sandeep Vijayasekar4ddbad72018-01-25 02:20:11104 "$java_src_dir/org/chromium/chromecast/shell/AndroidAppLogcatProvider.java",
105 "$java_src_dir/org/chromium/chromecast/shell/ExternalServiceDeviceLogcatProvider.java",
slan074ec342016-01-29 23:52:26106 "$java_src_dir/org/chromium/chromecast/shell/CastApplication.java",
slan074ec342016-01-29 23:52:26107 "$java_src_dir/org/chromium/chromecast/shell/CastBrowserHelper.java",
derekjchow504caf22017-01-12 21:04:27108 "$java_src_dir/org/chromium/chromecast/shell/CastContentWindowAndroid.java",
Zhiheng Vincent Li3d99ccc2018-06-13 23:26:06109 "$java_src_dir/org/chromium/chromecast/shell/CastCommandLineHelper.java",
slan074ec342016-01-29 23:52:26110 "$java_src_dir/org/chromium/chromecast/shell/CastCrashHandler.java",
111 "$java_src_dir/org/chromium/chromecast/shell/CastCrashUploader.java",
Sandeep Vijayasekar8edffd72017-10-11 21:37:24112 "$java_src_dir/org/chromium/chromecast/shell/CastCrashUploaderFactory.java",
slan074ec342016-01-29 23:52:26113 "$java_src_dir/org/chromium/chromecast/shell/CastMetricsHelper.java",
Thoren Paulsone8916d7f2018-09-26 18:22:08114 "$java_src_dir/org/chromium/chromecast/shell/CastSerialGenerator.java",
slan074ec342016-01-29 23:52:26115 "$java_src_dir/org/chromium/chromecast/shell/CastSysInfoAndroid.java",
derekjchow504caf22017-01-12 21:04:27116 "$java_src_dir/org/chromium/chromecast/shell/CastWebContentsActivity.java",
Zhiheng Vincent Li180905f52018-03-14 21:36:35117 "$java_src_dir/org/chromium/chromecast/shell/CastWebContentsComponent.java",
Zhiheng Vincent Li7b37d582018-01-24 03:44:54118 "$java_src_dir/org/chromium/chromecast/shell/CastWebContentsFragment.java",
Zhiheng Vincent Li180905f52018-03-14 21:36:35119 "$java_src_dir/org/chromium/chromecast/shell/CastWebContentsIntentUtils.java",
thoren9540c6d2017-05-22 20:07:04120 "$java_src_dir/org/chromium/chromecast/shell/CastWebContentsService.java",
Zhiheng Vincent Li7b37d582018-01-24 03:44:54121 "$java_src_dir/org/chromium/chromecast/shell/CastWebContentsSurfaceHelper.java",
Jan Lamecki78512142018-11-20 09:19:10122 "$java_src_dir/org/chromium/chromecast/shell/CastWebContentsScopes.java",
Jan Lamecki28d61682018-11-28 10:56:33123 "$java_src_dir/org/chromium/chromecast/shell/CastWebContentsView.java",
Simeon Anfinrud927ecc52017-12-08 19:55:25124 "$java_src_dir/org/chromium/chromecast/shell/LogcatElision.java",
Sandeep Vijayasekar4ddbad72018-01-25 02:20:11125 "$java_src_dir/org/chromium/chromecast/shell/ElidedLogcatProvider.java",
slan074ec342016-01-29 23:52:26126 ]
127
Andrew Grieve27a1f5092018-01-03 18:21:38128 android_manifest_for_lint = cast_shell_android_manifest
Tibor Goldschwendt95db95d2019-06-17 20:32:02129 min_sdk_version = 21
agrieveacd4e48e2016-10-13 00:17:14130
Sandeep Vijayasekar4ddbad72018-01-25 02:20:11131 srcjar_deps = [
132 ":cast_shell_build_config_gen",
133 ":logs_provider_aidl",
Jan Lamecki7df3c64a2018-11-30 12:01:42134 "//chromecast/browser:java_enums",
Sandeep Vijayasekar4ddbad72018-01-25 02:20:11135 ]
thoren9540c6d2017-05-22 20:07:04136
slan074ec342016-01-29 23:52:26137 deps = [
Simeon Anfinrude2258e42017-08-28 21:20:43138 ":cast_audio_manager_java",
139 ":cast_intents_java",
slan074ec342016-01-29 23:52:26140 ":cast_shell_android_resources",
agrieveacd4e48e2016-10-13 00:17:14141 ":cast_shell_manifest",
Simeon Anfinrudbfac5d92018-02-21 21:16:58142 ":reactive_android_java",
slan074ec342016-01-29 23:52:26143 "//base:base_java",
144 "//chromecast/base:base_java",
Simeon Anfinrud08677dd2019-06-30 23:30:47145 "//chromecast/media/cma/backend/android:audio_track_java",
Bryan Henryf9be8cc2017-06-09 01:36:24146 "//components/crash/android:java",
Jinsuk Kimd86d75972018-07-05 06:32:05147 "//components/embedder_support/android:content_view_java",
Attila Uygun1a5f9412018-06-05 09:58:01148 "//components/embedder_support/android:view_java",
Joshua Perazaf890e4b2019-01-03 19:19:02149 "//components/minidump_uploader:minidump_uploader_java",
slan074ec342016-01-29 23:52:26150 "//content/public/android:content_java",
slan074ec342016-01-29 23:52:26151 "//media/base/android:media_java",
152 "//net/android:net_java",
Brandon Mousseau2022d45d2019-06-11 20:02:37153 "//third_party/android_deps:com_android_support_support_compat_java",
Peter Wen02ff5382019-03-13 18:13:38154 "//third_party/android_deps:com_android_support_support_core_utils_java",
slan074ec342016-01-29 23:52:26155 "//ui/android:ui_java",
156 ]
Chris Kuiper3b76c8f522017-05-11 23:38:23157
Elvin Lee0622dff2018-12-14 17:44:12158 if (is_android_things_non_public) {
Alex Leung61dea442018-12-11 18:53:38159 deps += [ ":cast_shell_android_things_sys_info_java" ]
Andrei Pascovici358545d2018-05-19 01:33:03160 if (enable_assistant) {
161 deps += [ "//chromecast/internal/assistant/ui:boot_parameters_java" ]
162 }
Aidan Wolterd6c24152018-04-09 18:14:17163 }
slan074ec342016-01-29 23:52:26164}
thoren9540c6d2017-05-22 20:07:04165
Alex Leung61dea442018-12-11 18:53:38166if (is_android_things_non_public && !build_for_android_things_n) {
167 android_library("cast_shell_android_things_sys_info_java") {
168 java_files = [ "//chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastSysInfoAndroidThings.java" ]
169 deps = [
170 "//base:base_java",
171 "//chromecast/internal/android/prebuilt/things:support_lib_java",
172 ]
173 }
174
175 generate_jni("cast_shell_android_things_sys_info_jni_headers") {
176 sources = [
177 "//chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastSysInfoAndroidThings.java",
178 ]
179 deps = [
180 "//chromecast/internal/android/prebuilt/things:support_lib_java",
181 ]
Alex Leung61dea442018-12-11 18:53:38182 }
183}
184
thoren9540c6d2017-05-22 20:07:04185junit_binary("cast_shell_junit_tests") {
Sandeep Vijayasekare527bc42017-09-19 20:54:01186 java_files = [
Simeon Anfinrud9784c172018-03-29 05:17:40187 "junit/src/org/chromium/chromecast/shell/AsyncTaskRunnerTest.java",
Simeon Anfinrud35420342018-02-27 22:22:48188 "junit/src/org/chromium/chromecast/shell/CastAudioManagerTest.java",
shyamccd3df32018-08-10 21:43:43189 "junit/src/org/chromium/chromecast/shell/CastAudioFocusRequestTest.java",
Zhiheng Vincent Li3d99ccc2018-06-13 23:26:06190 "junit/src/org/chromium/chromecast/shell/CastCommandLineHelperTest.java",
Simeon Anfinrudfec44752018-03-07 16:03:03191 "junit/src/org/chromium/chromecast/shell/CastWebContentsActivityTest.java",
Sandeep Vijayasekare527bc42017-09-19 20:54:01192 "junit/src/org/chromium/chromecast/shell/CastWebContentsComponentTest.java",
Zhiheng Vincent Li180905f52018-03-14 21:36:35193 "junit/src/org/chromium/chromecast/shell/CastWebContentsIntentUtilsTest.java",
Simeon Anfinrudacf4b982018-08-15 00:39:49194 "junit/src/org/chromium/chromecast/shell/CastWebContentsServiceTest.java",
Simeon Anfinrud3a2e44cc2018-04-17 20:29:43195 "junit/src/org/chromium/chromecast/shell/CastWebContentsSurfaceHelperTest.java",
Simeon Anfinrudbfac5d92018-02-21 21:16:58196 "junit/src/org/chromium/chromecast/shell/LocalBroadcastReceiverScopeTest.java",
Simeon Anfinrud927ecc52017-12-08 19:55:25197 "junit/src/org/chromium/chromecast/shell/LogcatElisionUnitTest.java",
Sandeep Vijayasekar4ddbad72018-01-25 02:20:11198 "junit/src/org/chromium/chromecast/shell/ElidedLogcatProviderUnitTest.java",
Sandeep Vijayasekare527bc42017-09-19 20:54:01199 ]
thoren9540c6d2017-05-22 20:07:04200
201 srcjar_deps = [ ":cast_shell_build_config_gen" ]
202
203 deps = [
Simeon Anfinrudf28465492017-08-30 17:21:44204 ":cast_intents_java",
thoren9540c6d2017-05-22 20:07:04205 ":cast_shell_java",
Sandeep Vijayasekar27b285d2018-05-02 00:26:41206 "//base:base_java_test_support",
Simeon Anfinrudbc3cd02b2018-04-18 02:12:33207 "//base:base_junit_test_support",
Simeon Anfinrudacf4b982018-08-15 00:39:49208 "//chromecast/base:cast_base_test_utils_java",
thoren9540c6d2017-05-22 20:07:04209 "//content/public/android:content_java",
Peter Wen02ff5382019-03-13 18:13:38210 "//third_party/android_deps:com_android_support_support_core_utils_java",
Simeon Anfinrud927ecc52017-12-08 19:55:25211 "//third_party/hamcrest:hamcrest_java",
thoren9540c6d2017-05-22 20:07:04212 ]
213}