| # Copyright 2019 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/rules.gni") |
| import("//build/config/locales.gni") |
| import("//weblayer/variables.gni") |
| |
| template("system_webview_bundle") { |
| _base_target_name = get_label_info(invoker.base_module_target, "name") |
| _base_target_gen_dir = |
| get_label_info(invoker.base_module_target, "target_gen_dir") |
| _base_module_build_config = |
| "$_base_target_gen_dir/${_base_target_name}.build_config.json" |
| _rebased_base_module_build_config = |
| rebase_path(_base_module_build_config, root_build_dir) |
| _base_module_version_code = |
| "@FileArg($_rebased_base_module_build_config:deps_info:version_code)" |
| if (webview_includes_weblayer && weblayer_in_split) { |
| # TODO(crbug.com/1105096): If WebView starts using |
| # //components/module_installer, it will probably make sense to refactor |
| # chrome_feature_module() to be used here. |
| _base_module_build_config_target = |
| "${invoker.base_module_target}$build_config_target_suffix" |
| _weblayer_module_target = "${target_name}__weblayer_bundle_module" |
| _weblayer_module_desc = { |
| name = "weblayer" |
| module_target = ":${_weblayer_module_target}" |
| } |
| |
| # TODO(crbug.com/1105096): This target is needed to add all WebLayer |
| # resources to the base module because of bugs with shared resources in |
| # splits. |
| android_resources("${_base_target_name}__all_weblayer_resources") { |
| recursive_resource_deps = true |
| deps = [ "//weblayer/browser/java" ] |
| if (defined(invoker.weblayer_deps)) { |
| deps += invoker.weblayer_deps |
| } |
| } |
| |
| android_app_bundle_module(_weblayer_module_target) { |
| forward_variables_from(invoker, |
| [ |
| "base_module_target", |
| "min_sdk_version", |
| "uncompress_shared_libraries", |
| ]) |
| android_manifest = "//weblayer/browser/java/AndroidManifest.xml" |
| |
| # The manifest depends on the package name from the base build config. |
| android_manifest_dep = _base_module_build_config_target |
| deps = [ |
| "//weblayer/browser/java", |
| _base_module_build_config_target, |
| ] |
| if (defined(invoker.weblayer_deps)) { |
| deps += invoker.weblayer_deps |
| } |
| aapt_locale_allowlist = platform_pak_locales |
| proguard_enabled = !is_java_debug |
| package_name = "weblayer" |
| package_id = 126 |
| version_name = |
| "@FileArg($_rebased_base_module_build_config:deps_info:version_name)" |
| version_code = _base_module_version_code |
| manifest_package = |
| "@FileArg($_rebased_base_module_build_config:deps_info:package_name)" |
| } |
| } |
| |
| android_app_bundle(target_name) { |
| command_line_flags_file = "webview-command-line" |
| proguard_enabled = !is_java_debug |
| enable_language_splits = true |
| version_code = _base_module_version_code |
| if (webview_includes_weblayer && weblayer_in_split) { |
| extra_modules = [ _weblayer_module_desc ] |
| } |
| system_image_locale_allowlist = platform_pak_locales |
| is_multi_abi = |
| android_64bit_target_cpu && (!defined(invoker.include_64_bit_webview) || |
| invoker.include_64_bit_webview) && |
| (!defined(invoker.include_32_bit_webview) || |
| invoker.include_32_bit_webview) |
| |
| if (!defined(proguard_android_sdk_dep)) { |
| proguard_android_sdk_dep = webview_framework_dep |
| } |
| |
| forward_variables_from(invoker, "*") |
| } |
| } |