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..521924c568bff52cdba2c67d62fab7f9cd17ac94 100644 |
| --- a/build/config/android/rules.gni |
| +++ b/build/config/android/rules.gni |
| @@ -33,7 +33,11 @@ assert(is_android) |
| # } |
| template("generate_jni") { |
| set_sources_assignment_filter([]) |
| - forward_variables_from(invoker, [ "testonly" ]) |
| + forward_variables_from(invoker, |
| + [ |
| + "testonly", |
| + "deps", |
|
agrieve
2016/05/19 00:42:50
Adding "deps" here makes it apply to all targets d
ynovikov
2016/05/20 02:38:10
Done.
|
| + ]) |
| assert(defined(invoker.sources)) |
| assert(defined(invoker.jni_package)) |
| @@ -81,7 +85,6 @@ template("generate_jni") { |
| group(target_name) { |
| forward_variables_from(invoker, |
| [ |
| - "deps", |
| "public_deps", |
| "visibility", |
| ]) |
| @@ -90,6 +93,9 @@ template("generate_jni") { |
| } |
| public_deps += [ ":$foreach_target_name" ] |
| public_configs = [ ":jni_includes_${target_name}" ] |
| + if (defined(invoker.deps)) { |
| + deps += invoker.deps |
| + } |
| } |
| } |
| @@ -2112,6 +2118,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 +2126,38 @@ 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 != "") |
| + |
| + if (!defined(invoker.apk_name)) { |
| + _apk_name = _test_suite_name |
| + } else { |
| + _apk_name = invoker.apk_name |
| + } |
| + _use_native_activity = |
| + defined(invoker.use_native_activity) && invoker.use_native_activity |
| + |
| + if (!defined(android_manifest)) { |
|
agrieve
2016/05/19 00:42:50
This should be "invoker.android_manifest" I think.
ynovikov
2016/05/20 02:38:10
Done.
|
| + 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 = "${root_gen_dir}/${_apk_name}_jinja/AndroidManifest.xml" |
|
agrieve
2016/05/19 00:42:50
Better to use $target_gen_dir/$target_name/ rather
ynovikov
2016/05/20 02:38:10
Done.
|
| + 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 +2165,27 @@ 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 |
| - } |
| + apk_name = _apk_name |
| if (!defined(android_manifest)) { |
| + deps += [ ":${target_name}_manifest" ] |
| android_manifest = |
| - "//testing/android/native_test/java/AndroidManifest.xml" |
| + "${root_gen_dir}/${_apk_name}_jinja/AndroidManifest.xml" |
|
agrieve
2016/05/19 00:42:50
nit: Make a variable for this in the outer scope.
ynovikov
2016/05/20 02:38:10
Done.
|
| } |
| 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 += [ |