GN: add 32-bit and Release iOS builders.

And roll recipes to the point where they pass target_cpu to GN,
adding x86_64 as an alias for x64.

CQ_INCLUDE_TRYBOTS=skia.primary:Build-Mac-Clang-arm64-Debug-GN_iOS,Build-Mac-Clang-arm64-Release-GN_iOS,Build-Mac-Clang-arm-Debug-GN_iOS,Build-Mac-Clang-arm-Release-GN_iOS

Change-Id: I1933d5803ec7f59f78576c5a7b16489362905a97
Reviewed-on: https://skia-review.googlesource.com/7403
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
diff --git a/gn/BUILD.gn b/gn/BUILD.gn
index 97e5368..ec3a1f1 100644
--- a/gn/BUILD.gn
+++ b/gn/BUILD.gn
@@ -186,18 +186,22 @@
   }
 
   if (is_ios) {
+    _target = target_cpu
+    if (target_cpu == "arm") {
+      _target = "armv7"
+    }
     cflags += [
       "-isysroot",
       ios_sysroot,
       "-arch",
-      target_cpu,
+      _target,
     ]
     cflags_cc += [ "-stdlib=libc++" ]
     ldflags += [
       "-isysroot",
       ios_sysroot,
       "-arch",
-      target_cpu,
+      _target,
       "-stdlib=libc++",
     ]
     libs += [ "objc" ]
@@ -288,8 +292,9 @@
         "-Wno-unknown-warning-option",  # Let older Clangs ignore newer Clangs' warnings.
       ]
 
-      if (is_android && target_cpu == "x86") {
-        # Clang seems to think new/malloc will only be 4-byte aligned on x86 Android.
+      if ((target_cpu == "x86" && is_android) ||
+          (target_cpu == "arm" && is_ios)) {
+        # Clang seems to think new/malloc will only be 4-byte aligned on x86 Android and 32-bit iOS.
         # We're pretty sure it's actually 8-byte alignment.
         cflags += [ "-Wno-over-aligned" ]
       }