Index: build/config/android/rules.gni |
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni |
index a0569974e1b71268a759aad9d57b35846ede3cfb..39b2f397294c69cd726067efd627325a26a49067 100644 |
--- a/build/config/android/rules.gni |
+++ b/build/config/android/rules.gni |
@@ -49,9 +49,6 @@ template("generate_jni") { |
script = "//base/android/jni_generator/jni_generator.py" |
depfile = "$target_gen_dir/$target_name.{{source_name_part}}.d" |
sources = invoker.sources |
- inputs = [ |
- jni_generator_include, |
- ] |
outputs = [ |
depfile, |
"${jni_output_dir}/{{source_name_part}}_jni.h", |
@@ -66,7 +63,7 @@ template("generate_jni") { |
"--output_dir", |
rebase_path(jni_output_dir, root_build_dir), |
"--includes", |
- rebase_path(jni_generator_include, "//"), |
+ rebase_path(jni_generator_include, jni_output_dir), |
"--native_exports_optional", |
] |
if (defined(invoker.jni_generator_jarjar_file)) { |
@@ -166,7 +163,6 @@ template("generate_jar_jni") { |
script = "//base/android/jni_generator/jni_generator.py" |
sources = [ |
jar_file, |
- jni_generator_include, |
] |
outputs = [ |
depfile, |
@@ -185,7 +181,7 @@ template("generate_jar_jni") { |
"--output_dir", |
rebase_path(jni_output_dir, root_build_dir), |
"--includes", |
- rebase_path(jni_generator_include, root_build_dir), |
+ rebase_path(jni_generator_include, jni_output_dir), |
"--native_exports_optional", |
] |
} |
@@ -733,7 +729,7 @@ template("java_strings_grd_prebuilt") { |
# datadeps, testonly |
# |
# Example |
-# java_library("foo") { |
+# java_binary("foo") { |
# java_files = [ "org/chromium/foo/FooMain.java" ] |
# deps = [ ":bar_java" ] |
# main_class = "org.chromium.foo.FooMain" |
@@ -776,7 +772,65 @@ template("java_binary") { |
} |
} |
-# Declare an java library target |
+# Declare a Junit executable target |
+# |
+# This target creates an executable from java code for running as a junit test |
+# suite. The executable will be in the output folder's /bin/ directory. |
+# |
+# Variables |
+# deps: Specifies the dependencies of this target. Java targets in this list |
+# will be included in the executable (and the javac classpath). |
+# |
+# java_files: List of .java files included in this library. |
+# srcjar_deps: List of srcjar dependencies. The .java files in the srcjars |
+# will be added to java_files and be included in this library. |
+# srcjars: List of srcjars to be included in this library, together with the |
+# ones obtained from srcjar_deps. |
+# |
+# chromium_code: If true, extra analysis warning/errors will be enabled. |
+# |
+# Example |
+# junit_binary("foo") { |
+# java_files = [ "org/chromium/foo/FooTest.java" ] |
+# deps = [ ":bar_java" ] |
+# } |
+template("junit_binary") { |
+ set_sources_assignment_filter([]) |
+ |
+ java_binary(target_name) { |
+ bypass_platform_checks = true |
+ main_class = "org.chromium.testing.local.JunitTestMain" |
+ testonly = true |
+ |
+ if (defined(invoker.DEPRECATED_java_in_dir)) { |
+ DEPRECATED_java_in_dir = invoker.DEPRECATED_java_in_dir |
+ } |
+ if (defined(invoker.chromium_code)) { |
+ chromium_code = invoker.chromium_code |
+ } |
+ deps = [ |
+ "//testing/android/junit:junit_test_support", |
+ "//third_party/junit", |
+ "//third_party/mockito:mockito_java", |
+ "//third_party/robolectric:robolectric_java", |
+ "//third_party/robolectric:android-all-4.3_r2-robolectric-0", |
+ ] |
+ if (defined(invoker.deps)) { |
+ deps += invoker.deps |
+ } |
+ if (defined(invoker.java_files)) { |
+ java_files = invoker.java_files |
+ } |
+ if (defined(invoker.srcjar_deps)) { |
+ srcjar_deps = invoker.srcjar_deps |
+ } |
+ if (defined(invoker.srcjars)) { |
+ srcjars = invoker.srcjars |
+ } |
+ } |
+} |
+ |
+# Declare a java library target |
# |
# Variables |
# deps: Specifies the dependencies of this target. Java targets in this list |
@@ -874,7 +928,7 @@ template("java_library") { |
} |
} |
-# Declare an java library target for a prebuilt jar |
+# Declare a java library target for a prebuilt jar |
# |
# Variables |
# deps: Specifies the dependencies of this target. Java targets in this list |
@@ -1107,6 +1161,8 @@ template("android_java_prebuilt") { |
# native_libs: List paths of native libraries to include in this apk. If these |
# libraries depend on other shared_library targets, those dependencies will |
# also be included in the apk. |
+# apk_under_test: For an instrumentation test apk, this is the target of the |
+# tested apk. |
# testonly: Marks this target as "test-only". |
# |
# DEPRECATED_java_in_dir: Directory containing java files. All .java files in |
@@ -1138,9 +1194,10 @@ template("android_apk") { |
} |
assert(defined(invoker.final_apk_path) || defined(invoker.apk_name)) |
+ assert(defined(invoker.android_manifest)) |
gen_dir = "$target_gen_dir/$target_name" |
base_path = "$gen_dir/$target_name" |
- _build_config = "$base_path.build_config" |
+ _build_config = "$target_gen_dir/$target_name.build_config" |
resources_zip_path = "$base_path.resources.zip" |
all_resources_zip_path = "$base_path.resources.all.zip" |
jar_path = "$base_path.jar" |
@@ -1223,6 +1280,7 @@ template("android_apk") { |
} |
} |
+ _android_manifest = invoker.android_manifest |
_rebased_build_config = rebase_path(_build_config, root_build_dir) |
write_build_config("${_template_name}__build_config") { |
@@ -1230,11 +1288,16 @@ template("android_apk") { |
dex_path = final_dex_path |
resources_zip = resources_zip_path |
build_config = _build_config |
+ android_manifest = _android_manifest |
if (defined(invoker.deps)) { |
deps = invoker.deps |
} |
+ if (defined(invoker.apk_under_test)) { |
+ apk_under_test = invoker.apk_under_test |
+ } |
+ |
native_libs = _native_libs |
} |
@@ -1243,7 +1306,7 @@ template("android_apk") { |
final_deps += [ ":${_template_name}__process_resources" ] |
process_resources("${_template_name}__process_resources") { |
srcjar_path = "${target_gen_dir}/${target_name}.srcjar" |
- android_manifest = invoker.android_manifest |
+ android_manifest = _android_manifest |
resource_dirs = [ "//build/android/ant/empty/res" ] |
zip_path = resources_zip_path |
generate_constant_ids = true |
@@ -1289,7 +1352,7 @@ template("android_apk") { |
supports_android = true |
requires_android = true |
override_build_config = _build_config |
- android_manifest = invoker.android_manifest |
+ android_manifest = _android_manifest |
chromium_code = true |
if (defined(invoker.java_files)) { |
java_files = invoker.java_files |
@@ -1397,7 +1460,7 @@ template("android_apk") { |
final_deps += [ ":${_template_name}__create" ] |
create_apk("${_template_name}__create") { |
apk_path = _final_apk_path |
- android_manifest = invoker.android_manifest |
+ android_manifest = _android_manifest |
resources_zip = all_resources_zip_path |
dex_path = final_dex_path |
load_library_from_apk = _load_library_from_apk |
@@ -1490,13 +1553,12 @@ template("unittest_apk") { |
} |
android_apk(target_name) { |
- _apk_name = apk_name |
- final_apk_path = "$root_build_dir/${_apk_name}_apk/${_apk_name}-debug.apk" |
+ final_apk_path = "$root_build_dir/${apk_name}_apk/${apk_name}-debug.apk" |
java_files = [ |
- "//testing/android/java/src/org/chromium/native_test/ChromeNativeTestActivity.java", |
- "//testing/android/java/src/org/chromium/native_test/ChromeNativeTestInstrumentationTestRunner.java", |
+ "//testing/android/native_test/java/src/org/chromium/native_test/ChromeNativeTestActivity.java", |
+ "//testing/android/native_test/java/src/org/chromium/native_test/ChromeNativeTestInstrumentationTestRunner.java", |
] |
- android_manifest = "//testing/android/java/AndroidManifest.xml" |
+ android_manifest = "//testing/android/native_test/java/AndroidManifest.xml" |
native_libs = [ unittests_binary ] |
if (defined(invoker.asset_location)) { |
asset_location = invoker.asset_location |