Index: build/config/android/internal_rules.gni |
diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni |
index f228bacb7f2fec4fc605562fb6b79c418ef682e4..87d3876112cbe02bb6832387b826f00a8c79493e 100644 |
--- a/build/config/android/internal_rules.gni |
+++ b/build/config/android/internal_rules.gni |
@@ -1015,11 +1015,12 @@ if (enable_java_templates) { |
_rebased_build_config = rebase_path(_build_config, root_build_dir) |
assert(_rebased_build_config != "" || true) # Mark used. |
- _proguard_preprocess = |
- defined(invoker.proguard_preprocess) && invoker.proguard_preprocess |
_input_jar_path = invoker.input_jar_path |
_output_jar_path = invoker.output_jar_path |
+ _proguard_preprocess = |
+ defined(invoker.proguard_preprocess) && invoker.proguard_preprocess |
+ |
_jar_excluded_patterns = [] |
if (defined(invoker.jar_excluded_patterns)) { |
_jar_excluded_patterns = invoker.jar_excluded_patterns |
@@ -1028,24 +1029,14 @@ if (enable_java_templates) { |
invoker.strip_resource_classes |
_filter_jar = _jar_excluded_patterns != [] || _strip_resource_classes |
+ _enable_assert = is_java_debug && defined(invoker.supports_android) && |
agrieve
2016/11/11 21:30:47
nit: also enable when dcheck_always_on is set (thi
F
2016/11/14 18:43:44
Done.
|
+ invoker.supports_android |
agrieve
2016/11/11 21:30:47
nit: you have supports_android here twice :P.
jbudorick
2016/11/11 21:50:20
defined & checking the value?
|
+ assert(_enable_assert || true) # Mark used. |
+ |
if (_filter_jar) { |
_filter_target = "${target_name}__filter" |
- _output_jar_target = _filter_target |
- } |
- if (_proguard_preprocess) { |
- _proguard_target = "${target_name}__proguard_process" |
- _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" |
- } |
+ _filter_jar_path = "$target_out_dir/$target_name-filtered.jar" |
action(_filter_target) { |
script = "//build/android/gyp/jar.py" |
forward_variables_from(invoker, |
@@ -1058,13 +1049,13 @@ if (enable_java_templates) { |
_input_jar_path, |
] |
outputs = [ |
- _filtered_jar_path, |
+ _filter_jar_path, |
] |
args = [ |
"--input-jar", |
rebase_path(_input_jar_path, root_build_dir), |
"--jar-path", |
- rebase_path(_filtered_jar_path, root_build_dir), |
+ rebase_path(_filter_jar_path, root_build_dir), |
"--excluded-classes=$_jar_excluded_patterns", |
] |
if (_strip_resource_classes) { |
@@ -1074,10 +1065,12 @@ if (enable_java_templates) { |
} |
if (_proguard_preprocess) { |
+ _output_jar_target = "${target_name}__proguard_process" |
+ _proguard_output_jar = _output_jar_path |
_proguard_config_path = invoker.proguard_preprocess_config |
- proguard(_proguard_target) { |
+ proguard(_output_jar_target) { |
if (_filter_jar) { |
- _proguard_input_jar = _filtered_jar_path |
+ _proguard_input_jar = _filter_jar_path |
public_deps = [ |
":$_filter_target", |
] |
@@ -1096,9 +1089,10 @@ if (enable_java_templates) { |
_proguard_config_path, |
_proguard_input_jar, |
] |
- output_jar_path = _output_jar_path |
+ output_jar_path = _proguard_output_jar |
- _rebased_input_paths = [ rebase_path(_input_jar_path, root_build_dir) ] |
+ _rebased_input_paths = |
+ [ rebase_path(_proguard_input_jar, root_build_dir) ] |
_rebased_proguard_configs = |
[ rebase_path(_proguard_config_path, root_build_dir) ] |
args = [ |
@@ -1107,15 +1101,58 @@ if (enable_java_templates) { |
"--classpath=@FileArg($_rebased_build_config:javac:classpath)", |
] |
} |
- } else if (!_filter_jar) { |
- copy(_copy_target) { |
- forward_variables_from(invoker, |
- [ |
- "deps", |
- "public_deps", |
- ]) |
+ } else if (_enable_assert) { |
+ _output_jar_target = "${target_name}__assert" |
+ _assert_output_jar = _output_jar_path |
+ action(_output_jar_target) { |
jbudorick
2016/11/11 21:50:20
This should have some kind of stated dependency on
F
2016/11/14 18:43:44
Done.
|
+ script = "$root_out_dir/bin/java_assertion_enabler" |
jbudorick
2016/11/11 21:50:20
I would prefer if this wasn't in $root_out_dir/bin
F
2016/11/14 18:43:44
Done.
|
+ if (_filter_jar) { |
+ _assert_input_jar = _filter_jar_path |
+ public_deps = [ |
+ ":$_filter_target", |
+ ] |
+ } else { |
+ _assert_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, |
agrieve
2016/11/11 21:30:47
nit: this isn't an input and can be removed.
F
2016/11/14 18:43:44
Done.
|
+ _assert_input_jar, |
+ ] |
+ outputs = [ |
+ _assert_output_jar, |
+ ] |
+ args = [ |
+ rebase_path(_assert_input_jar, root_build_dir), |
+ rebase_path(_assert_output_jar, root_build_dir), |
+ ] |
+ } |
+ } else { |
+ _output_jar_target = "${target_name}__copy" |
+ copy(_output_jar_target) { |
+ if (_filter_jar) { |
+ _copy_input_jar = _filter_jar_path |
+ public_deps = [ |
+ ":$_filter_target", |
+ ] |
+ } else { |
+ _copy_input_jar = _input_jar_path |
+ public_deps = [] |
+ } |
+ if (defined(invoker.deps)) { |
+ deps = invoker.deps |
+ } |
+ if (defined(invoker.public_deps)) { |
+ public_deps += invoker.public_deps |
+ } |
sources = [ |
- _input_jar_path, |
+ _copy_input_jar, |
] |
outputs = [ |
_output_jar_path, |
@@ -1810,6 +1847,7 @@ if (enable_java_templates) { |
visibility += [ ":$_dex_target_name" ] |
} |
+ supports_android = _supports_android |
build_config = _build_config |
input_jar_path = invoker.jar_path |
output_jar_path = _jar_path |
@@ -2101,6 +2139,7 @@ if (enable_java_templates) { |
"proguard_preprocess", |
"proguard_preprocess_config", |
]) |
+ supports_android = _supports_android |
build_config = _build_config |
input_jar_path = _javac_jar_path |
output_jar_path = _process_prebuilt_jar_path |