| Index: build/config/android/rules.gni
|
| diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
|
| index 9e8568e779d81c3baecf7bfe02de60f12a706646..fc5a19d306c7246ae58091c70eb0fe7aa5ca4357 100644
|
| --- a/build/config/android/rules.gni
|
| +++ b/build/config/android/rules.gni
|
| @@ -1470,6 +1470,12 @@ template("android_apk") {
|
| # Help GN understand that _create_abi_split is not unused (bug in GN).
|
| assert(_create_abi_split || true)
|
|
|
| + _proguard_enabled = false
|
| + if (defined(invoker.proguard_enabled) && invoker.proguard_enabled) {
|
| + _proguard_enabled = true
|
| + _proguard_jar_path = "$base_path.proguard.jar"
|
| + }
|
| +
|
| build_config_target = "${_template_name}__build_config"
|
| write_build_config(build_config_target) {
|
| type = "android_apk"
|
| @@ -1487,11 +1493,17 @@ template("android_apk") {
|
| apk_under_test = invoker.apk_under_test
|
| }
|
|
|
| + if (_proguard_enabled) {
|
| + proguard_enabled = true
|
| + proguard_info = "$_proguard_jar_path.info"
|
| + }
|
| +
|
| native_libs = _native_libs
|
| }
|
|
|
| final_deps = []
|
|
|
| + _generated_proguard_config = "$base_path.resources.proguard.txt"
|
| process_resources_target = "${_template_name}__process_resources"
|
| final_deps += [ ":$process_resources_target" ]
|
| process_resources(process_resources_target) {
|
| @@ -1502,6 +1514,7 @@ template("android_apk") {
|
| zip_path = resources_zip_path
|
| all_resources_zip_path = _all_resources_zip_path
|
| generate_constant_ids = true
|
| + proguard_file = _generated_proguard_config
|
|
|
| if (defined(invoker.include_all_resources)) {
|
| include_all_resources = invoker.include_all_resources
|
| @@ -1610,14 +1623,43 @@ template("android_apk") {
|
| }
|
| }
|
|
|
| + if (defined(invoker.proguard_enabled) && invoker.proguard_enabled) {
|
| + _proguard_configs = [ _generated_proguard_config ]
|
| + if (defined(invoker.proguard_configs)) {
|
| + _proguard_configs += invoker.proguard_configs
|
| + }
|
| + proguard_target = "${_template_name}__proguard"
|
| + proguard(proguard_target) {
|
| + deps = [
|
| + ":$build_config_target",
|
| + ":$process_resources_target",
|
| + ":$java_target",
|
| + ]
|
| + inputs = [
|
| + _build_config,
|
| + jar_path,
|
| + ] + _proguard_configs
|
| +
|
| + output_jar_path = _proguard_jar_path
|
| + rebased_proguard_configs = rebase_path(_proguard_configs, root_build_dir)
|
| + args = [
|
| + "--proguard-configs=$rebased_proguard_configs",
|
| + "--tested-apk-info=@FileArg($_rebased_build_config:proguard:tested_apk_info)",
|
| + "--input-paths=@FileArg($_rebased_build_config:proguard:input_paths)",
|
| + ]
|
| + }
|
| + dex_jar_path = _proguard_jar_path
|
| + dex_deps = [ ":$proguard_target" ]
|
| + } else {
|
| + dex_jar_path = jar_path
|
| + dex_deps = [ ":$java_target" ]
|
| + }
|
| +
|
| final_deps += [ ":$final_dex_target_name" ]
|
| dex("$final_dex_target_name") {
|
| - deps = [
|
| - ":$build_config_target",
|
| - ":$java_target",
|
| - ]
|
| + deps = dex_deps + [ ":$build_config_target" ]
|
| sources = [
|
| - jar_path,
|
| + dex_jar_path,
|
| ]
|
| inputs = [
|
| _build_config,
|
| @@ -1881,6 +1923,9 @@ template("instrumentation_test_apk") {
|
| if (defined(invoker.native_libs)) {
|
| native_libs = invoker.native_libs
|
| }
|
| + if (defined(invoker.proguard_enabled)) {
|
| + proguard_enabled = invoker.proguard_enabled
|
| + }
|
| if (defined(invoker.apk_under_test)) {
|
| apk_under_test = invoker.apk_under_test
|
| }
|
|
|