Index: build/config/android/internal_rules.gni |
diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni |
index 2c9e0c59a87126df243a5ca85bc6d622e7197a4c..6662c75511c6671af79fb1b231db62b8bf47b618 100644 |
--- a/build/config/android/internal_rules.gni |
+++ b/build/config/android/internal_rules.gni |
@@ -16,7 +16,7 @@ rebased_android_sdk_build_tools = |
android_sdk_jar = "$android_sdk/android.jar" |
rebased_android_sdk_jar = rebase_path(android_sdk_jar, root_build_dir) |
-android_aapt_path = "$rebased_android_sdk_build_tools/aapt" |
+android_default_aapt_path = "$rebased_android_sdk_build_tools/aapt" |
android_configuration_name = "Release" |
if (is_debug) { |
@@ -89,9 +89,16 @@ template("proguard") { |
_proguard_jar_path = "//third_party/proguard/lib/proguard.jar" |
_output_jar_path = invoker.output_jar_path |
inputs = [ |
- android_sdk_jar, |
_proguard_jar_path, |
] |
+ if (defined(invoker.alternative_android_sdk_jar)) { |
+ inputs += [ invoker.alternative_android_sdk_jar ] |
+ _rebased_android_sdk_jar = |
+ rebase_path(invoker.alternative_android_sdk_jar) |
+ } else { |
+ inputs += [ android_sdk_jar ] |
+ _rebased_android_sdk_jar = rebased_android_sdk_jar |
+ } |
if (defined(invoker.inputs)) { |
inputs += invoker.inputs |
} |
@@ -112,7 +119,7 @@ template("proguard") { |
"--output-path", |
rebase_path(_output_jar_path, root_build_dir), |
"--classpath", |
- rebased_android_sdk_jar, |
+ _rebased_android_sdk_jar, |
] |
if (defined(invoker.args)) { |
args += invoker.args |
@@ -868,6 +875,10 @@ template("create_apk") { |
_shared_resources = |
defined(invoker.shared_resources) && invoker.shared_resources |
assert(_shared_resources || true) # Mark as used. |
+ _app_as_shared_lib = |
+ defined(invoker.app_as_shared_lib) && invoker.app_as_shared_lib |
+ assert(_app_as_shared_lib || true) # Mark as used. |
+ assert(!(_shared_resources && _app_as_shared_lib)) |
_keystore_path = invoker.keystore_path |
_keystore_name = invoker.keystore_name |
@@ -906,13 +917,19 @@ template("create_apk") { |
invoker.resource_packaged_apk_path, |
] |
+ if (defined(invoker.android_aapt_path)) { |
+ _android_aapt_path = invoker.android_aapt_path |
+ } else { |
+ _android_aapt_path = android_default_aapt_path |
+ } |
+ |
args = [ |
"--depfile", |
rebase_path(depfile, root_build_dir), |
"--android-sdk", |
rebased_android_sdk, |
"--aapt-path", |
- android_aapt_path, |
+ _android_aapt_path, |
"--configuration-name=$android_configuration_name", |
"--android-manifest", |
rebase_path(invoker.android_manifest, root_build_dir), |
@@ -933,6 +950,9 @@ template("create_apk") { |
if (_shared_resources) { |
args += [ "--shared-resources" ] |
} |
+ if (_app_as_shared_lib) { |
+ args += [ "--app-as-shared-lib" ] |
+ } |
if (_split_densities != []) { |
args += [ "--create-density-splits" ] |
foreach(_density, _split_densities) { |
@@ -956,7 +976,11 @@ template("create_apk") { |
_package_resources_target_name = "${target_name}__package_resources" |
package_resources_helper(_package_resources_target_name) { |
- forward_variables_from(invoker, [ "extensions_to_not_compress" ]) |
+ forward_variables_from(invoker, |
+ [ |
+ "android_aapt_path", |
+ "extensions_to_not_compress", |
+ ]) |
deps = _deps |
android_manifest = _android_manifest |
resource_packaged_apk_path = _resource_packaged_apk_path |
@@ -999,7 +1023,11 @@ template("create_apk") { |
# TODO(agrieve): See if we can speed up this step by swapping the manifest |
# from the result of the main package_resources step. |
package_resources_helper(_incremental_package_resources_target_name) { |
- forward_variables_from(invoker, [ "extensions_to_not_compress" ]) |
+ forward_variables_from(invoker, |
+ [ |
+ "android_aapt_path", |
+ "extensions_to_not_compress", |
+ ]) |
deps = |
_incremental_deps + [ ":$_generate_incremental_manifest_target_name" ] |
android_manifest = _incremental_android_manifest |
@@ -1735,13 +1763,20 @@ template("process_resources") { |
_rebased_all_resource_dirs = rebase_path(_all_resource_dirs, root_build_dir) |
rebase_build_config = rebase_path(build_config, root_build_dir) |
+ |
+ if (defined(invoker.android_aapt_path)) { |
+ _android_aapt_path = invoker.android_aapt_path |
+ } else { |
+ _android_aapt_path = android_default_aapt_path |
+ } |
+ |
args = [ |
"--depfile", |
rebase_path(depfile, root_build_dir), |
"--android-sdk", |
rebase_path(android_sdk, root_build_dir), |
"--aapt-path", |
- android_aapt_path, |
+ _android_aapt_path, |
"--android-manifest", |
rebase_path(android_manifest, root_build_dir), |
"--resource-dirs=$_rebased_all_resource_dirs", |
@@ -1775,6 +1810,10 @@ template("process_resources") { |
args += [ "--shared-resources" ] |
} |
+ if (defined(invoker.app_as_shared_lib) && invoker.app_as_shared_lib) { |
+ args += [ "--app-as-shared-lib" ] |
+ } |
+ |
if (defined(invoker.include_all_resources) && |
invoker.include_all_resources) { |
args += [ "--include-all-resources" ] |