Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(74)

Unified Diff: build/config/android/internal_rules.gni

Issue 1993893002: 👾 GN(android): Filter R.class files before obfuscating via proguard (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/config/android/internal_rules.gni
diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni
index 08b2ab6d6fb787279ec9967c4a0a71bc2b81936d..b1d456b4b77eb3dfd9d5538f4eed67c4a8b280fe 100644
--- a/build/config/android/internal_rules.gni
+++ b/build/config/android/internal_rules.gni
@@ -603,22 +603,30 @@ template("process_java_prebuilt") {
if (defined(invoker.jar_excluded_patterns)) {
_jar_excluded_patterns = invoker.jar_excluded_patterns
}
-
_strip_resource_classes =
defined(invoker.strip_resource_classes) && invoker.strip_resource_classes
+ _filter_jar = _jar_excluded_patterns != [] || _strip_resource_classes
- if (_jar_excluded_patterns != [] || _strip_resource_classes) {
- _filter_class_files_input_file = _input_jar_path
- if (_proguard_preprocess) {
- _filter_class_files_input_file =
- "$target_out_dir/$target_name-proguarded.jar"
- }
+ if (_filter_jar) {
+ _filter_target = "${target_name}__filter"
+ _output_jar_target = _filter_target
}
-
if (_proguard_preprocess) {
- _proguard_config_path = invoker.proguard_config
_proguard_target = "${target_name}__proguard_process"
- proguard(_proguard_target) {
+ _output_jar_target = _proguard_target
+ }
+ if (!_filter_jar && !_proguard_preprocess) {
+ _copy_target = "${target_name}__copy"
+ _output_jar_target = _copy_target
+ }
+
+ if (_filter_jar) {
+ _filtered_jar_path = _output_jar_path
+ if (_proguard_preprocess) {
+ _filtered_jar_path = "$target_out_dir/$target_name-filtered.jar"
+ }
+ action(_filter_target) {
+ script = "//build/android/gyp/jar.py"
forward_variables_from(invoker,
[
"deps",
@@ -627,12 +635,47 @@ template("process_java_prebuilt") {
inputs = [
_build_config,
_input_jar_path,
+ ]
+ outputs = [
+ _filtered_jar_path,
+ ]
+ args = [
+ "--input-jar",
+ rebase_path(_input_jar_path, root_build_dir),
+ "--jar-path",
+ rebase_path(_filtered_jar_path, root_build_dir),
+ "--excluded-classes=$_jar_excluded_patterns",
+ ]
+ if (_strip_resource_classes) {
+ args += [ "--strip-resource-classes-for=@FileArg($_rebased_build_config:javac:resource_packages)" ]
+ }
+ }
+ }
+
+ if (_proguard_preprocess) {
+ _proguard_config_path = invoker.proguard_config
+ proguard(_proguard_target) {
+ if (_filter_jar) {
+ _proguard_input_jar = _filtered_jar_path
+ public_deps = [
+ ":$_filter_target",
+ ]
+ } else {
+ _proguard_input_jar = _input_jar_path
+ public_deps = []
+ }
+ if (defined(invoker.deps)) {
+ deps = invoker.deps
+ }
+ if (defined(invoker.public_deps)) {
+ public_deps += invoker.public_deps
+ }
+ inputs = [
+ _build_config,
_proguard_config_path,
+ _proguard_input_jar,
]
output_jar_path = _output_jar_path
- if (defined(_filter_class_files_input_file)) {
- output_jar_path = _filter_class_files_input_file
- }
_rebased_input_paths = [ rebase_path(_input_jar_path, root_build_dir) ]
_rebased_proguard_configs =
@@ -643,9 +686,8 @@ template("process_java_prebuilt") {
"--classpath=@FileArg($_rebased_build_config:javac:classpath)",
]
}
- } else if (_jar_excluded_patterns == [] && !_strip_resource_classes) {
- _output_jar_target = "${target_name}__copy_jar"
- copy(_output_jar_target) {
+ } else if (!_filter_jar) {
+ copy(_copy_target) {
forward_variables_from(invoker,
[
"deps",
@@ -660,42 +702,6 @@ template("process_java_prebuilt") {
}
}
- if (_jar_excluded_patterns != [] || _strip_resource_classes) {
- _output_jar_target = "${target_name}__filter"
- action(_output_jar_target) {
- script = "//build/android/gyp/jar.py"
- if (_proguard_preprocess) {
- deps = [
- ":$_proguard_target",
- ]
- } else {
- forward_variables_from(invoker,
- [
- "deps",
- "public_deps",
- ])
- }
- inputs = [
- _filter_class_files_input_file,
- ]
- outputs = [
- _output_jar_path,
- ]
- args = [
- "--input-jar",
- rebase_path(_filter_class_files_input_file, root_build_dir),
- "--jar-path",
- rebase_path(_output_jar_path, root_build_dir),
- "--excluded-classes=$_jar_excluded_patterns",
- ]
- if (_strip_resource_classes) {
- args += [ "--strip-resource-classes-for=@FileArg($_rebased_build_config:javac:resource_packages)" ]
- }
- }
- } else if (_proguard_preprocess) {
- _output_jar_target = _proguard_target
- }
-
group(target_name) {
forward_variables_from(invoker,
[
@@ -1615,6 +1621,9 @@ template("compile_java") {
deps = [
":$_javac_target_name",
]
+ if (defined(invoker.deps)) {
+ deps += invoker.deps
+ }
}
emma_instr(_emma_instr_target_name) {
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698