Use strip_bitcode for create_arm_gen_snapshot (#36510)

This migrates the `create_arm_gen_snapshot` target used to create a
copy of gen_snapshot suffixed with its target CPU architecture using the
same `strip_bitcode` macro used for the equivalent target used for
desktop gen_snapshot.

In a followup patch, these will be merged to a single target. They
currently still have incompatible output paths.

Issue: https://github.com/flutter/flutter/issues/103386
Issue: https://github.com/flutter/flutter/issues/101138
Issue: https://github.com/flutter/flutter/issues/107884
diff --git a/lib/snapshot/BUILD.gn b/lib/snapshot/BUILD.gn
index 6630216..22930d5 100644
--- a/lib/snapshot/BUILD.gn
+++ b/lib/snapshot/BUILD.gn
@@ -243,43 +243,42 @@
   executable = false
 }
 
-# Creates a `gen_snapshot` binary suffixed with the target platform.
+# Creates a `gen_snapshot` binary suffixed with the target CPU architecture.
 #
 # Builds gen_snapshot using the host toolchain then copies the resulting binary
 # to `gen_snapshot_armv7` or `gen_snapshot_arm64` depending on the target
 # platform.
+#
+# This target is used for builds targeting iOS/Android OS.
 if (host_os == "mac" && target_os != "mac" &&
     (target_cpu == "arm" || target_cpu == "arm64")) {
-  action("create_arm_gen_snapshot") {
+  strip_bitcode("create_arm_gen_snapshot") {
+    # The toolchain-specific output directory. For cross-compiles, this is a
+    # clang-x64 or clang-arm64 subdirectory of the top-level build directory.
     host_output_dir = get_label_info(
             "//third_party/dart/runtime/bin:gen_snapshot($host_toolchain)",
             "root_out_dir")
-    clang_dir = rebase_path(host_output_dir, root_build_dir)
-    script = "//flutter/sky/tools/create_macos_gen_snapshots.py"
-    visibility = [ ":*" ]
-    deps = [ "//third_party/dart/runtime/bin:gen_snapshot($host_toolchain)" ]
-    args = [
-      "--dst",
-      rebase_path(host_output_dir),
-      "--clang-dir",
-      clang_dir,
-    ]
+
+    # Determine suffixed output gen_snapshot name.
+    target_cpu_suffix = target_cpu
     if (target_cpu == "arm") {
-      args += [
-        "--armv7-out-dir",
-        rebase_path("$root_out_dir"),
-      ]
-      outputs = [ "$host_output_dir/gen_snapshot_armv7" ]
-    } else {
-      args += [
-        "--arm64-out-dir",
-        rebase_path("$root_out_dir"),
-      ]
-      outputs = [ "$host_output_dir/gen_snapshot_arm64" ]
+      target_cpu_suffix = "armv7"
     }
+
+    input = "${host_output_dir}/gen_snapshot"
+    output = "${host_output_dir}/gen_snapshot_${target_cpu_suffix}"
+    deps = [ "//third_party/dart/runtime/bin:gen_snapshot($host_toolchain)" ]
+    visibility = [ ":*" ]
   }
 }
 
+# Creates a `gen_snapshot` binary suffixed with the target CPU architecture.
+#
+# Builds gen_snapshot using the host toolchain then copies the resulting binary
+# to `gen_snapshot_arm64` or `gen_snapshot_x64` depending on the target
+# platform.
+#
+# This target is used for builds targeting macOS.
 if (host_os == "mac" && target_os == "mac") {
   strip_bitcode("create_macos_gen_snapshots") {
     # The toolchain-specific output directory. For cross-compiles, this is a