GN: mac host and armv7 target

Just when I thought it wouldn't be useful to override ar...

Tested by building 32- and 64-bit DM on my MBP and running it on my N5x.

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

Review-Url: https://codereview.chromium.org/2279703003
diff --git a/gn/BUILD.gn b/gn/BUILD.gn
index 0a56fa2..fc518ff 100644
--- a/gn/BUILD.gn
+++ b/gn/BUILD.gn
@@ -4,10 +4,12 @@
 # found in the LICENSE file.
 
 declare_args() {
+  ar = "ar"
   cc = "cc"
   cxx = "c++"
 
   if (is_android) {
+    ar = "$ndk/toolchains/$ndk_gccdir-4.9/prebuilt/$ndk_host/$ndk_target/bin/ar"
     cc = "$ndk/toolchains/llvm/prebuilt/$ndk_host/bin/clang"
     cxx = "$ndk/toolchains/llvm/prebuilt/$ndk_host/bin/clang++"
   }
@@ -48,14 +50,27 @@
     "-Wnon-virtual-dtor",
   ]
   if (current_cpu == "arm") {
-    cflags += [ "-mfpu=neon" ]
+    cflags += [
+      "-march=armv7-a",
+      "-mfpu=neon",
+      "-mthumb",
+    ]
+  } else if (current_cpu == "mipsel") {
+    cflags += [
+      "-march=mips32r2",
+      "-mdspr2",
+    ]
   }
 
   if (is_android) {
-    asmflags = [ "--target=$ndk_target" ]
+    asmflags = [
+      "--target=$ndk_target",
+      "-B$ndk/toolchains/$ndk_gccdir-4.9/prebuilt/$ndk_host/$ndk_target/bin",
+    ]
     cflags += [
       "--sysroot=$ndk/platforms/$ndk_platform",
       "--target=$ndk_target",
+      "-B$ndk/toolchains/$ndk_gccdir-4.9/prebuilt/$ndk_host/$ndk_target/bin",
     ]
     cflags_cc += [
       "-isystem$ndk/sources/android/support/include",
@@ -64,12 +79,12 @@
     ldflags = [
       "--sysroot=$ndk/platforms/$ndk_platform",
       "--target=$ndk_target",
-      "-B$ndk/toolchains/$ndk_target-4.9/prebuilt/$ndk_host/$ndk_target/bin",
+      "-B$ndk/toolchains/$ndk_gccdir-4.9/prebuilt/$ndk_host/$ndk_target/bin",
       "-pie",
     ]
     lib_dirs = [
       "$ndk/sources/cxx-stl/llvm-libc++/libs/$ndk_stdlib",
-      "$ndk/toolchains/$ndk_target-4.9/prebuilt/$ndk_host/lib/gcc/$ndk_target/4.9.x",
+      "$ndk/toolchains/$ndk_gccdir-4.9/prebuilt/$ndk_host/lib/gcc/$ndk_target/4.9.x",
     ]
     libs = [
       # Order matters here!  Keep these three in exactly this order.
@@ -77,6 +92,9 @@
       "c++abi",
       "android_support",
     ]
+    if (target_cpu == "arm") {
+      libs += [ "unwind" ]
+    }
   }
 
   if (is_linux) {
@@ -136,13 +154,13 @@
   }
 
   tool("alink") {
-    command = "rm -f {{output}} && ar rcs {{output}} {{inputs}}"
+    command = "rm -f {{output}} && $ar rcs {{output}} {{inputs}}"
     outputs = [
       "{{root_out_dir}}/{{target_output_name}}{{output_extension}}",
     ]
     default_output_extension = ".a"
     output_prefix = "lib"
-    description = "ar {{output}} ..."
+    description = "$ar {{output}} ..."
   }
 
   tool("solink") {