Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(27)

Unified Diff: build/config/android/rules.gni

Issue 557463002: Make base_unittests_apk actually work (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@gn-group-datadeps
Patch Set: Rebase Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « build/config/BUILDCONFIG.gn ('k') | build/toolchain/android/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/config/android/rules.gni
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
index e6df98b6e9bf369c57536aa6bb47ca5920f47733..8198118b04ad3ca5d6ec97298b71638d06a3b389 100644
--- a/build/config/android/rules.gni
+++ b/build/config/android/rules.gni
@@ -856,7 +856,7 @@ template("unittest_apk") {
if (defined(invoker.unittests_binary)) {
unittests_binary = root_out_dir + "/" + invoker.unittests_binary
} else {
- unittests_binary = root_out_dir + "/" + test_suite_name
+ unittests_binary = root_out_dir + "/lib.stripped/lib" + test_suite_name + ".so"
}
android_apk(target_name) {
@@ -871,6 +871,9 @@ template("unittest_apk") {
if (defined(invoker.deps)) {
deps = invoker.deps
}
+ datadeps = [
+ "//tools/android/md5sum",
+ ]
testonly = true
}
}
@@ -944,3 +947,80 @@ template("android_aidl") {
args += rebase_path(sources, root_build_dir)
}
}
+
+# Creates a dist directory for a native executable.
+#
+# Running a native executable on a device requires all the shared library
+# dependencies of that executable. To make it easier to install and run such an
+# executable, this will create a directory containing the native exe and all
+# it's library dependencies.
+#
+# Note: It's usually better to package things as an APK than as a native
+# executable.
+#
+# Variables
+# dist_dir: Directory for the exe and libraries. Everything in this directory
+# will be deleted before copying in the exe and libraries.
+# binary: Path to (stripped) executable.
+#
+# Example
+# create_native_executable_dist("foo_dist") {
+# dist_dir = "$root_build_dir/foo_dist"
+# binary = "$root_build_dir/exe.stripped/foo"
+# }
+template("create_native_executable_dist") {
+ dist_dir = invoker.dist_dir
+ binary = invoker.binary
+ final_deps = []
+ template_name = target_name
+
+ libraries_list = "${target_gen_dir}/${template_name}_library_dependencies.list"
+
+ # TODO(gyp)
+ #'dependencies': [
+ #'<(DEPTH)/build/android/setup.gyp:copy_system_libraries',
+ #],
+
+ stripped_libraries_dir = "$root_build_dir/lib.stripped"
+ final_deps += [ ":${template_name}__find_library_dependencies" ]
+ action("${template_name}__find_library_dependencies") {
+ script = "//build/android/gyp/write_ordered_libraries.py"
+ depfile = "$target_gen_dir/$target_name.d"
+ inputs = [
+ binary,
+ android_readelf,
+ ]
+ outputs = [
+ depfile,
+ libraries_list,
+ ]
+ rebased_binaries = rebase_path([ binary ], root_build_dir)
+ args = [
+ "--depfile", rebase_path(depfile, root_build_dir),
+ "--input-libraries=$rebased_binaries",
+ "--libraries-dir", rebase_path(stripped_libraries_dir, root_build_dir),
+ "--output", rebase_path(libraries_list, root_build_dir),
+ "--readelf", rebase_path(android_readelf, root_build_dir),
+ ]
+ }
+
+ final_deps += [ ":${template_name}__copy_libraries_and_exe" ]
+ copy_ex("${template_name}__copy_libraries_and_exe") {
+ clear_dir = true
+ inputs = [
+ binary,
+ libraries_list
+ ]
+ dest = dist_dir
+ rebased_binaries_list = rebase_path([ binary ], root_build_dir)
+ rebased_libraries_list = rebase_path(libraries_list, root_build_dir)
+ args = [
+ "--files=$rebased_binaries_list",
+ "--files=@FileArg($rebased_libraries_list:libraries)",
+ ]
+ }
+
+ group(target_name) {
+ deps = final_deps
+ }
+}
« no previous file with comments | « build/config/BUILDCONFIG.gn ('k') | build/toolchain/android/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698