Index: build/java.gypi |
diff --git a/build/java.gypi b/build/java.gypi |
index ec8431b92da2e05417a7e716c1eb0d9ad2b69435..297dee71b469f90925caf716ae46cda698c992fe 100644 |
--- a/build/java.gypi |
+++ b/build/java.gypi |
@@ -59,6 +59,7 @@ |
'jar_excluded_classes': [ '*/R.class', '*/R##*.class' ], |
'additional_input_paths': [], |
'dex_path': '<(PRODUCT_DIR)/lib.java/<(_target_name).dex.jar', |
+ 'emma_device_jar': '<(android_sdk_root)/tools/lib/emma_device.jar', |
'generated_src_dirs': ['>@(generated_R_dirs)'], |
'generated_R_dirs': [], |
'has_java_resources%': 0, |
@@ -70,6 +71,13 @@ |
'intermediate_dir': '<(SHARED_INTERMEDIATE_DIR)/<(_target_name)', |
'classes_dir': '<(intermediate_dir)/classes', |
'compile_stamp': '<(intermediate_dir)/compile.stamp', |
+ 'conditions': [ |
+ ['coverage == 1', { |
+ 'classes_final_dir': '<(intermediate_dir)/classes_instr', |
+ }, { |
+ 'classes_final_dir': '<(intermediate_dir)/classes', |
+ }] |
+ ] |
}, |
# This all_dependent_settings is used for java targets only. This will add the |
# jar path to the classpath of dependent java targets. |
@@ -214,6 +222,34 @@ |
}, |
], |
}], |
+ ['coverage == 1', { |
+ 'actions': [ |
+ { |
+ 'action_name': 'emma_instr_<(_target_name)', |
+ 'message': 'Instrumenting <(_target_name) classes', |
+ 'inputs': [ |
+ '<(compile_stamp)', |
+ '<(DEPTH)/build/android/ant/apk-instr.xml', |
+ '<(DEPTH)/build/android/gyp/ant.py', |
+ '<(DEPTH)/build/android/gyp/util/build_utils.py', |
+ ], |
+ 'outputs': [ |
+ '<(intermediate_dir)/coverage.em', |
+ '<(classes_final_dir)', |
+ ], |
+ 'action': [ |
+ 'python', '<(DEPTH)/build/android/gyp/ant.py', |
+ '-DCLASSES_DIR=<(classes_dir)', |
+ '-DCLASSES_INSTR_DIR=<(classes_final_dir)', |
+ '-DEMMA_COVERAGE_FILE=<(intermediate_dir)/coverage.em', |
+ '-DANDROID_SDK_ROOT=<(android_sdk_root)', |
+ '-Dbasedir=.', |
+ '-buildfile', |
+ '<(DEPTH)/build/android/ant/apk-instr.xml', |
+ ] |
+ }, |
+ ], |
+ }], |
], |
'actions': [ |
{ |
@@ -252,11 +288,17 @@ |
{ |
'action_name': 'jar_<(_target_name)', |
'message': 'Creating <(_target_name) jar', |
+ 'conditions': [ |
+ ['coverage == 1', { |
+ 'inputs': [ '<(intermediate_dir)/coverage.em', ] |
+ }, { |
+ 'inputs': [ '<(compile_stamp)' ] |
+ }] |
+ ], |
'inputs': [ |
'<(DEPTH)/build/android/gyp/util/build_utils.py', |
'<(DEPTH)/build/android/gyp/util/md5_check.py', |
'<(DEPTH)/build/android/gyp/jar.py', |
- '<(compile_stamp)', |
], |
'outputs': [ |
'<(jar_path)', |