[unification] Move //zircon/system/third_party/uapp/mkfs-msdosfs to the GN build

Generated with: //scripts/unification/move_zn_element.py

scripts/unification/verify_element_move.py --reference local/initial.json:

The direct dependency on libzircon was removed, and it looks like it wasn't
necessary:

Error     aux         shared library removed from bin/mkfs-msdosfs: libzircon.so
Error     image       shared library removed from bin/mkfs-msdosfs: libzircon.so
Error     tests       shared library removed from bin/mkfs-msdosfs: libzircon.so

Bug: 36139
Change-Id: I731aa8aa2b6d5b187bf7cb91d254a7fe5e78302f
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/378047
Reviewed-by: Shai Barack <shayba@google.com>
Commit-Queue: P.Y. Laligand <pylaligand@google.com>
diff --git a/build/images/boot.gni b/build/images/boot.gni
index 2636665..34aecce 100644
--- a/build/images/boot.gni
+++ b/build/images/boot.gni
@@ -129,6 +129,10 @@
   }
   output_file = "$root_out_dir/$output_file"
 
+  mkfs_label = "//zircon/third_party/uapp/mkfs-msdosfs($host_toolchain)"
+  mkfs_out_dir = get_label_info(mkfs_label, "root_out_dir")
+  mkfs_bin = "$mkfs_out_dir/mkfs-msdosfs"
+
   compiled_action(target_name) {
     forward_variables_from(invoker,
                            [
@@ -139,15 +143,14 @@
                            ])
 
     tool = "//tools/make-efi"
-    mkfs_msdosfs_bin = "$zircon_tools_dir/mkfs-msdosfs"
 
     outputs = [ output_file ]
-    inputs = [ mkfs_msdosfs_bin ]
+    inputs = [ mkfs_bin ]
     args = [
       "--output",
       rebase_path(output_file),
       "--mkfs",
-      rebase_path(mkfs_msdosfs_bin),
+      rebase_path(mkfs_bin),
     ]
 
     if (defined(invoker.zircon_bin)) {
@@ -198,6 +201,6 @@
     if (!defined(deps)) {
       deps = []
     }
-    deps += [ "//zircon/public/tool/mkfs-msdosfs($host_toolchain)" ]
+    deps += [ mkfs_label ]
   }
 }
diff --git a/build/unification/data/BUILD.gn b/build/unification/data/BUILD.gn
index 2f47bca..eb91396 100644
--- a/build/unification/data/BUILD.gn
+++ b/build/unification/data/BUILD.gn
@@ -27,7 +27,6 @@
   "bin.sh",
   "hermetic.decompress-lz4f",
   "hermetic.decompress-zstd",
