blob: dabcdb0008f8012af8759d5a524633b299ebacb7 [file] [log] [blame]
Avi Drissman4a6ec7e2022-09-08 20:26:461# Copyright 2019 The Chromium Authors
Clark DuVallebd41cb2019-12-19 23:14:162# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5import("//build/config/android/rules.gni")
6import("//build/config/locales.gni")
Sam Maierfb196b22022-09-06 17:48:517import("//components/crash/android/silent_java_assert_reporting.gni")
Clark DuVallc5f986b2020-08-17 20:47:148import("//weblayer/variables.gni")
Clark DuVallebd41cb2019-12-19 23:14:169
10template("system_webview_bundle") {
Andrew Grievecdcd217b2023-03-14 13:45:3011 _is_trichrome = defined(invoker.is_trichrome) && invoker.is_trichrome
Clark DuVall977485e2020-08-20 15:21:0012 _base_target_name = get_label_info(invoker.base_module_target, "name")
13 _base_target_gen_dir =
14 get_label_info(invoker.base_module_target, "target_gen_dir")
15 _base_module_build_config =
Peter Wend9e1d002021-07-12 15:36:4216 "$_base_target_gen_dir/${_base_target_name}.build_config.json"
Clark DuVall977485e2020-08-20 15:21:0017 _rebased_base_module_build_config =
18 rebase_path(_base_module_build_config, root_build_dir)
19 _base_module_version_code =
20 "@FileArg($_rebased_base_module_build_config:deps_info:version_code)"
Andrew Grievecdcd217b2023-03-14 13:45:3021
Andrew Grieve5d9b90f2023-03-16 21:09:4722 assert(_is_trichrome == defined(invoker.static_library_provider))
Andrew Grievecdcd217b2023-03-14 13:45:3023
Clark DuVallc5f986b2020-08-17 20:47:1424 if (webview_includes_weblayer && weblayer_in_split) {
25 # TODO(crbug.com/1105096): If WebView starts using
26 # //components/module_installer, it will probably make sense to refactor
27 # chrome_feature_module() to be used here.
Clark DuVallc5f986b2020-08-17 20:47:1428 _base_module_build_config_target =
29 "${invoker.base_module_target}$build_config_target_suffix"
Clark DuVallc5f986b2020-08-17 20:47:1430 _weblayer_module_target = "${target_name}__weblayer_bundle_module"
31 _weblayer_module_desc = {
32 name = "weblayer"
33 module_target = ":${_weblayer_module_target}"
34 }
Clark DuVall62068812020-09-15 03:18:3135
36 # TODO(crbug.com/1105096): This target is needed to add all WebLayer
37 # resources to the base module because of bugs with shared resources in
38 # splits.
39 android_resources("${_base_target_name}__all_weblayer_resources") {
40 recursive_resource_deps = true
41 deps = [ "//weblayer/browser/java" ]
42 if (defined(invoker.weblayer_deps)) {
43 deps += invoker.weblayer_deps
44 }
45 }
46
Clark DuVallc5f986b2020-08-17 20:47:1447 android_app_bundle_module(_weblayer_module_target) {
48 forward_variables_from(invoker,
49 [
50 "base_module_target",
51 "min_sdk_version",
Clark DuVallc5f986b2020-08-17 20:47:1452 ])
53 android_manifest = "//weblayer/browser/java/AndroidManifest.xml"
Clark DuVall9158c022020-09-17 17:49:3054
55 # The manifest depends on the package name from the base build config.
56 android_manifest_dep = _base_module_build_config_target
Clark DuVallc5f986b2020-08-17 20:47:1457 deps = [
58 "//weblayer/browser/java",
59 _base_module_build_config_target,
60 ]
61 if (defined(invoker.weblayer_deps)) {
62 deps += invoker.weblayer_deps
63 }
Trevor Perrierc8f7da5b2022-02-08 17:29:4664 aapt_locale_allowlist = platform_pak_locales
Clark DuVallc5f986b2020-08-17 20:47:1465 proguard_enabled = !is_java_debug
Sam Maier57b7afeb52023-01-10 16:31:4466 module_name = "weblayer"
Clark DuVallc5f986b2020-08-17 20:47:1467 package_id = 126
68 version_name =
69 "@FileArg($_rebased_base_module_build_config:deps_info:version_name)"
Clark DuVall977485e2020-08-20 15:21:0070 version_code = _base_module_version_code
Clark DuVallc5f986b2020-08-17 20:47:1471 manifest_package =
72 "@FileArg($_rebased_base_module_build_config:deps_info:package_name)"
Andrew Grievecdcd217b2023-03-14 13:45:3073 if (!defined(min_sdk_version) && _is_trichrome) {
74 min_sdk_version = 29
75 }
Sam Maierfb196b22022-09-06 17:48:5176
77 if (enable_silent_java_assert_reporting) {
78 custom_assertion_handler = crash_reporting_assertion_handler
79 }
Clark DuVallc5f986b2020-08-17 20:47:1480 }
81 }
82
Clark DuVallebd41cb2019-12-19 23:14:1683 android_app_bundle(target_name) {
84 command_line_flags_file = "webview-command-line"
85 proguard_enabled = !is_java_debug
86 enable_language_splits = true
Andrew Grievecdcd217b2023-03-14 13:45:3087 if (_is_trichrome) {
88 min_sdk_version = 29
89 } else {
90 compress_shared_libraries = true
91 }
Clark DuVallc5f986b2020-08-17 20:47:1492 if (webview_includes_weblayer && weblayer_in_split) {
93 extra_modules = [ _weblayer_module_desc ]
94 }
Trevor Perrierc8f7da5b2022-02-08 17:29:4695 system_image_locale_allowlist = platform_pak_locales
Christopher Grant83e35a42020-01-06 16:06:0896 is_multi_abi =
97 android_64bit_target_cpu && (!defined(invoker.include_64_bit_webview) ||
98 invoker.include_64_bit_webview) &&
99 (!defined(invoker.include_32_bit_webview) ||
100 invoker.include_32_bit_webview)
Clark DuVallebd41cb2019-12-19 23:14:16101
102 if (!defined(proguard_android_sdk_dep)) {
103 proguard_android_sdk_dep = webview_framework_dep
104 }
105
Sam Maierfb196b22022-09-06 17:48:51106 if (enable_silent_java_assert_reporting) {
107 custom_assertion_handler = crash_reporting_assertion_handler
108 }
109
Fergal Dalyebb80592022-03-24 03:30:48110 # For this to be respected, it must also be set on the base module target.
111 strip_unused_resources = is_official_build
112
Clark DuVallebd41cb2019-12-19 23:14:16113 forward_variables_from(invoker, "*")
114 }
115}