Index: build/config/android/internal_rules.gni |
diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni |
index 0866aa4df77e37b6183d4aac0cff5b8fa4666ce4..9895c460102fa50a4095bd405efe364986a8d9e1 100644 |
--- a/build/config/android/internal_rules.gni |
+++ b/build/config/android/internal_rules.gni |
@@ -74,6 +74,51 @@ template("android_lint") { |
} |
} |
+template("proguard") { |
+ action(target_name) { |
+ set_sources_assignment_filter([]) |
+ forward_variables_from(invoker, |
+ [ |
+ "deps", |
+ "data_deps", |
+ "public_deps", |
+ "testonly", |
+ ]) |
+ script = "//build/android/gyp/proguard.py" |
+ _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.inputs)) { |
+ inputs += invoker.inputs |
+ } |
+ depfile = "${target_gen_dir}/${target_name}.d" |
+ outputs = [ |
+ depfile, |
+ _output_jar_path, |
+ "$_output_jar_path.dump", |
+ "$_output_jar_path.seeds", |
+ "$_output_jar_path.mapping", |
+ "$_output_jar_path.usage", |
+ ] |
+ args = [ |
+ "--depfile", |
+ rebase_path(depfile, root_build_dir), |
+ "--proguard-path", |
+ rebase_path(_proguard_jar_path, root_build_dir), |
+ "--output-path", |
+ rebase_path(_output_jar_path, root_build_dir), |
+ "--classpath", |
+ rebased_android_sdk_jar, |
+ ] |
+ if (defined(invoker.args)) { |
+ args += invoker.args |
+ } |
+ } |
+} |
+ |
template("findbugs") { |
jar_path = invoker.jar_path |
@@ -233,19 +278,15 @@ template("dex") { |
# See build/android/gyp/write_build_config.py and |
# build/android/gyp/util/build_utils.py:ExpandFileArgs |
template("write_build_config") { |
- set_sources_assignment_filter([]) |
- |
- assert(defined(invoker.type)) |
- assert(defined(invoker.build_config)) |
- |
- type = invoker.type |
- build_config = invoker.build_config |
+ action(target_name) { |
+ set_sources_assignment_filter([]) |
+ type = invoker.type |
+ build_config = invoker.build_config |
- assert(type == "android_apk" || type == "java_library" || |
- type == "android_resources" || type == "deps_dex" || |
- type == "android_assets" || type == "resource_rewriter") |
+ assert(type == "android_apk" || type == "java_library" || |
+ type == "android_resources" || type == "deps_dex" || |
+ type == "android_assets" || type == "resource_rewriter") |
- action(target_name) { |
deps = [] |
forward_variables_from(invoker, |
[ |
@@ -403,6 +444,14 @@ template("write_build_config") { |
"--readelf-path=$rebased_android_readelf", |
] |
} |
+ |
+ if (defined(invoker.proguard_enabled) && invoker.proguard_enabled) { |
+ args += [ |
+ "--proguard-enabled", |
+ "--proguard-info", |
+ rebase_path(invoker.proguard_info, root_build_dir), |
+ ] |
+ } |
} |
if (defined(invoker.srcjar)) { |
@@ -426,44 +475,29 @@ template("process_java_prebuilt") { |
assert(invoker.build_config != "") |
if (defined(invoker.proguard_preprocess) && invoker.proguard_preprocess) { |
- _proguard_jar_path = "//third_party/proguard/lib/proguard.jar" |
- _proguard_config_path = invoker.proguard_config |
_build_config = invoker.build_config |
_rebased_build_config = rebase_path(_build_config, root_build_dir) |
+ _proguard_config_path = invoker.proguard_config |
_output_jar_target = "${target_name}__proguard_process" |
- action(_output_jar_target) { |
+ proguard(_output_jar_target) { |
forward_variables_from(invoker, |
[ |
"data_deps", |
"deps", |
"public_deps", |
]) |
- script = "//build/android/gyp/proguard.py" |
inputs = [ |
- android_sdk_jar, |
- _proguard_jar_path, |
_build_config, |
_input_jar_path, |
_proguard_config_path, |
] |
- depfile = "${target_gen_dir}/${target_name}.d" |
- outputs = [ |
- depfile, |
- _output_jar_path, |
- ] |
+ output_jar_path = _output_jar_path |
+ _rebased_input_paths = [ rebase_path(_input_jar_path, root_build_dir) ] |
+ _rebased_proguard_configs = |
+ [ rebase_path(_proguard_config_path, root_build_dir) ] |
args = [ |
- "--depfile", |
- rebase_path(depfile, root_build_dir), |
- "--proguard-path", |
- rebase_path(_proguard_jar_path, root_build_dir), |
- "--input-path", |
- rebase_path(_input_jar_path, root_build_dir), |
- "--output-path", |
- rebase_path(_output_jar_path, root_build_dir), |
- "--proguard-config", |
- rebase_path(_proguard_config_path, root_build_dir), |
- "--classpath", |
- rebased_android_sdk_jar, |
+ "--input-paths=$_rebased_input_paths", |
+ "--proguard-configs=$_rebased_proguard_configs", |
"--classpath=@FileArg($_rebased_build_config:javac:classpath)", |
] |
} |
@@ -1540,6 +1574,14 @@ template("process_resources") { |
] |
} |
+ if (defined(invoker.proguard_file)) { |
+ outputs += [ invoker.proguard_file ] |
+ args += [ |
+ "--proguard-file", |
+ rebase_path(invoker.proguard_file, root_build_dir), |
+ ] |
+ } |
+ |
if (defined(invoker.args)) { |
args += invoker.args |
} |