| Index: build/config/android/internal_rules.gni
|
| diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni
|
| index 43f2d3eef5e90eba4e17290c892e48f137197bef..08b2ab6d6fb787279ec9967c4a0a71bc2b81936d 100644
|
| --- a/build/config/android/internal_rules.gni
|
| +++ b/build/config/android/internal_rules.gni
|
| @@ -589,20 +589,38 @@ template("process_java_prebuilt") {
|
| set_sources_assignment_filter([])
|
| forward_variables_from(invoker, [ "testonly" ])
|
|
|
| + assert(invoker.build_config != "")
|
| + _build_config = invoker.build_config
|
| + _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
|
|
|
| - assert(invoker.build_config != "")
|
| + _jar_excluded_patterns = []
|
| + if (defined(invoker.jar_excluded_patterns)) {
|
| + _jar_excluded_patterns = invoker.jar_excluded_patterns
|
| + }
|
|
|
| - if (defined(invoker.proguard_preprocess) && invoker.proguard_preprocess) {
|
| - _build_config = invoker.build_config
|
| - _rebased_build_config = rebase_path(_build_config, root_build_dir)
|
| + _strip_resource_classes =
|
| + defined(invoker.strip_resource_classes) && invoker.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 (_proguard_preprocess) {
|
| _proguard_config_path = invoker.proguard_config
|
| - _output_jar_target = "${target_name}__proguard_process"
|
| - proguard(_output_jar_target) {
|
| + _proguard_target = "${target_name}__proguard_process"
|
| + proguard(_proguard_target) {
|
| forward_variables_from(invoker,
|
| [
|
| - "data_deps",
|
| "deps",
|
| "public_deps",
|
| ])
|
| @@ -612,6 +630,10 @@ template("process_java_prebuilt") {
|
| _proguard_config_path,
|
| ]
|
| 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 =
|
| [ rebase_path(_proguard_config_path, root_build_dir) ]
|
| @@ -621,12 +643,11 @@ template("process_java_prebuilt") {
|
| "--classpath=@FileArg($_rebased_build_config:javac:classpath)",
|
| ]
|
| }
|
| - } else {
|
| + } else if (_jar_excluded_patterns == [] && !_strip_resource_classes) {
|
| _output_jar_target = "${target_name}__copy_jar"
|
| copy(_output_jar_target) {
|
| forward_variables_from(invoker,
|
| [
|
| - "data_deps",
|
| "deps",
|
| "public_deps",
|
| ])
|
| @@ -639,8 +660,48 @@ 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, [ "visibility" ])
|
| + forward_variables_from(invoker,
|
| + [
|
| + "data_deps",
|
| + "visibility",
|
| + ])
|
| public_deps = [
|
| ":$_output_jar_target",
|
| ]
|
| @@ -1308,6 +1369,11 @@ template("java_prebuilt_impl") {
|
| }
|
|
|
| process_java_prebuilt(_process_jar_target_name) {
|
| + forward_variables_from(invoker,
|
| + [
|
| + "jar_excluded_patterns",
|
| + "strip_resource_classes",
|
| + ])
|
| visibility = [
|
| ":$_ijar_target_name",
|
| ":$_template_name",
|
| @@ -1419,11 +1485,6 @@ template("compile_java") {
|
|
|
| _build_config = invoker.build_config
|
|
|
| - _jar_excluded_patterns = []
|
| - if (defined(invoker.jar_excluded_patterns)) {
|
| - _jar_excluded_patterns += invoker.jar_excluded_patterns
|
| - }
|
| -
|
| _chromium_code = false
|
| if (defined(invoker.chromium_code)) {
|
| _chromium_code = invoker.chromium_code
|
| @@ -1507,7 +1568,6 @@ template("compile_java") {
|
| "--jar-path=$_rebased_jar_path",
|
| "--java-srcjars=$_rebased_java_srcjars",
|
| "--java-srcjars=@FileArg($_rebased_build_config:javac:srcjars)",
|
| - "--jar-excluded-classes=$_jar_excluded_patterns",
|
| ]
|
| if (_enable_incremental_javac) {
|
| args += [ "--incremental" ]
|
| @@ -1544,6 +1604,7 @@ template("compile_java") {
|
| }
|
|
|
| process_java_prebuilt(_process_prebuilt_target_name) {
|
| + forward_variables_from(invoker, [ "jar_excluded_patterns" ])
|
| build_config = _build_config
|
| input_jar_path = _javac_jar_path
|
| output_jar_path = _process_prebuilt_jar_path
|
|
|