blob: 710ff3c7b4c9dcf8be7d04e9ac9e4044ea77bd23 [file] [log] [blame]
# Copyright 2016 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/android/rules.gni")
import("//chromecast/chromecast.gni")
import("//media/media_options.gni")
import("//third_party/jni_zero/jni_zero.gni")
assert(is_android)
cast_shell_android_manifest =
"$root_gen_dir/cast_shell_manifest/AndroidManifest.xml"
jinja_template("cast_shell_manifest") {
input = "apk/AndroidManifest.xml.jinja2"
output = cast_shell_android_manifest
}
foreach(device_type, android_device_types) {
jinja_template("cast_browser_${device_type}_manifest") {
input = "apk/CastBrowserAndroidManifest.xml.jinja2"
output =
"$root_gen_dir/cast_browser_${device_type}_manifest.AndroidManifest.xml"
variables = [
"cast_build_incremental=$cast_build_incremental",
"cast_device_type=${device_type}",
"target_cpu=${target_cpu}",
"browser_packaging=BROWSER_PACKAGING_BUNDLE",
]
}
}
common_resources = [
"apk/res-values/values-v17/styles.xml",
"apk/res-values/values/colors.xml",
"apk/res-values/values/strings.xml",
]
extra_resources = [
"apk/res/drawable-anydpi-v26/ic_settings_cast.xml",
"apk/res/drawable-hdpi/ic_notification_cast.png",
"apk/res/drawable-hdpi/ic_settings_cast.png",
"apk/res/drawable-mdpi/ic_notification_cast.png",
"apk/res/drawable-mdpi/ic_settings_cast.png",
"apk/res/drawable-nodpi/ic_cast_vector.xml",
"apk/res/drawable-xhdpi/ic_notification_cast.png",
"apk/res/drawable-xhdpi/ic_settings_cast.png",
"apk/res/drawable-xxhdpi/ic_notification_cast.png",
"apk/res/drawable-xxhdpi/ic_settings_cast.png",
"apk/res/drawable-xxxhdpi/ic_notification_cast.png",
"apk/res/drawable-xxxhdpi/ic_settings_cast.png",
"apk/res/layout/cast_web_contents_activity.xml",
]
android_resources("cast_shell_android_resources") {
android_manifest = cast_shell_android_manifest
android_manifest_dep = ":cast_shell_manifest"
sources = common_resources + extra_resources
}
android_resources("cast_browser_android_resources") {
sources = extra_resources
}
android_resources("cast_shell_android_stub_resources") {
android_manifest = cast_shell_android_manifest
android_manifest_dep = ":cast_shell_manifest"
sources = common_resources
}
android_library("cast_command_line_helper_java") {
java_src_dir = "//chromecast/browser/android/apk/src"
sources = [
"$java_src_dir/org/chromium/chromecast/shell/CastCommandLineHelper.java",
]
deps = [ "//base:base_java" ]
}
android_library("cast_intents_java") {
java_src_dir = "//chromecast/browser/android/apk/src"
sources = [ "$java_src_dir/org/chromium/chromecast/shell/CastIntents.java" ]
}
android_aidl("logs_provider_aidl") {
java_src_dir = "//chromecast/browser/android/apk/src"
interface_file =
"$java_src_dir/org/chromium/chromecast/shell/logs_provider_service.aidl"
sources =
[ "$java_src_dir/org/chromium/chromecast/shell/IDeviceLogsProvider.aidl" ]
}
android_library("reactive_android_java") {
java_src_dir = "//chromecast/browser/android/apk/src"
sources = [
"$java_src_dir/org/chromium/chromecast/shell/AsyncTaskRunner.java",
"$java_src_dir/org/chromium/chromecast/shell/BroadcastReceiverScope.java",
"$java_src_dir/org/chromium/chromecast/shell/HandlerScheduler.java",
"$java_src_dir/org/chromium/chromecast/shell/LocalBroadcastReceiverScope.java",
]
deps = [
"//base:base_java",
"//build/android:build_java",
"//chromecast/base:base_java",
"//third_party/androidx:androidx_localbroadcastmanager_localbroadcastmanager_java",
"//third_party/jni_zero:jni_zero_java",
]
}
android_library("crash_handler_java") {
java_src_dir = "//chromecast/browser/android/apk/src"
sources = [
"$java_src_dir/org/chromium/chromecast/shell/AndroidAppLogcatProvider.java",
"$java_src_dir/org/chromium/chromecast/shell/CastCrashHandler.java",
"$java_src_dir/org/chromium/chromecast/shell/CastCrashUploader.java",
"$java_src_dir/org/chromium/chromecast/shell/CastCrashUploaderFactory.java",
"$java_src_dir/org/chromium/chromecast/shell/ElidedLogcatProvider.java",
"$java_src_dir/org/chromium/chromecast/shell/LogcatElision.java",
]
srcjar_deps = [ ":logs_provider_aidl" ]
deps = [
":reactive_android_java",
"//base:base_java",
"//chromecast/base:base_java",
"//components/minidump_uploader:minidump_uploader_java",
"//third_party/androidx:androidx_annotation_annotation_java",
"//third_party/jni_zero:jni_zero_java",
]
annotation_processor_deps =
[ "//components/module_installer/android:module_interface_processor" ]
}
generate_jni("crash_handler_jni_headers") {
sources = [ "apk/src/org/chromium/chromecast/shell/CastCrashHandler.java" ]
}
common_android_library_deps = [
":cast_command_line_helper_java",
":cast_intents_java",
":crash_handler_java",
":reactive_android_java",
"//base:base_java",
"//build/android:build_java",
"//chromecast/base:base_java",
"//chromecast/media/cma/backend/android:audio_track_java",
"//components/crash/android:java",
"//components/embedder_support/android:content_view_java",
"//components/embedder_support/android:view_java",
"//components/module_installer/android:module_installer_java",
"//components/module_installer/android:module_interface_java",
"//content/public/android:content_java",
"//media/base/android:media_java",
"//net/android:net_java",
"//third_party/androidx:androidx_annotation_annotation_java",
"//third_party/androidx:androidx_core_core_java",
"//third_party/jni_zero:jni_zero_java",
# TODO(slan): We may need to pass this in as a parameter.
"//third_party/androidx:androidx_localbroadcastmanager_localbroadcastmanager_java",
"//ui/android:ui_java",
]
common_java_src_dir = "//chromecast/browser/android/apk/src"
common_java_sources = [
"$common_java_src_dir/org/chromium/chromecast/shell/CastBrowser.java",
"$common_java_src_dir/org/chromium/chromecast/shell/CastBrowserApplication.java",
"$common_java_src_dir/org/chromium/chromecast/shell/CastBrowserHelper.java",
"$common_java_src_dir/org/chromium/chromecast/shell/CastBrowserImpl.java",
"$common_java_src_dir/org/chromium/chromecast/shell/CastBrowserService.java",
"$common_java_src_dir/org/chromium/chromecast/shell/CastContentWindowAndroid.java",
"$common_java_src_dir/org/chromium/chromecast/shell/CastMetricsHelper.java",
"$common_java_src_dir/org/chromium/chromecast/shell/CastWebContentsActivity.java",
"$common_java_src_dir/org/chromium/chromecast/shell/CastWebContentsComponent.java",
"$common_java_src_dir/org/chromium/chromecast/shell/CastWebContentsIntentUtils.java",
"$common_java_src_dir/org/chromium/chromecast/shell/CastWebContentsScopes.java",
"$common_java_src_dir/org/chromium/chromecast/shell/CastWebContentsSurfaceHelper.java",
"$common_java_src_dir/org/chromium/chromecast/shell/TaskRemovedMonitorService.java",
"$common_java_src_dir/org/chromium/chromecast/shell/WebContentsRegistry.java",
]
generate_product_config_srcjar("product_config_for_browser") {
java_package = "org.chromium.chromecast.shell"
}
generate_jni("jni_headers") {
sources = [
"apk/src/org/chromium/chromecast/shell/CastContentWindowAndroid.java",
"apk/src/org/chromium/chromecast/shell/CastMetricsHelper.java",
]
deps = [ "//components/android_autofill/browser:jni_headers_features" ]
}
android_library("cast_shell_java") {
sources = common_java_sources
resources_package = "org.chromium.chromecast.shell"
srcjar_deps = [
":jni_headers",
":product_config_for_browser",
"//chromecast/browser:java_enums",
]
jar_excluded_patterns = [ "*/ProductConfig.class" ]
deps = common_android_library_deps + [
":cast_shell_android_resources",
":cast_shell_manifest",
]
annotation_processor_deps =
[ "//components/module_installer/android:module_interface_processor" ]
}
android_library("cast_browser_java") {
sources = common_java_sources
resources_package = "org.chromium.chromecast.shell"
srcjar_deps = [
":jni_headers",
"//chromecast/browser:java_enums",
]
jar_excluded_patterns = [ "*/ProductConfig.class" ]
deps = common_android_library_deps + [ ":cast_browser_android_resources" ]
annotation_processor_deps =
[ "//components/module_installer/android:module_interface_processor" ]
}
robolectric_binary("cast_shell_junit_tests") {
sources = [
"junit/src/org/chromium/chromecast/shell/AsyncTaskRunnerTest.java",
"junit/src/org/chromium/chromecast/shell/BroadcastReceiverScopeTest.java",
"junit/src/org/chromium/chromecast/shell/CastWebContentsActivityTest.java",
"junit/src/org/chromium/chromecast/shell/CastWebContentsComponentTest.java",
"junit/src/org/chromium/chromecast/shell/CastWebContentsIntentUtilsTest.java",
"junit/src/org/chromium/chromecast/shell/CastWebContentsSurfaceHelperTest.java",
"junit/src/org/chromium/chromecast/shell/ElidedLogcatProviderUnitTest.java",
"junit/src/org/chromium/chromecast/shell/HandlerSchedulerTest.java",
"junit/src/org/chromium/chromecast/shell/LocalBroadcastReceiverScopeTest.java",
"junit/src/org/chromium/chromecast/shell/LogcatElisionUnitTest.java",
"junit/src/org/chromium/chromecast/shell/TaskRemovedMonitorServiceTest.java",
]
deps = [
":cast_intents_java",
":cast_shell_java",
":crash_handler_java",
":reactive_android_java",
"//base:base_java",
"//base:base_java_test_support",
"//base:base_junit_test_support",
"//build/android:build_java",
"//chromecast/base:base_java",
"//chromecast/base:cast_base_test_utils_java",
"//content/public/android:content_java",
"//testing/android/junit:junit_test_support",
"//third_party/androidx:androidx_localbroadcastmanager_localbroadcastmanager_java",
"//third_party/androidx:androidx_test_core_java",
"//third_party/hamcrest:hamcrest_java",
"//third_party/jni_zero:jni_zero_java",
]
}