| Index: build/config/android/internal_rules.gni
|
| diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni
|
| index 90867ed48b160c22a1fab68aa46d0f3f180111b1..26ca8498ad8a7764ab409265bccca4018857c8f2 100644
|
| --- a/build/config/android/internal_rules.gni
|
| +++ b/build/config/android/internal_rules.gni
|
| @@ -469,8 +469,6 @@ template("process_java_prebuilt") {
|
|
|
| _input_jar_path = invoker.input_jar_path
|
| _output_jar_path = invoker.output_jar_path
|
| - _output_ijar_path = get_path_info(_output_jar_path, "dir") + "/" +
|
| - get_path_info(_output_jar_path, "name") + ".interface.jar"
|
|
|
| assert(invoker.build_config != "")
|
|
|
| @@ -519,18 +517,79 @@ template("process_java_prebuilt") {
|
| }
|
| }
|
|
|
| - generate_interface_jar("${target_name}__ijar") {
|
| - input_jar = _output_jar_path
|
| - output_jar = _output_ijar_path
|
| - deps = [
|
| + group(target_name) {
|
| + forward_variables_from(invoker, [ "visibility" ])
|
| + public_deps = [
|
| ":$_output_jar_target",
|
| ]
|
| }
|
| +}
|
| +
|
| +template("emma_instr") {
|
| + set_sources_assignment_filter([])
|
| + forward_variables_from(invoker, [ "testonly" ])
|
| +
|
| + assert(invoker.source_files != [] || true) # Mark as used
|
| +
|
| + if (invoker.emma_instrument) {
|
| + _output_jar_target = "${target_name}__process"
|
| + _coverage_file = "$target_out_dir/${target_name}.em"
|
| + _source_dirs_listing_file = "$target_out_dir/${target_name}_sources.txt"
|
| + _emma_jar = "${android_sdk_root}/tools/lib/emma.jar"
|
| + _rebased_source_files = rebase_path(invoker.source_files, root_build_dir)
|
| + action(_output_jar_target) {
|
| + forward_variables_from(invoker, [ "deps" ])
|
| +
|
| + script = "//build/android/gyp/emma_instr.py"
|
| + depfile = "${target_gen_dir}/${target_name}.d"
|
| + inputs = [
|
| + _emma_jar,
|
| + invoker.input_jar_path,
|
| + ]
|
| + outputs = [
|
| + depfile,
|
| + _coverage_file,
|
| + _source_dirs_listing_file,
|
| + invoker.output_jar_path,
|
| + ]
|
| + args = [
|
| + "instrument_jar",
|
| + "--input-path",
|
| + rebase_path(invoker.input_jar_path, root_build_dir),
|
| + "--output-path",
|
| + rebase_path(invoker.output_jar_path, root_build_dir),
|
| + "--depfile",
|
| + rebase_path(depfile, root_build_dir),
|
| + "--coverage-file",
|
| + rebase_path(_coverage_file, root_build_dir),
|
| + "--sources-list-file",
|
| + rebase_path(_source_dirs_listing_file, root_build_dir),
|
| + "--source-files=$_rebased_source_files",
|
| + "--src-root",
|
| + rebase_path("//", root_build_dir),
|
| + "--emma-jar",
|
| + rebase_path(_emma_jar, root_build_dir),
|
| + "--filter-string",
|
| + emma_filter,
|
| + ]
|
| + }
|
| + } else {
|
| + _output_jar_target = "${target_name}__copy_jar"
|
| + copy(_output_jar_target) {
|
| + forward_variables_from(invoker, [ "deps" ])
|
| +
|
| + sources = [
|
| + invoker.input_jar_path,
|
| + ]
|
| + outputs = [
|
| + invoker.output_jar_path,
|
| + ]
|
| + }
|
| + }
|
|
|
| group(target_name) {
|
| forward_variables_from(invoker, [ "visibility" ])
|
| public_deps = [
|
| - ":${target_name}__ijar",
|
| ":$_output_jar_target",
|
| ]
|
| }
|
| @@ -613,6 +672,12 @@ template("package_apk") {
|
| if (_native_lib_placeholders != []) {
|
| args += [ "--native-lib-placeholders=$_native_lib_placeholders" ]
|
| }
|
| +
|
| + if (defined(invoker.emma_instrument) && invoker.emma_instrument) {
|
| + _emma_device_jar = "$android_sdk_root/tools/lib/emma_device.jar"
|
| + _rebased_emma_device_jar = rebase_path(_emma_device_jar, root_build_dir)
|
| + args += [ "--emma-device-jar=$_rebased_emma_device_jar" ]
|
| + }
|
| }
|
| }
|
|
|
| @@ -881,6 +946,7 @@ template("create_apk") {
|
| forward_variables_from(invoker,
|
| [
|
| "assets_build_config",
|
| + "emma_instrument",
|
| "native_lib_placeholders",
|
| "native_libs_dir",
|
| ])
|
| @@ -896,7 +962,11 @@ template("create_apk") {
|
|
|
| _incremental_package_target = "${target_name}_incremental__package"
|
| package_apk(_incremental_package_target) {
|
| - forward_variables_from(invoker, [ "assets_build_config" ])
|
| + forward_variables_from(invoker,
|
| + [
|
| + "assets_build_config",
|
| + "emma_instrument",
|
| + ])
|
| _dex_target = "//build/android/incremental_install:bootstrap_java__dex"
|
| deps = _incremental_deps + [
|
| ":${_incremental_package_resources_target_name}",
|
| @@ -1003,6 +1073,8 @@ template("java_prebuilt_impl") {
|
| # so do not put them under gen/.
|
| _target_dir_name = get_label_info(":$target_name", "dir")
|
| _jar_path = "$root_out_dir/lib.java$_target_dir_name/$target_name.jar"
|
| + _ijar_path =
|
| + "$root_out_dir/lib.java$_target_dir_name/$target_name.interface.jar"
|
| _build_config = _base_path + ".build_config"
|
|
|
| if (_supports_android) {
|
| @@ -1021,6 +1093,7 @@ template("java_prebuilt_impl") {
|
|
|
| _build_config_target_name = "${_template_name}__build_config"
|
| _process_jar_target_name = "${_template_name}__process_jar"
|
| + _ijar_target_name = "${_template_name}__ijar"
|
| if (_supports_android) {
|
| _dex_target_name = "${_template_name}__dex"
|
| }
|
| @@ -1040,7 +1113,10 @@ template("java_prebuilt_impl") {
|
| }
|
|
|
| process_java_prebuilt(_process_jar_target_name) {
|
| - visibility = [ ":$_template_name" ]
|
| + visibility = [
|
| + ":$_ijar_target_name",
|
| + ":$_template_name",
|
| + ]
|
| if (_supports_android) {
|
| visibility += [ ":$_dex_target_name" ]
|
| }
|
| @@ -1057,6 +1133,14 @@ template("java_prebuilt_impl") {
|
| deps = [ ":$_build_config_target_name" ] + _deps + _jar_deps
|
| }
|
|
|
| + generate_interface_jar(_ijar_target_name) {
|
| + input_jar = _jar_path
|
| + output_jar = _ijar_path
|
| + deps = [
|
| + ":$_process_jar_target_name",
|
| + ]
|
| + }
|
| +
|
| if (_supports_android) {
|
| dex(_dex_target_name) {
|
| sources = [
|
| @@ -1088,6 +1172,7 @@ template("java_prebuilt_impl") {
|
| group(target_name) {
|
| forward_variables_from(invoker, [ "data_deps" ])
|
| deps = [
|
| + ":$_ijar_target_name",
|
| ":$_process_jar_target_name",
|
| ]
|
| if (_supports_android) {
|
| @@ -1128,7 +1213,11 @@ template("compile_java") {
|
|
|
| _java_files = invoker.java_files
|
| _final_jar_path = invoker.jar_path
|
| - _intermediate_jar_path = "$target_gen_dir/$target_name.initial.jar"
|
| + _javac_jar_path = "$target_gen_dir/$target_name.javac.jar"
|
| + _process_prebuilt_jar_path =
|
| + "$target_gen_dir/$target_name.process_prebuilt.jar"
|
| + _final_ijar_path = get_path_info(_final_jar_path, "dir") + "/" +
|
| + get_path_info(_final_jar_path, "name") + ".interface.jar"
|
|
|
| _build_config = invoker.build_config
|
|
|
| @@ -1183,10 +1272,12 @@ template("compile_java") {
|
| assert(_srcjar_deps == [] || true)
|
|
|
| _rebased_build_config = rebase_path(_build_config, root_build_dir)
|
| - _rebased_jar_path = rebase_path(_intermediate_jar_path, root_build_dir)
|
| + _rebased_jar_path = rebase_path(_javac_jar_path, root_build_dir)
|
|
|
| _javac_target_name = "${target_name}__javac"
|
| - _finish_target_name = "${target_name}__finish"
|
| + _process_prebuilt_target_name = "${target_name}__process_prebuilt"
|
| + _emma_instr_target_name = "${target_name}__emma_instr"
|
| + _ijar_target_name = "${target_name}__ijar"
|
| _final_target_name = target_name
|
|
|
| action(_javac_target_name) {
|
| @@ -1199,8 +1290,8 @@ template("compile_java") {
|
|
|
| outputs = [
|
| depfile,
|
| - _intermediate_jar_path,
|
| - _intermediate_jar_path + ".md5.stamp",
|
| + _javac_jar_path,
|
| + _javac_jar_path + ".md5.stamp",
|
| ]
|
| sources = _java_files + _java_srcjars
|
| inputs = [
|
| @@ -1221,7 +1312,7 @@ template("compile_java") {
|
| if (_enable_incremental_javac) {
|
| args += [ "--incremental" ]
|
| deps += [ "//third_party/jmake" ]
|
| - outputs += [ "${_intermediate_jar_path}.pdb" ]
|
| + outputs += [ "${_javac_jar_path}.pdb" ]
|
| }
|
| if (_supports_android) {
|
| if (defined(invoker.alternative_android_sdk_ijar)) {
|
| @@ -1251,12 +1342,10 @@ template("compile_java") {
|
| args += rebase_path(_java_files, root_build_dir)
|
| }
|
|
|
| - process_java_prebuilt(_finish_target_name) {
|
| - visibility = [ ":$_final_target_name" ]
|
| -
|
| + process_java_prebuilt(_process_prebuilt_target_name) {
|
| build_config = _build_config
|
| - input_jar_path = _intermediate_jar_path
|
| - output_jar_path = _final_jar_path
|
| + input_jar_path = _javac_jar_path
|
| + output_jar_path = _process_prebuilt_jar_path
|
| if (defined(invoker.proguard_preprocess) && invoker.proguard_preprocess) {
|
| proguard_preprocess = invoker.proguard_preprocess
|
| proguard_config = invoker.proguard_config
|
| @@ -1266,10 +1355,36 @@ template("compile_java") {
|
| ]
|
| }
|
|
|
| + emma_instr(_emma_instr_target_name) {
|
| + visibility = [
|
| + ":$_ijar_target_name",
|
| + ":$_final_target_name",
|
| + ]
|
| +
|
| + forward_variables_from(invoker, [ "emma_instrument" ])
|
| +
|
| + input_jar_path = _process_prebuilt_jar_path
|
| + output_jar_path = _final_jar_path
|
| + source_files = _java_files
|
| +
|
| + deps = [
|
| + ":$_process_prebuilt_target_name",
|
| + ]
|
| + }
|
| +
|
| + generate_interface_jar(_ijar_target_name) {
|
| + input_jar = _final_jar_path
|
| + output_jar = _final_ijar_path
|
| + deps = [
|
| + ":$_emma_instr_target_name",
|
| + ]
|
| + }
|
| +
|
| group(_final_target_name) {
|
| forward_variables_from(invoker, [ "visibility" ])
|
| public_deps = [
|
| - ":$_finish_target_name",
|
| + ":$_emma_instr_target_name",
|
| + ":$_ijar_target_name",
|
| ]
|
| }
|
| }
|
| @@ -1311,6 +1426,18 @@ template("java_library_impl") {
|
| _run_findbugs = defined(invoker.run_findbugs) && invoker.run_findbugs
|
| assert(_run_findbugs || true) # Mark as used.
|
|
|
| + _chromium_code = true
|
| + if (defined(invoker.chromium_code)) {
|
| + _chromium_code = invoker.chromium_code
|
| + }
|
| +
|
| + _emma_never_instrument = !_chromium_code
|
| + if (defined(invoker.emma_never_instrument)) {
|
| + _emma_never_instrument = invoker.emma_never_instrument
|
| + }
|
| + assert(_emma_never_instrument || true) # Mark as used
|
| + _emma_instrument = emma_coverage && !_emma_never_instrument
|
| +
|
| if (_supports_android) {
|
| _dex_path = _base_path + ".dex.jar"
|
| if (defined(invoker.dex_path)) {
|
| @@ -1351,11 +1478,6 @@ template("java_library_impl") {
|
| }
|
| }
|
|
|
| - _chromium_code = true
|
| - if (defined(invoker.chromium_code)) {
|
| - _chromium_code = invoker.chromium_code
|
| - }
|
| -
|
| _srcjar_deps = []
|
| if (defined(invoker.srcjar_deps)) {
|
| _srcjar_deps = invoker.srcjar_deps
|
| @@ -1414,6 +1536,7 @@ template("java_library_impl") {
|
| srcjars = _srcjars
|
| chromium_code = _chromium_code
|
| supports_android = _supports_android
|
| + emma_instrument = _emma_instrument
|
| deps = build_config_deps
|
| }
|
|
|
| @@ -1466,6 +1589,7 @@ template("java_library_impl") {
|
| _jar_path,
|
| ]
|
| output = _dex_path
|
| + no_locals = _emma_instrument
|
| deps = [
|
| ":$_compile_java_target",
|
| ]
|
|
|