Reland "Android: Unify pak resource generation for Chrome and Monochrome"
This is a reland of 3e5be32695
The source location of pak resources collected for tests has been
updated to match the new location.
TBR=agrieve@chromium.org
Original change's description:
> Android: Unify pak resource generation for Chrome and Monochrome
>
> Previously, Monochrome used its own set of GN targets to package
> resources, analogous to the ones used for Chrome (some of which are the
> same used for non-Android platforms). This change moves both variants
> to use matching sets of template-generated targets.
>
> Later, when bundle-specific native libraries are added, this common
> template can be reused again.
>
> BUG=874584
>
> Change-Id: Ia9c34cb0dfa8754207bdee146dbde47f9aca78d3
> Reviewed-on: https://chromium-review.googlesource.com/c/1318418
> Commit-Queue: Christopher Grant <cjgrant@chromium.org>
> Reviewed-by: agrieve <agrieve@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#606060}
Bug: 874584
Change-Id: Ifa3b02a3f87d757435d125eb0c5a15f01d5ca6e1
Reviewed-on: https://chromium-review.googlesource.com/c/1324412
Reviewed-by: Christopher Grant <cjgrant@chromium.org>
Reviewed-by: Eric Stevenson <estevenson@chromium.org>
Commit-Queue: Christopher Grant <cjgrant@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606462}
This commit is contained in:

committed by
Commit Bot

