Chromium Code Reviews| Index: build/config/android/rules.gni |
| diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni |
| index a10360a100b29abbcf11ede26f7634d78b0c3b0b..54aaa7581af1e88862a7c86de811cc5c7a803421 100644 |
| --- a/build/config/android/rules.gni |
| +++ b/build/config/android/rules.gni |
| @@ -680,6 +680,87 @@ template("android_resources") { |
| } |
| } |
| +# Declare an Android assets target. |
| +# |
| +# Defines a set of files to include as assets in a dependent apk. |
| +# |
| +# To include these assets in an apk, this target should be listed in |
| +# the apk's deps, or in the deps of a library target used by an apk. |
| +# |
| +# Variables |
| +# deps: Specifies the dependencies of this target. Any Android assets |
| +# listed in deps will be included by libraries/apks that depend on this |
| +# target. |
| +# sources: List of files to include as assets. |
| +# renaming_sources: List of files to include as assets and be renamed. |
| +# renaming_destinations: List of asset paths for files in renaming_sources. |
| +# disable_compression: Whether to diesable compression for files that are |
|
pkotwicz
2015/10/30 20:35:54
diesable -> disable
agrieve
2015/10/31 02:40:03
Done.
|
| +# known to be compressable (default: false). |
| +# |
| +# Example: |
| +# android_assets("content_shell_assets") { |
| +# deps = [ |
| +# ":generates_foo", |
| +# ":other_assets", |
| +# ] |
| +# sources = [ |
| +# "//path/asset1.png", |
| +# "//path/asset2.png", |
| +# "$target_gen_dir/foo.dat", |
| +# ] |
| +# } |
| +# |
| +# android_assets("overriding_content_shell_assets") { |
| +# deps = [ ":content_shell_assets" ] |
| +# # Override foo.dat from content_shell_assets. |
| +# sources = [ "//custom/foo.dat" ] |
| +# renaming_sources = [ "//path/asset1.png" ] |
|
pkotwicz
2015/10/30 20:35:54
Nit: Can you name this asset not "asset1.png"? Usi
agrieve
2015/10/31 02:40:03
Done.
|
| +# renaming_destinations = [ "renamed/asset1.png" ] |
| +# } |
| +template("android_assets") { |
| + set_sources_assignment_filter([]) |
| + forward_variables_from(invoker, [ "testonly" ]) |
| + |
| + _build_config = "$target_gen_dir/$target_name.build_config" |
| + _build_config_target_name = "${target_name}__build_config" |
| + |
| + write_build_config(_build_config_target_name) { |
| + forward_variables_from(invoker, |
| + [ |
| + "deps", |
| + "disable_compression", |
| + ]) |
| + type = "android_assets" |
| + build_config = _build_config |
| + if (defined(invoker.sources)) { |
| + asset_sources = invoker.sources |
| + } |
| + if (defined(invoker.renaming_sources)) { |
| + assert(defined(invoker.renaming_destinations)) |
| + _source_count = 0 |
| + foreach(_, invoker.renaming_sources) { |
| + _source_count += 1 |
| + } |
| + _dest_count = 0 |
| + foreach(_, invoker.renaming_destinations) { |
| + _dest_count += 1 |
| + } |
| + assert( |
| + _source_count == _dest_count, |
| + "android_assets() renaming_sources.length != renaming_destinations.length") |
| + asset_renaming_sources = invoker.renaming_sources |
| + asset_renaming_destinations = invoker.renaming_destinations |
| + } |
| + } |
| + |
| + group(target_name) { |
| + forward_variables_from(invoker, [ "visibility" ]) |
| + public_deps = [ |
| + ":$_build_config_target_name", |
| + ] |
| + } |
| +} |
| + |
| # Declare a target that generates localized strings.xml from a .grd file. |
| # |
| # If this target is included in the deps of an android resources/library/apk, |
| @@ -1520,6 +1601,7 @@ template("android_apk") { |
| ]) |
| apk_path = _final_apk_path |
| android_manifest = _android_manifest |
| + assets_build_config = _build_config |
| resources_zip = _all_resources_zip_path |
| dex_path = final_dex_path |
| load_library_from_apk = _load_library_from_apk |
| @@ -1540,11 +1622,14 @@ template("android_apk") { |
| keystore_password = _keystore_password |
| # Incremental apk does not use native libs nor final dex. |
| - incremental_deps = |
| - deps + _android_manifest_deps + [ ":$process_resources_target" ] |
| + incremental_deps = deps + _android_manifest_deps + [ |
| + ":$build_config_target", |
| + ":$process_resources_target", |
| + ] |
| # This target generates the input file _all_resources_zip_path. |
| deps += _android_manifest_deps + [ |
| + ":$build_config_target", |
| ":$process_resources_target", |
| ":$final_dex_target_name", |
| ] |