| # Copyright 2015 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("//base/android/proguard/proguard.gni") |
| import("//build/config/android/config.gni") |
| import("//build/config/android/rules.gni") |
| import("//build/config/locales.gni") |
| import("//build/util/version.gni") |
| import("//chrome/android/trichrome.gni") |
| import("//tools/v8_context_snapshot/v8_context_snapshot.gni") |
| |
| declare_args() { |
| # Package name of the system_webview_apk target. |
| system_webview_package_name = "com.android.webview" |
| } |
| |
| template("system_webview_apk_tmpl") { |
| android_apk(target_name) { |
| forward_variables_from(invoker, "*") |
| |
| deps += [ |
| "//android_webview:license_assets", |
| "//android_webview:locale_pak_assets", |
| "//android_webview:pak_file_assets", |
| "//android_webview/apk:webview_license_activity_java", |
| "//android_webview/apk:webview_license_provider_java", |
| "//android_webview/glue", |
| "//android_webview/support_library:support_lib_glue_java", |
| "//base:base_java", |
| ] |
| |
| if (!defined(alternative_android_sdk_dep)) { |
| alternative_android_sdk_dep = webview_framework_dep |
| } |
| |
| _use_trichrome_library = |
| defined(use_trichrome_library) && use_trichrome_library |
| |
| if (!_use_trichrome_library || !trichrome_shared_assets) { |
| deps += [ "//android_webview:monochrome_webview_assets" ] |
| } |
| |
| if (!_use_trichrome_library) { |
| shared_libraries = [ "//android_webview:libwebviewchromium" ] |
| deps += [ |
| "//third_party/crashpad/crashpad/handler:crashpad_handler_trampoline", |
| ] |
| loadable_modules = [ "$root_out_dir/libcrashpad_handler_trampoline.so" ] |
| |
| if (build_apk_secondary_abi && android_64bit_target_cpu) { |
| secondary_abi_shared_libraries = [ "//android_webview:libwebviewchromium($android_secondary_abi_toolchain)" ] |
| _trampoline = "//third_party/crashpad/crashpad/handler:crashpad_handler_trampoline($android_secondary_abi_toolchain)" |
| deps += [ _trampoline ] |
| _secondary_out_dir = get_label_info(_trampoline, "root_out_dir") |
| secondary_abi_loadable_modules = |
| [ "$_secondary_out_dir/libcrashpad_handler_trampoline.so" ] |
| } |
| shared_resources = true |
| } else { |
| uncompress_shared_libraries = true |
| |
| app_as_shared_lib = true |
| if (trichrome_synchronized_proguard) { |
| emit_resource_ids = true |
| } |
| |
| # Include placeholder libraries to ensure we are treated as the desired |
| # architecture. |
| if (android_64bit_target_cpu) { |
| shared_libraries = [ "//android_webview:monochrome" ] |
| deps += [ |
| "//third_party/crashpad/crashpad/handler:crashpad_handler_trampoline", |
| ] |
| loadable_modules = [ "$root_out_dir/libcrashpad_handler_trampoline.so" ] |
| |
| if (build_apk_secondary_abi) { |
| secondary_native_lib_placeholders = [ "libdummy.so" ] |
| if (use_v8_context_snapshot) { |
| deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ] |
| } else { |
| deps += [ "//v8:v8_external_startup_data_assets" ] |
| } |
| } |
| } else { |
| native_lib_placeholders = [ "libdummy.so" ] |
| } |
| } |
| |
| if (!_use_trichrome_library || android_64bit_target_cpu) { |
| # 32-bit TrichromeWebView doesn't have a native library, so only do this |
| # for other configs. |
| native_lib_version_rule = "//build/util:chrome_version_json" |
| _native_lib_file = |
| rebase_path("$root_gen_dir/CHROME_VERSION.json", root_out_dir) |
| native_lib_version_arg = "@FileArg($_native_lib_file:full-quoted)" |
| } |
| |
| aapt_locale_whitelist = locales |
| |
| resource_blacklist_regex = "[/-]xxxhdpi[/-]" |
| |
| # Exception rationale in https://crbug.com/691733. |
| resource_blacklist_exceptions = [ |
| "*shadow*", # Combination of gradient & transparency cause pixelation. |
| "*.9.*", # Most nine-patches contain shadows. |
| ] |
| |
| # Used as an additional apk in test scripts. |
| never_incremental = true |
| |
| if (!is_java_debug) { |
| proguard_enabled = true |
| if (!defined(proguard_configs)) { |
| proguard_configs = [] |
| } |
| proguard_configs += [ |
| "//android_webview/apk/java/proguard.flags", |
| "//base/android/proguard/chromium_apk.flags", |
| "//base/android/proguard/chromium_code.flags", |
| ] |
| if (enable_proguard_obfuscation) { |
| proguard_configs += |
| [ "//base/android/proguard/enable_obfuscation.flags" ] |
| } else { |
| proguard_configs += |
| [ "//base/android/proguard/disable_all_obfuscation.flags" ] |
| } |
| png_to_webp = true |
| } |
| command_line_flags_file = "webview-command-line" |
| |
| if (!defined(version_code)) { |
| if (_use_trichrome_library) { |
| version_code = trichrome_version_code |
| } else if (android_channel == "dev") { |
| version_code = webview_dev_version_code |
| } else if (android_channel == "beta") { |
| version_code = webview_beta_version_code |
| } else { |
| version_code = webview_stable_version_code |
| } |
| } |
| if (!defined(version_name)) { |
| version_name = chrome_version_name |
| } |
| } |
| } |