parent
92e9a03d08
commit
212fdaabfb
build/config/android
chrome
@ -38,10 +38,7 @@ _java_target_whitelist = [
|
||||
]
|
||||
|
||||
# Targets that match the whitelist but are not actually java targets.
|
||||
_java_target_blacklist = [
|
||||
"//chrome:packed_resources",
|
||||
"*:*_unpack_aar",
|
||||
]
|
||||
_java_target_blacklist = [ "*:*_unpack_aar" ]
|
||||
|
||||
_default_proguard_jar_path = "//third_party/proguard/lib/proguard.jar"
|
||||
|
||||
|
@ -1634,25 +1634,27 @@ if (is_chrome_branded && !is_android) {
|
||||
}
|
||||
}
|
||||
|
||||
chrome_paks("packed_resources") {
|
||||
if (is_mac) {
|
||||
output_dir = "$root_gen_dir/repack"
|
||||
copy_data_to_bundle = true
|
||||
} else {
|
||||
output_dir = root_out_dir
|
||||
}
|
||||
if (!is_android) {
|
||||
chrome_paks("packed_resources") {
|
||||
if (is_mac) {
|
||||
output_dir = "$root_gen_dir/repack"
|
||||
copy_data_to_bundle = true
|
||||
} else {
|
||||
output_dir = root_out_dir
|
||||
}
|
||||
|
||||
if (enable_resource_whitelist_generation) {
|
||||
repack_whitelist = chrome_resource_whitelist
|
||||
deps = [
|
||||
"//chrome:resource_whitelist",
|
||||
]
|
||||
}
|
||||
if (enable_resource_whitelist_generation) {
|
||||
repack_whitelist = chrome_resource_whitelist
|
||||
deps = [
|
||||
"//chrome:resource_whitelist",
|
||||
]
|
||||
}
|
||||
|
||||
if (is_chrome_branded && !is_mac && !is_android) {
|
||||
public_deps = [
|
||||
":default_apps",
|
||||
]
|
||||
if (is_chrome_branded && !is_mac) {
|
||||
public_deps = [
|
||||
":default_apps",
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -48,15 +48,6 @@ trichrome_chrome_android_manifest =
|
||||
|
||||
app_hooks_impl = "java/src/org/chromium/chrome/browser/AppHooksImpl.java"
|
||||
|
||||
if (enable_resource_whitelist_generation) {
|
||||
monochrome_resource_whitelist =
|
||||
"$target_gen_dir/monochrome_resource_whitelist.txt"
|
||||
system_webview_locale_resource_id_list =
|
||||
"$target_gen_dir/system_webview_locale_resource_id_list.txt"
|
||||
monochrome_locale_whitelist =
|
||||
"$target_gen_dir/monochrome_locale_whitelist.txt"
|
||||
}
|
||||
|
||||
# Exclude it from JNI registration if VR is not enabled.
|
||||
jni_exception_files = []
|
||||
if (!enable_vr) {
|
||||
@ -950,35 +941,6 @@ java_group("chrome_public_non_pak_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_public_locale_pak_assets",
|
||||
"//chrome:packed_resources",
|
||||
]
|
||||
}
|
||||
|
||||
# This target is separate from chrome_public_pak_assets because it does not
|
||||
# disable compression.
|
||||
android_assets("chrome_public_locale_pak_assets") {
|
||||
renaming_sources = []
|
||||
renaming_destinations = []
|
||||
foreach(_locale, locales - android_chrome_omitted_locales) {
|
||||
renaming_sources += [ "$root_out_dir/locales/$_locale.pak" ]
|
||||
renaming_destinations += [ "locales/$_locale.pak" ]
|
||||
}
|
||||
treat_as_locale_paks = true
|
||||
|
||||
deps = [
|
||||
"//chrome:packed_resources",
|
||||
]
|
||||
}
|
||||
|
||||
jinja_template_resources("chrome_public_apk_template_resources") {
|
||||
resources = [
|
||||
"java/res_template/xml/file_paths.xml",
|
||||
@ -1138,128 +1100,198 @@ if (current_toolchain == default_toolchain) {
|
||||
exception_files = jni_exception_files
|
||||
}
|
||||
|
||||
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)",
|
||||
]
|
||||
# This template instantiates targets responsible for generating pak
|
||||
# resources. The generated target names are derived from input variables.
|
||||
#
|
||||
# Variables:
|
||||
# is_monochrome: If true, generate Monochrome targets rather than Chrome.
|
||||
# is_bundle: If true, generate resources for bundles rather than APK.
|
||||
template("resource_packaging") {
|
||||
not_needed([ "target_name" ])
|
||||
|
||||
input = get_label_info(deps[0], "root_out_dir") +
|
||||
"/lib.unstripped/libmonochrome$shlib_extension"
|
||||
output = monochrome_resource_whitelist
|
||||
_is_monochrome = invoker.is_monochrome
|
||||
_is_bundle = invoker.is_bundle
|
||||
|
||||
if (_is_monochrome) {
|
||||
_prefix = "monochrome"
|
||||
} else {
|
||||
_prefix = "chrome"
|
||||
}
|
||||
|
||||
# Use custom resource ID list instead of android_webview's compiler
|
||||
# resource whitelist because //android_webview: generate_webui_resources
|
||||
# and //android_webview: generate_components_resources use hand-written
|
||||
# resource whitelists.
|
||||
action("system_webview_locale_resource_id_list") {
|
||||
script = "//tools/grit/pak_util.py"
|
||||
|
||||
_system_webview_en_US_locale_pak =
|
||||
"$root_out_dir/android_webview/locales/en-US.pak"
|
||||
|
||||
inputs = [
|
||||
_system_webview_en_US_locale_pak,
|
||||
]
|
||||
|
||||
outputs = [
|
||||
system_webview_locale_resource_id_list,
|
||||
]
|
||||
|
||||
deps = [
|
||||
"//android_webview:repack_locales",
|
||||
]
|
||||
|
||||
args = [
|
||||
"list-id",
|
||||
"--output",
|
||||
rebase_path(system_webview_locale_resource_id_list, root_build_dir),
|
||||
rebase_path(_system_webview_en_US_locale_pak, root_build_dir),
|
||||
]
|
||||
if (_is_bundle) {
|
||||
_output_type = "bundle"
|
||||
} else {
|
||||
_output_type = "apk"
|
||||
}
|
||||
|
||||
action("monochrome_locale_whitelist") {
|
||||
script = "//tools/resources/filter_resource_whitelist.py"
|
||||
|
||||
inputs = [
|
||||
monochrome_resource_whitelist,
|
||||
system_webview_locale_resource_id_list,
|
||||
]
|
||||
|
||||
outputs = [
|
||||
monochrome_locale_whitelist,
|
||||
]
|
||||
|
||||
deps = [
|
||||
":monochrome_resource_whitelist",
|
||||
":system_webview_locale_resource_id_list",
|
||||
"//android_webview:system_webview_pak_whitelist",
|
||||
]
|
||||
|
||||
args = [
|
||||
"--input",
|
||||
rebase_path(monochrome_resource_whitelist, root_build_dir),
|
||||
"--filter",
|
||||
rebase_path(system_webview_locale_resource_id_list, root_build_dir),
|
||||
"--output",
|
||||
rebase_path(monochrome_locale_whitelist, root_build_dir),
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
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",
|
||||
]
|
||||
_variant = "${_prefix}_${_output_type}"
|
||||
|
||||
if (enable_resource_whitelist_generation) {
|
||||
repack_whitelist = monochrome_resource_whitelist
|
||||
deps += [ ":monochrome_resource_whitelist" ]
|
||||
locale_whitelist = monochrome_locale_whitelist
|
||||
deps += [ ":monochrome_locale_whitelist" ]
|
||||
_resource_whitelist_target = "${_variant}_resource_whitelist"
|
||||
_resource_whitelist_file =
|
||||
"$target_gen_dir/${_variant}_resource_whitelist.txt"
|
||||
|
||||
if (_is_monochrome) {
|
||||
_target = "monochrome"
|
||||
} else {
|
||||
_target = "libchrome"
|
||||
}
|
||||
|
||||
generate_resource_whitelist(_resource_whitelist_target) {
|
||||
_fat_lib_toolchain = ""
|
||||
if (_is_monochrome) {
|
||||
# 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 = [
|
||||
":${_target}($_fat_lib_toolchain)",
|
||||
]
|
||||
|
||||
input = get_label_info(deps[0], "root_out_dir") +
|
||||
"/lib.unstripped/lib${_prefix}$shlib_extension"
|
||||
output = _resource_whitelist_file
|
||||
}
|
||||
|
||||
# Use custom resource ID list instead of android_webview's compiler
|
||||
# resource whitelist because //android_webview:generate_webui_resources
|
||||
# and //android_webview:generate_components_resources use hand-written
|
||||
# resource whitelists.
|
||||
if (_is_monochrome) {
|
||||
_locale_whitelist_target = "${_variant}_locale_whitelist"
|
||||
_locale_whitelist_file =
|
||||
"$target_gen_dir/${_variant}_locale_whitelist.txt"
|
||||
_system_webview_locale_resource_id_list =
|
||||
"$target_gen_dir/system_webview_locale_resource_id_list.txt"
|
||||
|
||||
action("system_webview_locale_resource_id_list") {
|
||||
script = "//tools/grit/pak_util.py"
|
||||
|
||||
_system_webview_en_US_locale_pak =
|
||||
"$root_out_dir/android_webview/locales/en-US.pak"
|
||||
|
||||
inputs = [
|
||||
_system_webview_en_US_locale_pak,
|
||||
]
|
||||
|
||||
outputs = [
|
||||
_system_webview_locale_resource_id_list,
|
||||
]
|
||||
|
||||
deps = [
|
||||
"//android_webview:repack_locales",
|
||||
]
|
||||
|
||||
args = [
|
||||
"list-id",
|
||||
"--output",
|
||||
rebase_path(_system_webview_locale_resource_id_list,
|
||||
root_build_dir),
|
||||
rebase_path(_system_webview_en_US_locale_pak, root_build_dir),
|
||||
]
|
||||
}
|
||||
|
||||
action(_locale_whitelist_target) {
|
||||
script = "//tools/resources/filter_resource_whitelist.py"
|
||||
|
||||
inputs = [
|
||||
_resource_whitelist_file,
|
||||
_system_webview_locale_resource_id_list,
|
||||
]
|
||||
|
||||
outputs = [
|
||||
_locale_whitelist_file,
|
||||
]
|
||||
|
||||
deps = [
|
||||
":${_resource_whitelist_target}",
|
||||
":system_webview_locale_resource_id_list",
|
||||
"//android_webview:system_webview_pak_whitelist",
|
||||
]
|
||||
|
||||
args = [
|
||||
"--input",
|
||||
rebase_path(_resource_whitelist_file, root_build_dir),
|
||||
"--filter",
|
||||
rebase_path(_system_webview_locale_resource_id_list,
|
||||
root_build_dir),
|
||||
"--output",
|
||||
rebase_path(_locale_whitelist_file, root_build_dir),
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
chrome_paks("${_variant}_paks") {
|
||||
output_dir = "$target_gen_dir/$target_name"
|
||||
deps = []
|
||||
|
||||
if (_is_monochrome) {
|
||||
additional_extra_paks =
|
||||
[ "$root_gen_dir/android_webview/aw_resources.pak" ]
|
||||
deps += [ "//android_webview:generate_aw_resources" ]
|
||||
}
|
||||
|
||||
if (enable_resource_whitelist_generation) {
|
||||
repack_whitelist = _resource_whitelist_file
|
||||
deps += [ ":${_resource_whitelist_target}" ]
|
||||
if (_is_monochrome) {
|
||||
locale_whitelist = _locale_whitelist_file
|
||||
deps += [ ":${_variant}_locale_whitelist" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# This target is separate from monochrome_pak_assets because it does not
|
||||
# disable compression.
|
||||
android_assets("${_variant}_locale_pak_assets") {
|
||||
renaming_sources = []
|
||||
renaming_destinations = []
|
||||
foreach(_locale, locales - android_chrome_omitted_locales) {
|
||||
renaming_sources +=
|
||||
[ "$target_gen_dir/${_variant}_paks/locales/$_locale.pak" ]
|
||||
renaming_destinations += [ "locales/$_locale.pak" ]
|
||||
}
|
||||
treat_as_locale_paks = true
|
||||
|
||||
deps = [
|
||||
":${_variant}_paks",
|
||||
]
|
||||
}
|
||||
|
||||
# This target explicitly includes locale paks via deps.
|
||||
android_assets("${_variant}_pak_assets") {
|
||||
sources = [
|
||||
"$target_gen_dir/${_variant}_paks/chrome_100_percent.pak",
|
||||
"$target_gen_dir/${_variant}_paks/resources.pak",
|
||||
]
|
||||
disable_compression = true
|
||||
|
||||
deps = [
|
||||
":${_variant}_locale_pak_assets",
|
||||
":${_variant}_paks",
|
||||
]
|
||||
if (_is_monochrome) {
|
||||
deps += [ "//android_webview:locale_pak_assets" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# This target is separate from monochrome_pak_assets because it does not
|
||||
# disable compression.
|
||||
android_assets("monochrome_locale_pak_assets") {
|
||||
renaming_sources = []
|
||||
renaming_destinations = []
|
||||
foreach(_locale, locales - android_chrome_omitted_locales) {
|
||||
renaming_sources +=
|
||||
[ "$target_gen_dir/monochrome_paks/locales/$_locale.pak" ]
|
||||
renaming_destinations += [ "locales/$_locale.pak" ]
|
||||
}
|
||||
treat_as_locale_paks = true
|
||||
|
||||
deps = [
|
||||
":monochrome_paks",
|
||||
]
|
||||
resource_packaging("") {
|
||||
is_monochrome = false
|
||||
is_bundle = false
|
||||
}
|
||||
resource_packaging("") {
|
||||
is_monochrome = true
|
||||
is_bundle = false
|
||||
}
|
||||
|
||||
# This target explicitly includes locale paks via deps.
|
||||
android_assets("monochrome_pak_assets") {
|
||||
sources = [
|
||||
"$target_gen_dir/monochrome_paks/chrome_100_percent.pak",
|
||||
"$target_gen_dir/monochrome_paks/resources.pak",
|
||||
]
|
||||
disable_compression = true
|
||||
|
||||
# TODO(cjgrant): Remove this temporary alias after downstream renaming lands.
|
||||
java_group("chrome_public_pak_assets") {
|
||||
deps = [
|
||||
":monochrome_locale_pak_assets",
|
||||
":monochrome_paks",
|
||||
"//android_webview:locale_pak_assets",
|
||||
":chrome_apk_pak_assets",
|
||||
]
|
||||
}
|
||||
} # current_toolchain == host_toolchain
|
||||
@ -1329,7 +1361,7 @@ _chrome_public_shared_deps = [
|
||||
":chrome_public_apk_resources",
|
||||
":chrome_public_base_module_java",
|
||||
":chrome_public_non_pak_assets",
|
||||
":chrome_public_pak_assets",
|
||||
":chrome_apk_pak_assets",
|
||||
]
|
||||
|
||||
generate_jni("test_support_jni_headers") {
|
||||
|
@ -265,7 +265,7 @@ template("monochrome_public_common_apk_or_module_tmpl") {
|
||||
"//android_webview/apk:webview_license_activity_java",
|
||||
"//android_webview/glue",
|
||||
"//chrome/android:chrome_public_non_pak_assets",
|
||||
"//chrome/android:monochrome_pak_assets",
|
||||
"//chrome/android:monochrome_apk_pak_assets",
|
||||
"//chrome/android/monochrome:monochrome_license_provider_java",
|
||||
]
|
||||
|
||||
|
@ -2827,15 +2827,20 @@ test("unit_tests") {
|
||||
"//third_party/zlib/google/test/data/",
|
||||
"//tools/metrics/histograms/enums.xml",
|
||||
]
|
||||
if (is_android || is_linux || is_win) {
|
||||
if (is_android) {
|
||||
data += [
|
||||
"$root_out_dir/chrome_100_percent.pak",
|
||||
"$root_out_dir/locales/en-US.pak",
|
||||
"$root_out_dir/resources.pak",
|
||||
"$root_gen_dir/chrome/android/chrome_apk_paks/chrome_100_percent.pak",
|
||||
"$root_gen_dir/chrome/android/chrome_apk_paks/locales/en-US.pak",
|
||||
"$root_gen_dir/chrome/android/chrome_apk_paks/resources.pak",
|
||||
]
|
||||
}
|
||||
if (is_linux || is_win) {
|
||||
data += [ "$root_out_dir/chrome_200_percent.pak" ]
|
||||
data += [
|
||||
"$root_out_dir/chrome_100_percent.pak",
|
||||
"$root_out_dir/chrome_200_percent.pak",
|
||||
"$root_out_dir/locales/en-US.pak",
|
||||
"$root_out_dir/resources.pak",
|
||||
]
|
||||
}
|
||||
if (is_win) {
|
||||
data_deps += [ "//chrome" ]
|
||||
@ -4145,10 +4150,14 @@ test("unit_tests") {
|
||||
}
|
||||
if (!is_mac) {
|
||||
deps += [
|
||||
"//chrome:packed_resources",
|
||||
"//chrome/tools/convert_dict:lib",
|
||||
"//third_party/hunspell",
|
||||
]
|
||||
if (is_android) {
|
||||
deps += [ "//chrome/android:chrome_apk_paks" ]
|
||||
} else {
|
||||
deps += [ "//chrome:packed_resources" ]
|
||||
}
|
||||
}
|
||||
if (is_win || is_mac || is_chromeos) {
|
||||
sources += [ "../browser/extensions/api/networking_private/networking_private_crypto_unittest.cc" ]
|
||||
|
Reference in New Issue
Block a user