-  "bin.mkfs-msdosfs",
 ]
 
 foreach(artifact, artifacts) {
diff --git a/build/unification/images/BUILD.gn b/build/unification/images/BUILD.gn
index 79d520f..9b8594d 100644
--- a/build/unification/images/BUILD.gn
+++ b/build/unification/images/BUILD.gn
@@ -74,7 +74,6 @@
 #------------------
 #------------------
 #------------------
-    ":bin.mkfs-msdosfs",
 #------------------
 #------------------
 #------------------
@@ -259,7 +258,6 @@
     ":bin.lz4-fuzzer.ubsan",
 #------------------
 #------------------
-    ":bin.mkfs-msdosfs",
 #------------------
 #------------------
 #------------------
@@ -1169,6 +1167,7 @@
 
 aggregate_manifest("migrated-image") {
   deps = [
+    "//zircon/third_party/uapp/mkfs-msdosfs:mkfs-msdosfs-manifest",
     "//zircon/system/core/bootsvc:bin-manifest",
     "//src/connectivity/network/drivers/network-device:manifest",
     "//src/developer/cmd:bin-manifest",
@@ -1725,7 +1724,7 @@
 #------------------
     "//zircon/system/uapp/minfs:minfs-manifest",
 #------------------
-    #":bin.mkfs-msdosfs",
+    "//zircon/third_party/uapp/mkfs-msdosfs:mkfs-msdosfs-manifest",
 #------------------
     "//zircon/system/utest/msd:msd-manifest",
 #------------------
diff --git a/build/unification/tools/BUILD.gn b/build/unification/tools/BUILD.gn
index 3d87822..4688954 100644
--- a/build/unification/tools/BUILD.gn
+++ b/build/unification/tools/BUILD.gn
@@ -10,6 +10,7 @@
 
 group("tools") {
   deps = [
+    "//zircon/third_party/uapp/mkfs-msdosfs($host_toolchain)",
     "//zircon/tools/fvm($host_toolchain)",
   ]
 }
diff --git a/build/zircon/zircon_library.gni b/build/zircon/zircon_library.gni
index ea1893a..69c740d 100644
--- a/build/zircon/zircon_library.gni
+++ b/build/zircon/zircon_library.gni
@@ -316,7 +316,7 @@
     if (library == "fs-management") {
       data_deps += [
         "//build/unification/data:bin.fsck-msdosfs",
-        "//build/unification/data:bin.mkfs-msdosfs",
+        "//zircon/third_party/uapp/mkfs-msdosfs",
         "//zircon/system/uapp/blobfs",
         "//zircon/system/uapp/minfs",
       ]
diff --git a/zircon/system/ulib/fs-management/BUILD.gn b/zircon/system/ulib/fs-management/BUILD.gn
index db63299..10e087a 100644
--- a/zircon/system/ulib/fs-management/BUILD.gn
+++ b/zircon/system/ulib/fs-management/BUILD.gn
@@ -47,6 +47,6 @@
     # uapp/blobfs
     #"uapp/minfs",
     "$zx/third_party/uapp/fsck-msdosfs",
-    "$zx/third_party/uapp/mkfs-msdosfs",
+    #"$zx/third_party/uapp/mkfs-msdosfs",
   ]
 }
diff --git a/zircon/third_party/uapp/BUILD.gn b/zircon/third_party/uapp/BUILD.gn
index 6c93682..791c16e 100644
--- a/zircon/third_party/uapp/BUILD.gn
+++ b/zircon/third_party/uapp/BUILD.gn
@@ -6,6 +6,5 @@
   deps = [
     "dash",
     "fsck-msdosfs",
-    "mkfs-msdosfs",
   ]
 }
diff --git a/zircon/third_party/uapp/mkfs-msdosfs/BUILD.gn b/zircon/third_party/uapp/mkfs-msdosfs/BUILD.gn
index 06cea2d..365f033 100644
--- a/zircon/third_party/uapp/mkfs-msdosfs/BUILD.gn
+++ b/zircon/third_party/uapp/mkfs-msdosfs/BUILD.gn
@@ -2,17 +2,35 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-zx_host_tool("mkfs-msdosfs") {
+##########################################
+# Though under //zircon, this build file #
+# is meant to be used in the Fuchsia GN  #
+# build.                                 #
+# See fxb/36139.                         #
+##########################################
+
+assert(!defined(zx) || zx != "/",
+       "This file can only be used in the Fuchsia GN build.")
+
+import("//build/unification/images/migrated_manifest.gni")
+
+executable("mkfs-msdosfs") {
+  if (is_fuchsia) {
+    configs += [ "//build/unification/config:zircon-migrated" ]
+  }
+  if (is_fuchsia) {
+    fdio_config = [ "//build/config/fuchsia:fdio_config" ]
+    if (configs + fdio_config - fdio_config != configs) {
+      configs -= fdio_config
+    }
+  }
   sources = [
     "mkfs_msdos.c",
     "mkfs_msdos.h",
     "newfs_msdos.c",
   ]
   if (is_fuchsia) {
-    deps = [
-      "$zx/system/ulib/fdio",
-      "$zx/system/ulib/zircon",
-    ]
+    deps = [ "//zircon/public/lib/fdio" ]
   }
   if (is_host) {
     defines = [
@@ -21,3 +39,7 @@
     ]
   }
 }
+
+migrated_manifest("mkfs-msdosfs-manifest") {
+  deps = [ ":mkfs-msdosfs" ]
+}
diff --git a/zircon/tools/BUILD.gn b/zircon/tools/BUILD.gn
index 5a791a1..cf4f61c 100644
--- a/zircon/tools/BUILD.gn
+++ b/zircon/tools/BUILD.gn
@@ -33,7 +33,6 @@
     # developers.  Not listed here are tools whose only use is via GN rules
     # in this build.
     deps = [
-      "$zx/third_party/uapp/mkfs-msdosfs",
       "blobfs",
       "bootserver",
       "fidl:tools",