aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-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