| # Copyright 2014 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/config/android/config.gni") |
| import("//build/config/android/rules.gni") |
| import("//build/util/process_version.gni") |
| import("//build_overrides/v8.gni") |
| import("//chrome/android/chrome_public_apk_tmpl.gni") |
| import("//chrome/chrome_paks.gni") |
| import("//chrome/common/features.gni") |
| import("//chrome/process_version_rc_template.gni") # For branding_file_path. |
| import("//testing/test.gni") |
| import("//third_party/icu/config.gni") |
| import("//third_party/protobuf/proto_library.gni") |
| import("//tools/resources/generate_resource_whitelist.gni") |
| import("channel.gni") |
| import("java_sources.gni") |
| |
| manifest_package = "org.chromium.chrome" |
| |
| chrome_public_jinja_variables = default_chrome_public_jinja_variables + |
| [ "manifest_package=$manifest_package" ] |
| chrome_public_android_manifest = |
| "$target_gen_dir/chrome_public_apk/AndroidManifest.xml" |
| chrome_sync_shell_android_manifest = |
| "$target_gen_dir/chrome_sync_shell_apk/AndroidManifest.xml" |
| |
| chrome_sync_shell_jinja_variables = |
| default_chrome_public_jinja_variables + |
| [ "manifest_package=org.chromium.chrome.sync_shell" ] |
| |
| if (enable_resource_whitelist_generation) { |
| monochrome_resource_whitelist = |
| "$target_gen_dir/monochrome_resource_whitelist.txt" |
| } |
| |
| jinja_template("chrome_public_android_manifest") { |
| input = "java/AndroidManifest.xml" |
| output = chrome_public_android_manifest |
| variables = chrome_public_jinja_variables |
| variables += [ |
| "min_sdk_version=16", |
| "target_sdk_version=23", |
| ] |
| } |
| |
| java_cpp_template("chrome_webapk_signature_srcjar") { |
| sources = [ |
| "java/src/org/chromium/chrome/browser/webapps/ChromeWebApkHostSignature.template", |
| ] |
| package_name = "org/chromium/chrome/browser/webapps" |
| inputs = [ |
| "webapk/channel_keys.h", |
| ] |
| defines = [ "channel_" + android_channel ] |
| } |
| |
| jinja_template("chrome_sync_shell_android_manifest") { |
| input = "java/AndroidManifest.xml" |
| output = chrome_sync_shell_android_manifest |
| variables = chrome_sync_shell_jinja_variables |
| variables += [ |
| "min_sdk_version=16", |
| "target_sdk_version=22", |
| ] |
| } |
| |
| locale_pak_resources("chrome_locale_paks") { |
| sources = [ |
| "$root_out_dir/locales/am.pak", |
| "$root_out_dir/locales/ar.pak", |
| "$root_out_dir/locales/bg.pak", |
| "$root_out_dir/locales/ca.pak", |
| "$root_out_dir/locales/cs.pak", |
| "$root_out_dir/locales/da.pak", |
| "$root_out_dir/locales/de.pak", |
| "$root_out_dir/locales/el.pak", |
| "$root_out_dir/locales/en-GB.pak", |
| "$root_out_dir/locales/en-US.pak", |
| "$root_out_dir/locales/es-419.pak", |
| "$root_out_dir/locales/es.pak", |
| "$root_out_dir/locales/fa.pak", |
| "$root_out_dir/locales/fi.pak", |
| "$root_out_dir/locales/fil.pak", |
| "$root_out_dir/locales/fr.pak", |
| "$root_out_dir/locales/he.pak", |
| "$root_out_dir/locales/hi.pak", |
| "$root_out_dir/locales/hr.pak", |
| "$root_out_dir/locales/hu.pak", |
| "$root_out_dir/locales/id.pak", |
| "$root_out_dir/locales/it.pak", |
| "$root_out_dir/locales/ja.pak", |
| "$root_out_dir/locales/ko.pak", |
| "$root_out_dir/locales/lt.pak", |
| "$root_out_dir/locales/lv.pak", |
| "$root_out_dir/locales/nb.pak", |
| "$root_out_dir/locales/nl.pak", |
| "$root_out_dir/locales/pl.pak", |
| "$root_out_dir/locales/pt-BR.pak", |
| "$root_out_dir/locales/pt-PT.pak", |
| "$root_out_dir/locales/ro.pak", |
| "$root_out_dir/locales/ru.pak", |
| "$root_out_dir/locales/sk.pak", |
| "$root_out_dir/locales/sl.pak", |
| "$root_out_dir/locales/sr.pak", |
| "$root_out_dir/locales/sv.pak", |
| "$root_out_dir/locales/sw.pak", |
| "$root_out_dir/locales/th.pak", |
| "$root_out_dir/locales/tr.pak", |
| "$root_out_dir/locales/uk.pak", |
| "$root_out_dir/locales/vi.pak", |
| "$root_out_dir/locales/zh-CN.pak", |
| "$root_out_dir/locales/zh-TW.pak", |
| ] |
| |
| deps = [ |
| "//chrome:packed_resources", |
| ] |
| } |
| |
| android_resources("chrome_java_resources") { |
| resource_dirs = [ |
| "java/res", |
| "//chrome/android/java/res_chromium", |
| ] |
| deps = [ |
| ":chrome_locale_paks", |
| ":chrome_strings_grd", |
| "//chrome/app:java_strings_grd", |
| "//components/policy:app_restrictions_resources", |
| "//components/strings:components_locale_settings_grd", |
| "//components/strings:components_strings_grd", |
| "//content/public/android:content_java_resources", |
| "//third_party/android_data_chart:android_data_chart_java_resources", |
| "//third_party/android_media:android_media_resources", |
| "//third_party/android_tools:android_support_design_java", |
| "//third_party/android_tools:android_support_v7_appcompat_java", |
| "//third_party/android_tools:android_support_v7_recyclerview_java", |
| ] |
| custom_package = "org.chromium.chrome" |
| } |
| |
| java_strings_grd("chrome_strings_grd") { |
| grd_file = "java/strings/android_chrome_strings.grd" |
| outputs = [ |
| "values-am/android_chrome_strings.xml", |
| "values-ar/android_chrome_strings.xml", |
| "values-bg/android_chrome_strings.xml", |
| "values-ca/android_chrome_strings.xml", |
| "values-cs/android_chrome_strings.xml", |
| "values-da/android_chrome_strings.xml", |
| "values-de/android_chrome_strings.xml", |
| "values-el/android_chrome_strings.xml", |
| "values/android_chrome_strings.xml", |
| "values-en-rGB/android_chrome_strings.xml", |
| "values-es/android_chrome_strings.xml", |
| "values-es-rUS/android_chrome_strings.xml", |
| "values-fa/android_chrome_strings.xml", |
| "values-fi/android_chrome_strings.xml", |
| "values-tl/android_chrome_strings.xml", |
| "values-fr/android_chrome_strings.xml", |
| "values-hi/android_chrome_strings.xml", |
| "values-hr/android_chrome_strings.xml", |
| "values-hu/android_chrome_strings.xml", |
| "values-in/android_chrome_strings.xml", |
| "values-it/android_chrome_strings.xml", |
| "values-iw/android_chrome_strings.xml", |
| "values-ja/android_chrome_strings.xml", |
| "values-ko/android_chrome_strings.xml", |
| "values-lt/android_chrome_strings.xml", |
| "values-lv/android_chrome_strings.xml", |
| "values-nl/android_chrome_strings.xml", |
| "values-nb/android_chrome_strings.xml", |
| "values-pl/android_chrome_strings.xml", |
| "values-pt-rBR/android_chrome_strings.xml", |
| "values-pt-rPT/android_chrome_strings.xml", |
| "values-ro/android_chrome_strings.xml", |
| "values-ru/android_chrome_strings.xml", |
| "values-sk/android_chrome_strings.xml", |
| "values-sl/android_chrome_strings.xml", |
| "values-sr/android_chrome_strings.xml", |
| "values-sv/android_chrome_strings.xml", |
| "values-sw/android_chrome_strings.xml", |
| "values-th/android_chrome_strings.xml", |
| "values-tr/android_chrome_strings.xml", |
| "values-uk/android_chrome_strings.xml", |
| "values-vi/android_chrome_strings.xml", |
| "values-zh-rCN/android_chrome_strings.xml", |
| "values-zh-rTW/android_chrome_strings.xml", |
| ] |
| } |
| |
| android_library("chrome_java") { |
| deps = [ |
| ":chrome_public_android_manifest", |
| ":chrome_public_apk_template_resources", |
| "//base:base_java", |
| "//chrome/android/webapk/libs/client:client_java", |
| "//chrome/android/webapk/libs/common:common_java", |
| "//chrome/android/webapk/libs/runtime_library:webapk_service_aidl_java", |
| "//components/safe_json/android:safe_json_java", |
| "//components/spellcheck/browser/android:java", |
| "//components/variations/android:variations_java", |
| "//components/web_contents_delegate_android:web_contents_delegate_android_java", |
| "//components/web_restrictions:web_restrictions_java", |
| "//content/public/android:content_java", |
| "//device/geolocation:geolocation_java", |
| "//media/base/android:media_java", |
| "//media/capture/content/android:screen_capture_java", |
| "//media/capture/video/android:capture_java", |
| "//media/midi:midi_java", |
| "//mojo/public/java:bindings", |
| "//mojo/public/java:system", |
| "//net/android:net_java", |
| "//printing:printing_java", |
| "//third_party/WebKit/public:android_mojo_bindings_java", |
| "//third_party/WebKit/public:blink_headers_java", |
| "//third_party/android_data_chart:android_data_chart_java", |
| "//third_party/android_media:android_media_java", |
| "//third_party/android_protobuf:protobuf_nano_javalib", |
| "//third_party/android_swipe_refresh:android_swipe_refresh_java", |
| "//third_party/android_tools:android_gcm_java", |
| "//third_party/android_tools:android_support_annotations_java", |
| "//third_party/android_tools:android_support_design_java", |
| "//third_party/android_tools:android_support_v13_java", |
| "//third_party/android_tools:android_support_v7_appcompat_java", |
| "//third_party/android_tools:android_support_v7_mediarouter_java", |
| "//third_party/android_tools:android_support_v7_recyclerview_java", |
| "//third_party/cacheinvalidation:cacheinvalidation_javalib", |
| "//third_party/cacheinvalidation:cacheinvalidation_proto_java", |
| "//third_party/custom_tabs_client:custom_tabs_support_lib", |
| "//third_party/gif_player:gif_player_java", |
| "//third_party/jsr-305:jsr_305_javalib", |
| "//third_party/leakcanary:leakcanary_java", |
| "//ui/android:ui_java", |
| "//url/mojo:url_mojom_gurl_java", |
| google_play_services_library, |
| ] |
| |
| srcjar_deps = [ |
| ":chrome_android_java_enums_srcjar", |
| ":chrome_webapk_signature_srcjar", |
| ":chrome_android_java_google_api_keys_srcjar", |
| ":chrome_version_srcjar", |
| ":resource_id_javagen", |
| "//base:base_build_config_gen", |
| "//chrome:content_setting_javagen", |
| "//chrome:content_settings_type_javagen", |
| "//chrome:data_use_ui_message_enum_javagen", |
| "//chrome:signin_metrics_enum_javagen", |
| ] |
| |
| # New versions of BuildConfig.java will be created when creating an apk. |
| jar_excluded_patterns = [ "*/BuildConfig.class" ] |
| |
| # Manifest used for linting (determining unused resources). |
| android_manifest = chrome_public_android_manifest |
| |
| # TODO(sievers): Split java code into components. Not everything |
| # is really all that UI related here. |
| if (android_java_ui) { |
| # From java_sources.gni. |
| java_files = chrome_java_sources |
| |
| srcjar_deps += [ |
| "//chrome:page_info_connection_type_javagen", |
| "//chrome:website_settings_action_javagen", |
| "//components/browsing_data/core:browsing_data_utils_java", |
| "//components/infobars/core:infobar_enums_java", |
| "//components/ntp_snippets:ntp_snippets_java_enums_srcjar", |
| "//components/ntp_tiles:ntp_tiles_enums_java", |
| "//components/offline_pages:offline_page_model_enums_java", |
| "//components/omnibox/browser:autocomplete_match_javagen", |
| "//components/omnibox/browser:autocomplete_match_type_javagen", |
| "//components/security_state:security_state_enums_java", |
| "//components/signin/core/browser:investigated_scenario_java", |
| ] |
| |
| deps += [ |
| ":chrome_java_resources", |
| ":document_tab_model_info_proto_java", |
| "//blimp/client/public:public_java", |
| "//components/bookmarks/common/android:bookmarks_java", |
| "//components/dom_distiller/content/browser/android:dom_distiller_content_java", |
| "//components/dom_distiller/core/android:dom_distiller_core_java", |
| "//components/gcm_driver/android:gcm_driver_java", |
| "//components/gcm_driver/instance_id/android:instance_id_driver_java", |
| "//components/invalidation/impl:java", |
| "//components/location/android:location_java", |
| "//components/navigation_interception/android:navigation_interception_java", |
| "//components/ntp_tiles/android:ntp_tiles_java", |
| "//components/policy/android:policy_java", |
| "//components/precache/android:precache_java", |
| "//components/safe_json/android:safe_json_java", |
| "//components/signin/core/browser/android:java", |
| "//components/sync/android:sync_java", |
| "//components/url_formatter/android:url_formatter_java", |
| "//components/web_contents_delegate_android:web_contents_delegate_android_java", |
| "//ui/base/mojo:mojo_bindings_java", |
| ] |
| } |
| |
| # VrActivity currently depends on ChromeTabbedActivity which is part of |
| # android_java_ui. |
| if (enable_vr_shell && android_java_ui) { |
| java_files += chrome_vr_java_sources |
| deps += [ |
| "//third_party/gvr-android-sdk:gvr_base_java", |
| "//third_party/gvr-android-sdk:gvr_common_java", |
| ] |
| } |
| } |
| |
| action("chrome_android_java_google_api_keys_srcjar") { |
| script = "//build/android/gyp/java_google_api_keys.py" |
| _output_path = "$target_gen_dir/$target_name.srcjar" |
| outputs = [ |
| _output_path, |
| ] |
| args = [ |
| "--srcjar", |
| rebase_path(_output_path, root_build_dir), |
| ] |
| } |
| |
| java_cpp_enum("chrome_android_java_enums_srcjar") { |
| sources = [ |
| "//chrome/browser/android/activity_type_ids.h", |
| "//chrome/browser/android/feedback/connectivity_checker.cc", |
| "//chrome/browser/android/policy/policy_auditor.cc", |
| "//chrome/browser/android/shortcut_info.h", |
| "//chrome/browser/android/tab_android.h", |
| "//chrome/browser/profiles/profile_metrics.h", |
| "//chrome/browser/ui/android/infobars/infobar_android.h", |
| ] |
| } |
| |
| proto_java_library("document_tab_model_info_proto_java") { |
| proto_path = "java/src/org/chromium/chrome/browser/tabmodel/document" |
| sources = [ |
| "$proto_path/document_tab_model_info.proto", |
| ] |
| } |
| |
| java_cpp_template("resource_id_javagen") { |
| sources = [ |
| "java/ResourceId.template", |
| ] |
| package_name = "org/chromium/chrome/browser" |
| inputs = [ |
| "../browser/android/resource_id.h", |
| ] |
| } |
| |
| junit_binary("chrome_junit_tests") { |
| # From java_sources.gni. |
| java_files = chrome_junit_test_java_sources |
| deps = [ |
| ":chrome_java", |
| ":chrome_java_resources", |
| "//base:base_java", |
| "//base:base_java_test_support", |
| "//chrome/android/webapk/libs/common:common_java", |
| "//components/bookmarks/common/android:bookmarks_java", |
| "//components/invalidation/impl:java", |
| "//components/sync:sync_java_test_support", |
| "//components/sync/android:sync_java", |
| "//components/url_formatter/android:url_formatter_java", |
| "//components/web_restrictions:web_restrictions_java", |
| "//content/public/android:content_java", |
| "//device/geolocation:geolocation_java", |
| "//net/android:net_java", |
| "//third_party/WebKit/public:blink_headers_java", |
| "//third_party/android_tools:android_support_v7_mediarouter_java", |
| "//third_party/android_tools:android_support_v7_recyclerview_java", |
| "//third_party/cacheinvalidation:cacheinvalidation_javalib", |
| "//third_party/hamcrest:hamcrest_java", |
| "//ui/android:ui_java", |
| google_play_services_library, |
| ] |
| srcjar_deps = [ "//base:base_build_config_gen" ] |
| } |
| |
| chrome_version_java_dir = "$root_gen_dir/templates/chrome_version_java" |
| chrome_version_java_file = "$chrome_version_java_dir/org/chromium/chrome/browser/ChromeVersionConstants.java" |
| process_version("chrome_version_java") { |
| template_file = "java/ChromeVersionConstants.java.version" |
| sources = [ |
| "//chrome/VERSION", |
| branding_file_path, |
| ] |
| output = chrome_version_java_file |
| extra_args = [ |
| "-e", |
| "CHANNEL=str.upper('$android_channel')", |
| ] |
| } |
| |
| zip("chrome_version_srcjar") { |
| inputs = [ |
| chrome_version_java_file, |
| ] |
| output = "$target_gen_dir/$target_name.srcjar" |
| base_dir = chrome_version_java_dir |
| deps = [ |
| ":chrome_version_java", |
| ] |
| } |
| |
| android_library("chrome_test_java") { |
| testonly = true |
| |
| # From java_sources.gni. |
| java_files = chrome_test_java_sources |
| |
| deps = [ |
| "//base:base_java", |
| "//base:base_java_test_support", |
| "//chrome/android:chrome_java", |
| "//chrome/android/webapk/libs/common:common_java", |
| "//chrome/android/webapk/libs/runtime_library:webapk_service_aidl_java", |
| "//chrome/test/android:chrome_java_test_support", |
| "//components/bookmarks/common/android:bookmarks_java", |
| "//components/dom_distiller/core/android:dom_distiller_core_java", |
| "//components/gcm_driver/android:gcm_driver_java", |
| "//components/gcm_driver/instance_id/android:instance_id_driver_java", |
| "//components/gcm_driver/instance_id/android:instance_id_driver_test_support_java", |
| "//components/invalidation/impl:java", |
| "//components/invalidation/impl:javatests", |
| "//components/location/android:location_java", |
| "//components/navigation_interception/android:navigation_interception_java", |
| "//components/policy/android:policy_java", |
| "//components/precache/android:precache_java", |
| "//components/precache/android:precache_javatests", |
| "//components/sync:sync_java_test_support", |
| "//components/sync/android:sync_java", |
| "//components/sync/android:sync_javatests", |
| "//components/url_formatter/android:url_formatter_java", |
| "//components/web_contents_delegate_android:web_contents_delegate_android_java", |
| "//components/web_restrictions:web_restrictions_java", |
| "//content/public/android:content_java", |
| "//content/public/test/android:content_java_test_support", |
| "//device/geolocation:geolocation_java", |
| "//device/geolocation:geolocation_java_test_support", |
| "//mojo/public/java:bindings", |
| "//mojo/public/java:system", |
| "//net/android:net_java", |
| "//net/android:net_java_test_support", |
| "//printing:printing_java", |
| "//third_party/WebKit/public:android_mojo_bindings_java", |
| "//third_party/WebKit/public:blink_headers_java", |
| "//third_party/android_tools:android_support_design_java", |
| "//third_party/android_tools:android_support_v7_appcompat_java", |
| "//third_party/android_tools:android_support_v7_recyclerview_java", |
| "//third_party/android_tools:legacy_http_javalib", |
| "//third_party/cacheinvalidation:cacheinvalidation_javalib", |
| "//third_party/custom_tabs_client:custom_tabs_support_lib", |
| "//third_party/jsr-305:jsr_305_javalib", |
| "//ui/android:ui_java", |
| "//ui/android:ui_javatests", |
| google_play_services_library, |
| ] |
| |
| data = [ |
| "//chrome/test/data/android/", |
| "//chrome/test/data/banners/", |
| "//chrome/test/data/encoding_tests/auto_detect/Big5_with_no_encoding_specified.html", |
| "//chrome/test/data/geolocation/", |
| "//chrome/test/data/google/", |
| "//chrome/test/data/image_search/valid.png", |
| "//chrome/test/data/navigation_interception/", |
| "//chrome/test/data/notifications/", |
| "//chrome/test/data/popup_blocker/", |
| "//chrome/test/data/push_messaging/", |
| "//chrome/test/data/translate/", |
| "//chrome/test/data/webapps/", |
| "//chrome/test/media_router/resources/", |
| "//content/test/data/android/geolocation.html", |
| "//content/test/data/android/media_permissions.html", |
| "//content/test/data/media/getusermedia.html", |
| "//content/test/data/media/session/", |
| "//content/test/data/media/webrtc_test_utilities.js", |
| ] |
| } |
| |
| # Overrides icon / name defined in chrome_java_resources. |
| android_resources("chrome_public_apk_resources") { |
| resource_dirs = [ "java/res_chromium" ] |
| |
| # Dep needed to ensure override works properly. |
| deps = [ |
| ":chrome_java_resources", |
| ] |
| } |
| |
| # TODO(agrieve): Delete once downstream no longer references this target. |
| java_group("chrome_public_apk_assets") { |
| deps = [ |
| ":chrome_public_non_pak_assets", |
| ":chrome_public_pak_assets", |
| ] |
| } |
| |
| java_group("chrome_public_non_pak_assets") { |
| deps = [ |
| "//chrome/android/webapk/libs/runtime_library:runtime_library_assets", |
| "//third_party/icu:icu_assets", |
| "//v8:v8_external_startup_data_assets", |
| ] |
| } |
| |
| android_assets("chrome_public_pak_assets") { |
| sources = [ |
| "$root_out_dir/chrome_100_percent.pak", |
| "$root_out_dir/resources.pak", |
| ] |
| disable_compression = true |
| |
| deps = [ |
| "//chrome:packed_resources", |
| "//chrome/android/webapk/libs/runtime_library:runtime_library_assets", |
| "//third_party/icu:icu_assets", |
| "//v8:v8_external_startup_data_assets", |
| ] |
| } |
| |
| jinja_template_resources("chrome_public_apk_template_resources") { |
| resources = [ |
| "java/res_template/xml/chromebackupscheme.xml", |
| "java/res_template/xml/searchable.xml", |
| "java/res_template/xml/syncadapter.xml", |
| ] |
| res_dir = "java/res_template" |
| variables = chrome_public_jinja_variables |
| } |
| |
| jinja_template_resources("chrome_sync_shell_apk_template_resources") { |
| resources = [ |
| "java/res_template/xml/chromebackupscheme.xml", |
| "java/res_template/xml/searchable.xml", |
| "java/res_template/xml/syncadapter.xml", |
| ] |
| res_dir = "java/res_template" |
| variables = chrome_sync_shell_jinja_variables |
| } |
| |
| shared_library("chrome") { |
| sources = [ |
| "../app/android/chrome_main_delegate_android_initializer.cc", |
| "../browser/android/chrome_entry_point.cc", |
| ] |
| deps = [ |
| "//build/config/sanitizers:deps", |
| "//chrome:chrome_android_core", |
| ] |
| |
| if (is_android && use_order_profiling) { |
| deps += [ "//tools/cygprofile" ] |
| } |
| |
| public_configs = extra_chrome_shared_library_configs |
| } |
| |
| # Ensure that .pak files are built only once (build them in the default |
| # toolchain). |
| if (current_toolchain == default_toolchain) { |
| if (enable_resource_whitelist_generation) { |
| generate_resource_whitelist("monochrome_resource_whitelist") { |
| # Always use the 32-bit library's whitelist since the 64-bit one is |
| # webview-only. |
| if (!android_64bit_target_cpu) { |
| _fat_lib_toolchain = current_toolchain |
| } else { |
| _fat_lib_toolchain = android_secondary_abi_toolchain |
| } |
| deps = [ |
| ":monochrome($_fat_lib_toolchain)", |
| ] |
| |
| input = get_label_info(deps[0], "root_out_dir") + |
| "/libmonochrome$shlib_extension.whitelist" |
| output = monochrome_resource_whitelist |
| } |
| } |
| |
| chrome_paks("monochrome_paks") { |
| output_dir = "$target_gen_dir/$target_name" |
| |
| additional_extra_paks = [ "$root_gen_dir/android_webview/aw_resources.pak" ] |
| deps = [ |
| "//android_webview:generate_aw_resources", |
| ] |
| |
| if (enable_resource_whitelist_generation) { |
| repack_whitelist = monochrome_resource_whitelist |
| deps += [ ":monochrome_resource_whitelist" ] |
| } |
| } |
| } # current_toolchain == host_toolchain |
| |
| java_group("monochrome_assets") { |
| deps = [ |
| ":monochrome_pak_assets", |
| "//android_webview:monochrome_webview_assets", |
| ] |
| } |
| |
| android_assets("monochrome_pak_assets") { |
| sources = [ |
| "$target_gen_dir/monochrome_paks/chrome_100_percent.pak", |
| "$target_gen_dir/monochrome_paks/resources.pak", |
| ] |
| deps = [ |
| ":monochrome_paks", |
| ] |
| disable_compression = true |
| } |
| |
| # |
| # Only 32-bit //chrome/android/monochrome is needed, beside |
| # being built with 32-bit default toolchain, it is also built |
| # with secondary 32-bit toolchain in 64-bit platform because we |
| # need 64-bit //android_webview/monochrome and 32-bit this target |
| # for 64-bit APK. |
| if (!android_64bit_target_cpu || |
| current_toolchain == android_secondary_abi_toolchain) { |
| shared_library("monochrome") { |
| sources = [ |
| "../app/android/chrome_main_delegate_android_initializer.cc", |
| "../browser/android/monochrome_entry_point.cc", |
| ] |
| deps = [ |
| "//android_webview:common", |
| "//chrome:chrome_android_core", |
| ] |
| |
| configs -= [ "//build/config/android:hide_native_jni_exports" ] |
| if (is_android && use_order_profiling) { |
| deps += [ "//tools/cygprofile" ] |
| } |
| |
| public_configs = extra_chrome_shared_library_configs |
| } |
| } else { |
| group("monochrome_secondary_abi_lib") { |
| public_deps = [ |
| ":monochrome($android_secondary_abi_toolchain)", |
| ] |
| } |
| } |
| |
| shared_library("chrome_sync_shell") { |
| testonly = true |
| sources = [ |
| "../browser/android/chrome_entry_point.cc", |
| "../browser/android/chrome_sync_shell_main_delegate.cc", |
| "../browser/android/chrome_sync_shell_main_delegate.h", |
| "../browser/android/chrome_sync_shell_main_delegate_initializer.cc", |
| ] |
| deps = [ |
| "//build/config/sanitizers:deps", |
| "//chrome:chrome_android_core", |
| "//components/sync", |
| "//components/sync:test_support_sync_fake_server_android", |
| ] |
| } |
| |
| # Contains rules common to chrome_public_apk and chrome_sync_shell_apk |
| template("chrome_public_apk_tmpl_shared") { |
| chrome_public_apk_tmpl(target_name) { |
| forward_variables_from(invoker, "*") |
| |
| native_lib_version_rule = "//build/util:chrome_version_json" |
| |
| deps += [ |
| ":chrome_java", |
| ":chrome_public_apk_assets", |
| ":chrome_public_apk_resources", |
| "//base:base_java", |
| ] |
| } |
| } |
| |
| chrome_public_apk_tmpl_shared("chrome_public_apk") { |
| android_manifest = chrome_public_android_manifest |
| android_manifest_dep = ":chrome_public_android_manifest" |
| apk_name = "ChromePublic" |
| shared_libraries = [ ":chrome" ] |
| |
| deps = [] |
| } |
| |
| chrome_public_apk_tmpl_shared("chrome_sync_shell_apk") { |
| testonly = true |
| android_manifest = chrome_sync_shell_android_manifest |
| android_manifest_dep = ":chrome_sync_shell_android_manifest" |
| apk_name = "ChromeSyncShell" |
| shared_libraries = [ ":chrome_sync_shell" ] |
| |
| deps = [ |
| ":chrome_sync_shell_apk_template_resources", |
| |
| # This exists here because com.google.protobuf.nano is needed in tests, |
| # but that code is stripped out via proguard. Adding this deps adds |
| # usages and prevents removal of the proto code. |
| "//components/sync:test_support_sync_proto_java", |
| ] |
| } |
| |
| chrome_public_test_apk_manifest = |
| "$root_gen_dir/chrome_public_test_apk_manifest/AndroidManifest.xml" |
| chrome_sync_shell_test_apk_manifest = |
| "$root_gen_dir/chrome_sync_shell_test_apk_manifest/AndroidManifest.xml" |
| |
| jinja_template("chrome_public_test_apk_manifest") { |
| input = "javatests/AndroidManifest.xml" |
| output = chrome_public_test_apk_manifest |
| variables = chrome_public_jinja_variables |
| } |
| |
| jinja_template("chrome_sync_shell_test_apk_manifest") { |
| input = "sync_shell/javatests/AndroidManifest.xml" |
| output = chrome_sync_shell_test_apk_manifest |
| variables = chrome_sync_shell_jinja_variables |
| } |
| |
| instrumentation_test_apk("chrome_public_test_apk") { |
| apk_name = "ChromePublicTest" |
| apk_under_test = ":chrome_public_apk" |
| android_manifest = chrome_public_test_apk_manifest |
| android_manifest_dep = ":chrome_public_test_apk_manifest" |
| |
| deps = [ |
| ":chrome_test_java", |
| "//chrome/android/webapk/libs/runtime_library:runtime_library_javatests", |
| "//chrome/android/webapk/shell_apk:shell_apk_javatests", |
| ] |
| additional_apks = [ |
| "//chrome/android/webapk/libs/runtime_library/javatests/apk_with_webapk_service:apk_with_webapk_service", |
| "//chrome/android/webapk/shell_apk/javatests/dex_optimizer:dex_optimizer_apk", |
| "//chrome/test/android/chrome_public_test_support:chrome_public_test_support_apk", |
| "//net/android:net_test_support_apk", |
| ] |
| proguard_enabled = !is_java_debug |
| } |
| |
| android_library("chrome_sync_shell_test_apk_java") { |
| testonly = true |
| |
| # From java_sources.jni. |
| java_files = sync_shell_test_java_sources |
| |
| deps = [ |
| "//base:base_java", |
| "//base:base_java_test_support", |
| "//chrome/android:chrome_java", |
| "//chrome/test/android:chrome_java_test_support", |
| "//components/bookmarks/common/android:bookmarks_java", |
| "//components/policy/android:policy_java", |
| "//components/sync:sync_java_test_support", |
| "//components/sync:test_support_sync_proto_java", |
| "//components/sync/android:sync_java", |
| "//content/public/android:content_java", |
| "//content/public/test/android:content_java_test_support", |
| "//third_party/android_protobuf:protobuf_nano_javalib", |
| "//third_party/android_tools:android_support_v7_appcompat_java", |
| "//ui/android:ui_java", |
| ] |
| } |
| |
| instrumentation_test_apk("chrome_sync_shell_test_apk") { |
| apk_name = "ChromeSyncShellTest" |
| apk_under_test = ":chrome_sync_shell_apk" |
| android_manifest = chrome_sync_shell_test_apk_manifest |
| android_manifest_dep = ":chrome_sync_shell_test_apk_manifest" |
| deps = [ |
| ":chrome_sync_shell_test_apk_java", |
| ] |
| proguard_enabled = !is_java_debug |
| } |