# 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 } # For this to be respected, it must also be set on the base module target. strip_unused_resources = is_official_build forward_variables_from(invoker, "*") } }