diff options
-rwxr-xr-x | bin/droid | 20 | ||||
-rw-r--r-- | gn/BUILD.gn | 9 | ||||
-rw-r--r-- | site/user/quick/gn.md | 7 |
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 |