From f3155ad97c8095e5172fb826d7f09b7a85062f25 Mon Sep 17 00:00:00 2001 From: mtklein Date: Thu, 8 Sep 2016 10:03:21 -0700 Subject: 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 --- bin/droid | 20 ++++++++++++++++++++ gn/BUILD.gn | 9 ++++++++- site/user/quick/gn.md | 7 +++++++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100755 bin/droid 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: + + + + ninja -C out/arm64 + bin/droid out/arm64/dm --src gm --config gpu -- cgit v1.2.3