| Index: build/config/android/internal_rules.gni
|
| diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni
|
| index 091ee4ac2ebc7051e855c45ecba0a2fb7392d1f3..26636fea7f210e6bf4c10d465047e14c778c71ca 100644
|
| --- a/build/config/android/internal_rules.gni
|
| +++ b/build/config/android/internal_rules.gni
|
| @@ -611,9 +611,12 @@ template("create_apk") {
|
| _configuration_name = "Debug"
|
| }
|
|
|
| - _create_density_splits =
|
| - defined(invoker.create_density_splits) && invoker.create_density_splits
|
| - if (_create_density_splits) {
|
| + _keystore_path = invoker.keystore_path
|
| + _keystore_name = invoker.keystore_name
|
| + _keystore_password = invoker.keystore_password
|
| +
|
| + _split_densities = []
|
| + if (defined(invoker.create_density_splits) && invoker.create_density_splits) {
|
| _split_densities = [
|
| "hdpi",
|
| "xhdpi",
|
| @@ -623,6 +626,11 @@ template("create_apk") {
|
| ]
|
| }
|
|
|
| + _split_languages = []
|
| + if (defined(invoker.language_splits)) {
|
| + _split_languages = invoker.language_splits
|
| + }
|
| +
|
| _package_resources_target_name = "${target_name}__package_resources"
|
| action(_package_resources_target_name) {
|
| deps = _package_deps
|
| @@ -673,10 +681,16 @@ template("create_apk") {
|
| if (_shared_resources) {
|
| args += [ "--shared-resources" ]
|
| }
|
| - if (_create_density_splits) {
|
| + if (_split_densities != []) {
|
| args += [ "--create-density-splits" ]
|
| foreach(_density, _split_densities) {
|
| - outputs += [ "${_resource_packaged_apk_path}-${_density}" ]
|
| + outputs += [ "${_resource_packaged_apk_path}_${_density}" ]
|
| + }
|
| + }
|
| + if (_split_languages != []) {
|
| + args += [ "--language-splits=$_split_languages" ]
|
| + foreach(_language, _split_languages) {
|
| + outputs += [ "${_resource_packaged_apk_path}_${_language}" ]
|
| }
|
| }
|
| if (defined(invoker.extensions_to_not_compress)) {
|
| @@ -751,9 +765,9 @@ template("create_apk") {
|
| finalize_apk(_finalize_apk_rule_name) {
|
| input_apk_path = _packaged_apk_path
|
| output_apk_path = _final_apk_path
|
| - keystore_path = invoker.keystore_path
|
| - keystore_name = invoker.keystore_name
|
| - keystore_password = invoker.keystore_password
|
| + keystore_path = _keystore_path
|
| + keystore_name = _keystore_name
|
| + keystore_password = _keystore_password
|
| rezip_apk = _load_library_from_apk
|
|
|
| public_deps = [
|
| @@ -764,21 +778,36 @@ template("create_apk") {
|
|
|
| _final_deps = [ ":${_finalize_apk_rule_name}" ]
|
|
|
| - if (_create_density_splits) {
|
| - foreach(_density, _split_densities) {
|
| - _finalize_split_rule_name = "${target_name}__finalize_${_density}_split"
|
| - finalize_apk(_finalize_split_rule_name) {
|
| - input_apk_path = "${_resource_packaged_apk_path}-${_density}"
|
| - _output_paths = process_file_template(
|
| - [ _final_apk_path ],
|
| - "{{source_dir}}/{{source_name_part}}-${_density}.apk")
|
| - output_apk_path = _output_paths[0]
|
| - keystore_path = invoker.keystore_path
|
| - keystore_name = invoker.keystore_name
|
| - keystore_password = invoker.keystore_password
|
| - }
|
| - _final_deps += [ ":${_finalize_split_rule_name}" ]
|
| + template("finalize_split") {
|
| + finalize_apk(target_name) {
|
| + _config = invoker.split_config
|
| + _type = invoker.split_type
|
| + input_apk_path = "${_resource_packaged_apk_path}_${_config}"
|
| + _output_paths = process_file_template(
|
| + [ _final_apk_path ],
|
| + "{{source_dir}}/{{source_name_part}}-${_type}-${_config}.apk")
|
| + output_apk_path = _output_paths[0]
|
| + keystore_path = _keystore_path
|
| + keystore_name = _keystore_name
|
| + keystore_password = _keystore_password
|
| + }
|
| + }
|
| +
|
| + foreach(_split, _split_densities) {
|
| + _split_rule = "${target_name}__finalize_${_split}_split"
|
| + finalize_split(_split_rule) {
|
| + split_type = "density"
|
| + split_config = _split
|
| + }
|
| + _final_deps += [ ":$_split_rule" ]
|
| + }
|
| + foreach(_split, _split_languages) {
|
| + _split_rule = "${target_name}__finalize_${_split}_split"
|
| + finalize_split(_split_rule) {
|
| + split_type = "lang"
|
| + split_config = _split
|
| }
|
| + _final_deps += [ ":$_split_rule" ]
|
| }
|
|
|
| group(target_name) {
|
|
|