| # 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", |
| ] |
| } |