| Index: build/config/android/internal_rules.gni
|
| diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni
|
| index 3121ee986856da5a63143c0d71770aa16eabe74c..373d28cead1e474b56f3820af84b407d1f258d0a 100644
|
| --- a/build/config/android/internal_rules.gni
|
| +++ b/build/config/android/internal_rules.gni
|
| @@ -418,7 +418,7 @@ template("copy_ex") {
|
| }
|
| }
|
|
|
| -# Generates a script in the output bin directory which runs the test
|
| +# Generates a script in the build bin directory which runs the test
|
| # target using the test runner script in build/android/test_runner.py.
|
| template("test_runner_script") {
|
| testonly = true
|
| @@ -819,10 +819,10 @@ if (enable_java_templates) {
|
| }
|
| }
|
|
|
| - # Generates a script in the output bin.java directory to run a java binary.
|
| + # Generates a script in the build bin directory to run a java binary.
|
| #
|
| # Variables
|
| - # main_class: The class containing the progam entry point.
|
| + # main_class: The class containing the program entry point.
|
| # jar_path: The path to the jar to run.
|
| # script_name: Name of the script to generate.
|
| # build_config: Path to .build_config for the jar (contains classpath).
|
| @@ -1000,9 +1000,6 @@ if (enable_java_templates) {
|
| _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
|
| @@ -1011,56 +1008,65 @@ if (enable_java_templates) {
|
| invoker.strip_resource_classes
|
| _filter_jar = _jar_excluded_patterns != [] || _strip_resource_classes
|
|
|
| + _proguard_preprocess =
|
| + defined(invoker.proguard_preprocess) && invoker.proguard_preprocess
|
| +
|
| _enable_assert =
|
| defined(invoker.supports_android) && invoker.supports_android &&
|
| (is_java_debug || dcheck_always_on)
|
| - assert(_enable_assert || true) # Mark used.
|
| +
|
| + _retrolambda = defined(invoker.supports_android) &&
|
| + invoker.supports_android && use_java8
|
| +
|
| + _deps = []
|
| + _previous_output_jar = _input_jar_path
|
|
|
| if (_filter_jar) {
|
| _filter_target = "${target_name}__filter"
|
| + _filter_input_jar = _previous_output_jar
|
| + _filter_output_jar = "$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,
|
| - [
|
| - "deps",
|
| - "public_deps",
|
| - ])
|
| + deps = _deps
|
| + if (defined(invoker.deps)) {
|
| + deps += invoker.deps
|
| + }
|
| + if (defined(invoker.public_deps)) {
|
| + public_deps = invoker.public_deps
|
| + }
|
| inputs = [
|
| _build_config,
|
| - _input_jar_path,
|
| + _filter_input_jar,
|
| ]
|
| outputs = [
|
| - _filter_jar_path,
|
| + _filter_output_jar,
|
| ]
|
| args = [
|
| "--input-jar",
|
| - rebase_path(_input_jar_path, root_build_dir),
|
| + rebase_path(_filter_input_jar, root_build_dir),
|
| "--jar-path",
|
| - rebase_path(_filter_jar_path, root_build_dir),
|
| + rebase_path(_filter_output_jar, root_build_dir),
|
| "--excluded-classes=$_jar_excluded_patterns",
|
| ]
|
| if (_strip_resource_classes) {
|
| args += [ "--strip-resource-classes-for=@FileArg($_rebased_build_config:javac:resource_packages)" ]
|
| }
|
| }
|
| +
|
| + _deps = []
|
| + _deps = [ ":$_filter_target" ]
|
| + _previous_output_jar = _filter_output_jar
|
| }
|
|
|
| if (_proguard_preprocess) {
|
| - _output_jar_target = "${target_name}__proguard_process"
|
| - _proguard_output_jar = _output_jar_path
|
| + _proguard_target = "${target_name}__proguard_process"
|
| + _proguard_input_jar = _previous_output_jar
|
| + _proguard_output_jar = "$target_out_dir/$target_name-proguarded.jar"
|
| _proguard_config_path = invoker.proguard_preprocess_config
|
| - proguard(_output_jar_target) {
|
| - if (_filter_jar) {
|
| - _proguard_input_jar = _filter_jar_path
|
| - deps = [
|
| - ":$_filter_target",
|
| - ]
|
| - } else {
|
| - _proguard_input_jar = _input_jar_path
|
| - deps = []
|
| - }
|
| +
|
| + proguard(_proguard_target) {
|
| + deps = _deps
|
| if (defined(invoker.deps)) {
|
| deps += invoker.deps
|
| }
|
| @@ -1084,20 +1090,23 @@ if (enable_java_templates) {
|
| "--classpath=@FileArg($_rebased_build_config:javac:classpath)",
|
| ]
|
| }
|
| - } else if (_enable_assert) {
|
| - _output_jar_target = "${target_name}__assert"
|
| - _assert_output_jar = _output_jar_path
|
| - action(_output_jar_target) {
|
| - script = "$root_out_dir/bin/helper/java_assertion_enabler"
|
| +
|
| + _deps = []
|
| + _deps = [ ":$_proguard_target" ]
|
| + _previous_output_jar = _proguard_output_jar
|
| + }
|
| +
|
| + if (_enable_assert) {
|
| + _assert_target = "${target_name}__assert"
|
| + _assert_input_jar = _previous_output_jar
|
| + _assert_output_jar = "$target_out_dir/$target_name-asserted.jar"
|
| +
|
| + action(_assert_target) {
|
| + script = "$root_build_dir/bin/helper/java_assertion_enabler"
|
| deps = [
|
| "//build/android/java_assertion_enabler($default_toolchain)",
|
| ]
|
| - if (_filter_jar) {
|
| - _assert_input_jar = _filter_jar_path
|
| - deps += [ ":$_filter_target" ]
|
| - } else {
|
| - _assert_input_jar = _input_jar_path
|
| - }
|
| + deps += _deps
|
| if (defined(invoker.deps)) {
|
| deps += invoker.deps
|
| }
|
| @@ -1115,31 +1124,65 @@ if (enable_java_templates) {
|
| 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 = []
|
| - }
|
| +
|
| + _deps = []
|
| + _deps = [ ":$_assert_target" ]
|
| + _previous_output_jar = _assert_output_jar
|
| + }
|
| +
|
| + if (_retrolambda) {
|
| + _retrolambda_target = "${target_name}__retrolambda"
|
| + _retrolambda_input_jar = _previous_output_jar
|
| + _retrolambda_output_jar = "$target_out_dir/$target_name-retrolambda.jar"
|
| +
|
| + android_sdk_jar = "$android_sdk/android.jar"
|
| + action(_retrolambda_target) {
|
| + script = "//build/android/gyp/retrolambda.py"
|
| + deps = _deps
|
| if (defined(invoker.deps)) {
|
| - deps = invoker.deps
|
| + deps += invoker.deps
|
| }
|
| if (defined(invoker.public_deps)) {
|
| - public_deps += invoker.public_deps
|
| + public_deps = invoker.public_deps
|
| }
|
| - sources = [
|
| - _copy_input_jar,
|
| + inputs = [
|
| + _build_config,
|
| + _retrolambda_input_jar,
|
| ]
|
| outputs = [
|
| - _output_jar_path,
|
| + _retrolambda_output_jar,
|
| + ]
|
| + args = [
|
| + "--input-jar",
|
| + rebase_path(_retrolambda_input_jar, root_build_dir),
|
| + "--output-jar",
|
| + rebase_path(_retrolambda_output_jar, root_build_dir),
|
| + "--classpath=@FileArg($_rebased_build_config:javac:classpath)",
|
| + "--android-sdk-jar",
|
| + rebase_path(android_sdk_jar, root_build_dir),
|
| ]
|
| }
|
| +
|
| + _deps = []
|
| + _deps = [ ":$_retrolambda_target" ]
|
| + _previous_output_jar = _retrolambda_output_jar
|
| + }
|
| +
|
| + _output_jar_target = "${target_name}__copy"
|
| + copy(_output_jar_target) {
|
| + deps = _deps
|
| + if (defined(invoker.deps)) {
|
| + deps += invoker.deps
|
| + }
|
| + if (defined(invoker.public_deps)) {
|
| + public_deps = invoker.public_deps
|
| + }
|
| + sources = [
|
| + _previous_output_jar,
|
| + ]
|
| + outputs = [
|
| + _output_jar_path,
|
| + ]
|
| }
|
|
|
| group(target_name) {
|
| @@ -2079,7 +2122,9 @@ if (enable_java_templates) {
|
| rebase_path(_android_sdk_ijar, root_build_dir)
|
| args += [ "--bootclasspath=$_rebased_android_sdk_ijar" ]
|
| }
|
| - if (_supports_android) {
|
| + if (use_java8) {
|
| + args += [ "--java-version=1.8" ]
|
| + } else if (_supports_android) {
|
| args += [ "--java-version=1.7" ]
|
| }
|
| foreach(e, _manifest_entries) {
|
|
|