Chromium Code Reviews| Index: build/config/android/rules.gni |
| diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni |
| index f3076be1f42fe1222668cd1d6a9e9d011226a6cf..fab5711bc3d73ff3b637ddd05d02c8de5d4edf40 100644 |
| --- a/build/config/android/rules.gni |
| +++ b/build/config/android/rules.gni |
| @@ -46,6 +46,7 @@ template("generate_jni") { |
| foreach_target_name = "${target_name}__jni_gen" |
| action_foreach(foreach_target_name) { |
| + forward_variables_from(invoker, [ "deps" ]) |
| script = "//base/android/jni_generator/jni_generator.py" |
| depfile = "$target_gen_dir/$target_name.{{source_name_part}}.d" |
| sources = invoker.sources |
| @@ -2112,6 +2113,7 @@ template("instrumentation_test_apk") { |
| # of the unittests_dep target postfixed with "_apk" |
| # use_default_launcher: Whether the default activity (NativeUnitTestActivity) |
| # should be used for launching tests. |
| +# use_native_activity: Test implements ANativeActivity_onCreate(). |
| # |
| # Example |
| # unittest_apk("foo_unittests_apk") { |
| @@ -2119,6 +2121,42 @@ template("instrumentation_test_apk") { |
| # unittests_dep = ":foo_unittests" |
| # } |
| template("unittest_apk") { |
| + assert(defined(invoker.unittests_dep), "Need unittests_dep for $target_name") |
| + _test_suite_name = get_label_info(invoker.unittests_dep, "name") |
| + |
| + # This trivial assert is needed in case both unittests_binary and apk_name |
| + # are defined, as otherwise _test_suite_name would not be used. |
| + assert(_test_suite_name != "") |
| + |
| + _use_native_activity = |
| + defined(invoker.use_native_activity) && invoker.use_native_activity |
| + |
| + # This trivial assert is needed in case both android_manifest and !use_default_launcher |
|
Dirk Pranke
2016/05/20 17:18:41
nit: wrap long line?
ynovikov
2016/05/26 03:16:15
Done.
|
| + # are defined, as otherwise _use_native_activity would not be used. |
| + assert(_use_native_activity != "") |
| + _android_manifest = "$target_gen_dir/$target_name/AndroidManifest.xml" |
| + |
| + # This trivial assert is needed in case android_manifest |
| + # is defined, as otherwise _android_manifest would not be used. |
| + assert(_android_manifest != "") |
| + |
| + if (!defined(invoker.android_manifest)) { |
| + jinja_template("${target_name}_manifest") { |
| + if (!defined(invoker.unittests_binary)) { |
| + native_library_name = _test_suite_name |
| + } else { |
| + native_library_name = invoker.unittests_binary |
| + } |
| + input = "//testing/android/native_test/java/AndroidManifest.xml.jinja2" |
| + output = _android_manifest |
| + variables = [ |
| + "is_component_build=${is_component_build}", |
| + "native_library_name=${native_library_name}", |
| + "use_native_activity=${_use_native_activity}", |
| + ] |
| + } |
| + } |
| + |
| android_apk(target_name) { |
| set_sources_assignment_filter([]) |
| data_deps = [] |
| @@ -2126,31 +2164,28 @@ template("unittest_apk") { |
| forward_variables_from(invoker, "*") |
| testonly = true |
| - assert(defined(unittests_dep), "Need unittests_dep for $target_name") |
| - |
| - test_suite_name = get_label_info(unittests_dep, "name") |
| - |
| - # This trivial assert is needed in case both unittests_binary and apk_name |
| - # are defined, as otherwise test_suite_name would not be used. |
| - assert(test_suite_name != "") |
| - |
| if (!defined(apk_name)) { |
| apk_name = test_suite_name |
| } |
| if (!defined(android_manifest)) { |
| - android_manifest = |
| - "//testing/android/native_test/java/AndroidManifest.xml" |
| + deps += [ ":${target_name}_manifest" ] |
| + android_manifest = _android_manifest |
| } |
| if (!defined(unittests_binary)) { |
| - unittests_binary = "lib${test_suite_name}${shlib_extension}" |
| + unittests_binary = "lib${_test_suite_name}${shlib_extension}" |
| } |
| final_apk_path = "$root_build_dir/${apk_name}_apk/${apk_name}-debug.apk" |
| if (!defined(use_default_launcher) || use_default_launcher) { |
| - deps += [ "//testing/android/native_test:native_test_java" ] |
| + if (_use_native_activity) { |
| + deps += |
| + [ "//testing/android/native_test:native_test_native_activity_java" ] |
| + } else { |
| + deps += [ "//testing/android/native_test:native_test_java" ] |
| + } |
| } |
| native_libs = [ unittests_binary ] |
| deps += [ |