GN: Android

Once you have downloaded an android NDK, you can set the ndk GN arg to use it.
E.g. my gn.args looks like:
  is_debug = false
  ndk = "/opt/android-ndk"

This should be enough to get you going for an arm64 build.  You ought to be able to tweak that to other architectures by changing target_cpu to "arm", "x86", "x86-64", etc.  That won't quite work until I follow this up a bit, but the skeleton is there.

This is enough to get me compiled, linked, and running to completion on my N5x.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2275983004

Review-Url: https://codereview.chromium.org/2275983004
diff --git a/gn/BUILDCONFIG.gn b/gn/BUILDCONFIG.gn
index d683357..6aa4451 100644
--- a/gn/BUILDCONFIG.gn
+++ b/gn/BUILDCONFIG.gn
@@ -8,11 +8,15 @@
 declare_args() {
   is_debug = true
   is_component_build = false
+  ndk = ""
 }
 
 # Platform detection
 if (target_os == "") {
   target_os = host_os
+  if (ndk != "") {
+    target_os = "android"
+  }
 }
 if (current_os == "") {
   current_os = target_os
@@ -20,6 +24,9 @@
 
 if (target_cpu == "") {
   target_cpu = host_cpu
+  if (ndk != "") {
+    target_cpu = "arm64"
+  }
 }
 if (current_cpu == "") {
   current_cpu = target_cpu
@@ -34,6 +41,22 @@
 
 is_posix = !is_win
 
+if (is_android) {
+  ndk_host = ""
+  ndk_target = ""
+  ndk_platform = ""
+  ndk_stdlib = ""
+
+  if (host_os == "linux" && host_cpu == "x64") {
+    ndk_host = "linux-x86_64"
+  }
+  if (target_cpu == "arm64") {
+    ndk_target = "aarch64-linux-android"
+    ndk_platform = "android-21/arch-arm64"
+    ndk_stdlib = "arm64-v8a"
+  }
+}
+
 # A component is either a static or a shared library.
 template("component") {
   _component_mode = "static_library"