aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar mtklein <mtklein@chromium.org>2016-09-08 10:03:21 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-09-08 10:03:21 -0700
commitf3155ad97c8095e5172fb826d7f09b7a85062f25 (patch)
treed969fe5609bf752bd4ef49f8a79a753ee5418b44
parent4cea3b9e9d9836c926a8feb55d050993d40b4b5e (diff)
GN: add a helper script for running Android builds
Think of this as the spiritual equivalent of platform_tools/android/bin/android_run_skia, but for GN and easier to type. Cutting down the debug symbols makes Android builds about 1/4 the size. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2323833002 DOCS_PREVIEW= https://skia.org/user/quick/gn?cl=2323833002 Review-Url: https://codereview.chromium.org/2323833002
-rwxr-xr-xbin/droid20
-rw-r--r--gn/BUILD.gn9
-rw-r--r--site/user/quick/gn.md7
3 files changed, 35 insertions, 1 deletions
diff --git a/bin/droid b/bin/droid
new file mode 100755
index 0000000000..d3571dd3ec
--- /dev/null
+++ b/bin/droid
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+# Run a GN-built Android binary on the connected device.
+#
+# Example usage:
+# $ ninja -C out dm
+# $ droid out/dm --src gm --config gpu
+#
+# See https://skia.org/user/quick/gn for build instructions.
+
+path=$1
+name=$(basename $1)
+shift
+args=$@
+
+set -e
+set -x
+
+adb push $path resources /data/local/tmp/
+adb shell "cd /data/local/tmp; ./$name $args"
diff --git a/gn/BUILD.gn b/gn/BUILD.gn
index c5db0a9660..fd2d0074c6 100644
--- a/gn/BUILD.gn
+++ b/gn/BUILD.gn
@@ -31,7 +31,6 @@ config("no_rtti") {
config("default") {
cflags = [
"-O1",
- "-g",
"-fstrict-aliasing",
"-fPIC",
"-fvisibility=hidden",
@@ -57,6 +56,14 @@ config("default") {
]
ldflags = []
+ # It's annoying to wait for full debug symbols to push over
+ # to Android devices. -gline-tables-only is a lot slimmer.
+ if (is_android) {
+ cflags += [ "-gline-tables-only" ]
+ } else {
+ cflags += [ "-g" ]
+ }
+
if (current_cpu == "arm") {
cflags += [
"-march=armv7-a",
diff --git a/site/user/quick/gn.md b/site/user/quick/gn.md
index ad7f1090a1..a0f5b0d2ff 100644
--- a/site/user/quick/gn.md
+++ b/site/user/quick/gn.md
@@ -74,3 +74,10 @@ desired `target_cpu`:
gn gen out/x86 --args='ndk="/tmp/ndk" target_cpu="x86"'
Other arguments like `is_debug` and `is_component_build` continue to work.
+
+To test on a locally connected Android device, you can use our `droid` convenience script:
+
+<!--?prettify lang=sh?-->
+
+ ninja -C out/arm64
+ bin/droid out/arm64/dm --src gm --config gpu