[unification] Move //zircon/system/dev/i2c to the GN build

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

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

Warning   aux     size change for test/sys/mt8167-i2c-test: -6% (72.0K)
Warning   aux     shared library added to test/sys/mt8167-i2c-test: libc++abi.so.1
Error     image   size change for driver/intel-i2c.so: +2% (57.9K)
Warning   image   size change for driver/dw-i2c.so: -8% (29.6K)
Error     image   size change for driver/mt8167-i2c.so: +6% (25.5K)
Error     image   size change for driver/i2c.so: +6% (25.5K)
Error     image   size change for driver/aml-i2c.so: +8% (17.6K)
Warning   tests   size change for test/sys/mt8167-i2c-test: -6% (72.0K)
Warning   tests   shared library added to test/sys/mt8167-i2c-test: libc++abi.so.1
Error: summaries do not match!

Bug: 36139
Change-Id: I24f8bafd8cccd1070b33ce8e25b729cfb79ef12b
diff --git a/build/unification/images/BUILD.gn b/build/unification/images/BUILD.gn
index 100b2be..3246c33 100644
--- a/build/unification/images/BUILD.gn
+++ b/build/unification/images/BUILD.gn
@@ -124,7 +124,6 @@
     ":driver.aml-ethernet-s912",
     ":driver.aml-gpu",
     ":driver.aml-gxl-gpio",
-    ":driver.aml-i2c",
     ":driver.aml-light",
     ":driver.aml-pwm",
     ":driver.aml-pwm-init",
@@ -180,7 +179,6 @@
     ":driver.display",
     ":driver.dsi-dw",
     ":driver.dsi-mt",
-    ":driver.dw-i2c",
     ":driver.dwc2",
     ":driver.dwc3",
     ":driver.dwmac",
@@ -216,11 +214,9 @@
     ":driver.hikey-usb",
     ":driver.hisi-ufs",
     ":driver.hisi3660",
-    ":driver.i2c",
     ":driver.i2c-hid",
     ":driver.integration-test",
     ":driver.intel-hda",
-    ":driver.intel-i2c",
     ":driver.isolateddevmgr-test",
     ":driver.ktrace",
     ":driver.lite-on",
@@ -235,7 +231,6 @@
     ":driver.mt-8167",
     ":driver.mt-musb-host",
     ":driver.mt-musb-peripheral",
-    ":driver.mt8167-i2c",
     ":driver.mt8167-tdm-input",
     ":driver.mt8167-tdm-output",
     ":driver.mt8167s-display",
@@ -590,7 +585,6 @@
     ":test.sys.dlopen-indirect-deps-test",
     ":test.sys.dma-buffer-test",
     ":test.sys.dsi-host-test",
-    ":test.sys.dw-i2c-test",
     ":test.sys.elf-search-test",
     ":test.sys.ethernet-unittest",
     ":test.sys.ethertap-unittest",
@@ -674,7 +668,6 @@
     ":test.sys.mt-hci-test",
     ":test.sys.mt-hci-transaction-test-test",
     ":test.sys.mt8167-audio-lib-test",
-    ":test.sys.mt8167-i2c-test",
     ":test.sys.mt8167-thermal-test",
     ":test.sys.mt8167s_ref-test",
     ":test.sys.mtk-gpio-test",
@@ -1062,7 +1055,6 @@
     ":test.sys.dlopen-indirect-deps-test",
     ":test.sys.dma-buffer-test",
     ":test.sys.dsi-host-test",
-    ":test.sys.dw-i2c-test",
     ":test.sys.elf-search-test",
     ":test.sys.ethernet-unittest",
     ":test.sys.ethertap-unittest",
@@ -1146,7 +1138,6 @@
     ":test.sys.mt-hci-test",
     ":test.sys.mt-hci-transaction-test-test",
     ":test.sys.mt8167-audio-lib-test",
-    ":test.sys.mt8167-i2c-test",
     ":test.sys.mt8167-thermal-test",
     ":test.sys.mt8167s_ref-test",
     ":test.sys.mtk-gpio-test",
@@ -1383,7 +1374,7 @@
     #":driver.aml-ethernet-s912",
     #":driver.aml-gpu",
     #":driver.aml-gxl-gpio",
-    #":driver.aml-i2c",
+    "//zircon/system/dev/i2c/aml-i2c:aml-i2c-manifest",
     #":driver.aml-light",
     #":driver.aml-pwm",
     #":driver.aml-pwm-init",
@@ -1441,7 +1432,7 @@
     #":driver.display",
     #":driver.dsi-dw",
     #":driver.dsi-mt",
-    #":driver.dw-i2c",
+    "//zircon/system/dev/i2c/dw-i2c:dw-i2c-manifest",
     #":driver.dwc2",
     #":driver.dwc3",
     #":driver.dwmac",
@@ -1477,11 +1468,11 @@
     #":driver.hikey-usb",
     #":driver.hisi-ufs",
     #":driver.hisi3660",
-    #":driver.i2c",
+    "//zircon/system/dev/i2c/i2c:i2c-manifest",
     #":driver.i2c-hid",
     #":driver.integration-test",
     #":driver.intel-hda",
-    #":driver.intel-i2c",
+    "//zircon/system/dev/i2c/intel-i2c:intel-i2c-manifest",
     #":driver.isolateddevmgr-test",
     #":driver.ktrace",
     #":driver.lite-on",
@@ -1496,7 +1487,7 @@
     #":driver.mt-8167",
     #":driver.mt-musb-host",
     #":driver.mt-musb-peripheral",
-    #":driver.mt8167-i2c",
+    "//zircon/system/dev/i2c/mt8167-i2c:mt8167-i2c-manifest",
     #":driver.mt8167-tdm-input",
     #":driver.mt8167-tdm-output",
     #":driver.mt8167s-display",
@@ -2079,7 +2070,7 @@
     #":test.sys.dlopen-indirect-deps-test",
     #":test.sys.dma-buffer-test",
     #":test.sys.dsi-host-test",
-    #":test.sys.dw-i2c-test",
+    "//zircon/system/dev/i2c/dw-i2c:dw-i2c-test-manifest",
     #":test.sys.elf-search-test",
     "//zircon/system/utest/entropy:entropy-manifest",
     "//zircon/system/utest/errno:errno-manifest",
@@ -2179,7 +2170,7 @@
     #":test.sys.mt-hci-test",
     #":test.sys.mt-hci-transaction-test-test",
     #":test.sys.mt8167-audio-lib-test",
-    #":test.sys.mt8167-i2c-test",
+    "//zircon/system/dev/i2c/mt8167-i2c:mt8167-i2c-test-manifest",
     #":test.sys.mt8167-thermal-test",
     #":test.sys.mt8167s_ref-test",
     #":test.sys.mtk-gpio-test",
@@ -2529,7 +2520,7 @@
     #":test.sys.dlopen-indirect-deps-test",
     #":test.sys.dma-buffer-test",
     #":test.sys.dsi-host-test",
-    #":test.sys.dw-i2c-test",
+    "//zircon/system/dev/i2c/dw-i2c:dw-i2c-test-manifest",
     #":test.sys.elf-search-test",
     "//zircon/system/utest/entropy:entropy-manifest",
     "//zircon/system/utest/errno:errno-manifest",
@@ -2629,7 +2620,7 @@
     #":test.sys.mt-hci-test",
     #":test.sys.mt-hci-transaction-test-test",
     #":test.sys.mt8167-audio-lib-test",
-    #":test.sys.mt8167-i2c-test",
+    "//zircon/system/dev/i2c/mt8167-i2c:mt8167-i2c-test-manifest",
     #":test.sys.mt8167-thermal-test",
     #":test.sys.mt8167s_ref-test",
     #":test.sys.mtk-gpio-test",
diff --git a/zircon/system/dev/BUILD.gn b/zircon/system/dev/BUILD.gn
index 76fcc69..eca0b67 100644
--- a/zircon/system/dev/BUILD.gn
+++ b/zircon/system/dev/BUILD.gn
@@ -21,7 +21,6 @@
     "fw",
     "gpio",
     "gpu",
-    "i2c",
     "input",
     "light",
     "light-sensor",
diff --git a/zircon/system/dev/i2c/BUILD.gn b/zircon/system/dev/i2c/BUILD.gn
deleted file mode 100644
index 7fe8411..0000000
--- a/zircon/system/dev/i2c/BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-# Copyright 2019 The Fuchsia Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-group("i2c") {
-  deps = [
-    "aml-i2c",
-    "dw-i2c",
-    "i2c",
-    "intel-i2c",
-    "mt8167-i2c",
-  ]
-}
diff --git a/zircon/system/dev/i2c/aml-i2c/BUILD.gn b/zircon/system/dev/i2c/aml-i2c/BUILD.gn
index da49194..6998105 100644
--- a/zircon/system/dev/i2c/aml-i2c/BUILD.gn
+++ b/zircon/system/dev/i2c/aml-i2c/BUILD.gn
@@ -2,16 +2,41 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-zx_driver("aml-i2c") {
+##########################################
+# 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/config/fuchsia/rules.gni")
+import("//build/unification/images/migrated_manifest.gni")
+
+config("internal") {
+  cflags = [ "-Wno-unused-function" ]
+}
+driver_module("aml-i2c") {
+  defines = [ "_ALL_SOURCE" ]
+  configs += [ "//build/config/fuchsia:enable_zircon_asserts" ]
+  configs -= [ "//build/config/fuchsia:no_cpp_standard_library" ]
+  configs += [ "//build/config/fuchsia:static_cpp_standard_library" ]
+  configs += [ "//build/unification/config:zircon-migrated" ]
   sources = [ "aml-i2c.c" ]
   deps = [
-    "$zx/system/banjo/ddk.protocol.i2c",
-    "$zx/system/banjo/ddk.protocol.i2cimpl",
-    "$zx/system/banjo/ddk.protocol.platform.device",
-    "$zx/system/dev/lib/device-protocol-platform-device",
-    "$zx/system/ulib/ddk",
-    "$zx/system/ulib/sync",
-    "$zx/system/ulib/zircon",
+    "//src/devices:driver",
+    "//zircon/public/lib/ddk",
+    "//zircon/public/lib/device-protocol-platform-device",
+    "//zircon/public/lib/sync",
+    "//zircon/system/banjo/ddk.protocol.i2c",
+    "//zircon/system/banjo/ddk.protocol.i2cimpl",
+    "//zircon/system/banjo/ddk.protocol.platform.device",
   ]
-  public_configs = [ "$zx/public/gn/config:Wno-unused-function" ]
+  public_configs = [ ":internal" ]
+}
+
+migrated_manifest("aml-i2c-manifest") {
+  deps = [ ":aml-i2c" ]
 }
diff --git a/zircon/system/dev/i2c/dw-i2c/BUILD.gn b/zircon/system/dev/i2c/dw-i2c/BUILD.gn
index 55a435e..4f10766 100644
--- a/zircon/system/dev/i2c/dw-i2c/BUILD.gn
+++ b/zircon/system/dev/i2c/dw-i2c/BUILD.gn
@@ -2,46 +2,76 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-zx_driver("dw-i2c") {
+##########################################
+# 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/config/fuchsia/rules.gni")
+import("//build/test.gni")
+import("//build/unification/images/migrated_manifest.gni")
+
+driver_module("dw-i2c") {
+  defines = [ "_ALL_SOURCE" ]
+  configs += [ "//build/config/fuchsia:enable_zircon_asserts" ]
+  configs -= [ "//build/config/fuchsia:no_cpp_standard_library" ]
+  configs += [ "//build/config/fuchsia:static_cpp_standard_library" ]
+  configs += [ "//build/unification/config:zircon-migrated" ]
   sources = [ "dw-i2c.cc" ]
   deps = [
-    "$zx/system/banjo/ddk.protocol.i2c",
-    "$zx/system/banjo/ddk.protocol.i2cimpl",
-    "$zx/system/banjo/ddk.protocol.platform.bus",
-    "$zx/system/banjo/ddk.protocol.platform.device",
-    "$zx/system/dev/lib/device-protocol-pdev",
-    "$zx/system/dev/lib/device-protocol-platform-device",
-    "$zx/system/dev/lib/mmio",
-    "$zx/system/ulib/ddk",
-    "$zx/system/ulib/ddktl",
-    "$zx/system/ulib/hwreg",
-    "$zx/system/ulib/sync",
-    "$zx/system/ulib/zircon",
+    "//src/devices:driver",
+    "//zircon/public/lib/ddk",
+    "//zircon/public/lib/ddktl",
+    "//zircon/public/lib/device-protocol-pdev",
+    "//zircon/public/lib/device-protocol-platform-device",
+    "//zircon/public/lib/hwreg",
+    "//zircon/public/lib/mmio",
+    "//zircon/public/lib/sync",
+    "//zircon/system/banjo/ddk.protocol.i2c",
+    "//zircon/system/banjo/ddk.protocol.i2cimpl",
+    "//zircon/system/banjo/ddk.protocol.platform.bus",
+    "//zircon/system/banjo/ddk.protocol.platform.device",
   ]
 }
 
-zx_test("dw-i2c-test") {
+test("dw-i2c-test") {
+  # Dependent manifests unfortunately cannot be marked as `testonly`.
+  # Remove when converting this file to proper GN build idioms.
+  testonly = false
+  configs += [ "//build/unification/config:zircon-migrated" ]
   output_name = "dw-i2c-test"
   sources = [
     "dw-i2c-test.cc",
     "dw-i2c.cc",
   ]
   deps = [
-    "$zx/system/banjo/ddk.protocol.i2c",
-    "$zx/system/banjo/ddk.protocol.i2cimpl",
-    "$zx/system/banjo/ddk.protocol.platform.bus",
-    "$zx/system/banjo/ddk.protocol.platform.device",
-    "$zx/system/dev/lib/device-protocol-pdev",
-    "$zx/system/dev/lib/device-protocol-platform-device",
-    "$zx/system/dev/lib/fake_ddk",
-    "$zx/system/dev/lib/mock-mmio-reg",
-    "$zx/system/ulib/ddk",
-    "$zx/system/ulib/ddktl",
-    "$zx/system/ulib/hwreg",
-    "$zx/system/ulib/mock-function",
-    "$zx/system/ulib/sync",
-    "$zx/system/ulib/zircon",
-    "$zx/system/ulib/zx",
-    "$zx/system/ulib/zxtest",
+    "//zircon/public/lib/ddk",
+    "//zircon/public/lib/ddktl",
+    "//zircon/public/lib/device-protocol-pdev",
+    "//zircon/public/lib/device-protocol-platform-device",
+    "//zircon/public/lib/fake_ddk",
+    "//zircon/public/lib/hwreg",
+    "//zircon/public/lib/mock-function",
+    "//zircon/public/lib/mock-mmio-reg",
+    "//zircon/public/lib/sync",
+    "//zircon/public/lib/zx",
+    "//zircon/public/lib/zxtest",
+    "//zircon/system/banjo/ddk.protocol.i2c",
+    "//zircon/system/banjo/ddk.protocol.i2cimpl",
+    "//zircon/system/banjo/ddk.protocol.platform.bus",
+    "//zircon/system/banjo/ddk.protocol.platform.device",
   ]
 }
+
+migrated_manifest("dw-i2c-manifest") {
+  deps = [ ":dw-i2c" ]
+}
+
+migrated_manifest("dw-i2c-test-manifest") {
+  deps = [ ":dw-i2c-test" ]
+}
diff --git a/zircon/system/dev/i2c/i2c/BUILD.gn b/zircon/system/dev/i2c/i2c/BUILD.gn
index da6b157..b9dc1e1 100644
--- a/zircon/system/dev/i2c/i2c/BUILD.gn
+++ b/zircon/system/dev/i2c/i2c/BUILD.gn
@@ -2,21 +2,43 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-zx_driver("i2c") {
+##########################################
+# 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/config/fuchsia/rules.gni")
+import("//build/unification/images/migrated_manifest.gni")
+
+driver_module("i2c") {
+  defines = [ "_ALL_SOURCE" ]
+  configs += [ "//build/config/fuchsia:enable_zircon_asserts" ]
+  configs -= [ "//build/config/fuchsia:no_cpp_standard_library" ]
+  configs += [ "//build/config/fuchsia:static_cpp_standard_library" ]
+  configs += [ "//build/unification/config:zircon-migrated" ]
   sources = [
     "i2c-bus.cc",
     "i2c-child.cc",
     "i2c.cc",
   ]
   deps = [
-    "$zx/system/banjo/ddk.protocol.i2c",
-    "$zx/system/banjo/ddk.protocol.i2cimpl",
-    "$zx/system/dev/lib/device-protocol-i2c",
-    "$zx/system/ulib/ddk",
-    "$zx/system/ulib/ddktl",
-    "$zx/system/ulib/fbl",
-    "$zx/system/ulib/sync",
-    "$zx/system/ulib/zircon",
-    "$zx/system/ulib/zx",
+    "//src/devices:driver",
+    "//zircon/public/lib/ddk",
+    "//zircon/public/lib/ddktl",
+    "//zircon/public/lib/device-protocol-i2c",
+    "//zircon/public/lib/fbl",
+    "//zircon/public/lib/sync",
+    "//zircon/public/lib/zx",
+    "//zircon/system/banjo/ddk.protocol.i2c",
+    "//zircon/system/banjo/ddk.protocol.i2cimpl",
   ]
 }
+
+migrated_manifest("i2c-manifest") {
+  deps = [ ":i2c" ]
+}
diff --git a/zircon/system/dev/i2c/intel-i2c/BUILD.gn b/zircon/system/dev/i2c/intel-i2c/BUILD.gn
index 92edde673..ba45bb3 100644
--- a/zircon/system/dev/i2c/intel-i2c/BUILD.gn
+++ b/zircon/system/dev/i2c/intel-i2c/BUILD.gn
@@ -2,21 +2,46 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-zx_driver("intel-i2c") {
+##########################################
+# 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/config/fuchsia/rules.gni")
+import("//build/unification/images/migrated_manifest.gni")
+
+config("internal") {
+  cflags = [ "-Wno-unused-function" ]
+}
+driver_module("intel-i2c") {
+  defines = [ "_ALL_SOURCE" ]
+  configs += [ "//build/config/fuchsia:enable_zircon_asserts" ]
+  configs -= [ "//build/config/fuchsia:no_cpp_standard_library" ]
+  configs += [ "//build/config/fuchsia:static_cpp_standard_library" ]
+  configs += [ "//build/unification/config:zircon-migrated" ]
   sources = [
     "intel-i2c-controller.c",
     "intel-i2c-subordinate.c",
   ]
   deps = [
-    "$zx/system/banjo/ddk.protocol.i2c",
-    "$zx/system/banjo/ddk.protocol.i2cimpl",
-    "$zx/system/banjo/ddk.protocol.pci",
-    "$zx/system/dev/lib/device-protocol-pci",
-    "$zx/system/fidl/fuchsia-hardware-i2c:c",
-    "$zx/system/ulib/ddk",
-    "$zx/system/ulib/sync",
-    "$zx/system/ulib/zircon",
-    "$zx/system/ulib/zircon-internal",
+    "//src/devices:driver",
+    "//zircon/public/lib/ddk",
+    "//zircon/public/lib/device-protocol-pci",
+    "//zircon/public/lib/sync",
+    "//zircon/public/lib/zircon-internal",
+    "//zircon/system/banjo/ddk.protocol.i2c",
+    "//zircon/system/banjo/ddk.protocol.i2cimpl",
+    "//zircon/system/banjo/ddk.protocol.pci",
+    "//zircon/system/fidl/fuchsia-hardware-i2c:c",
   ]
-  public_configs = [ "$zx/public/gn/config:Wno-unused-function" ]
+  public_configs = [ ":internal" ]
+}
+
+migrated_manifest("intel-i2c-manifest") {
+  deps = [ ":intel-i2c" ]
 }
diff --git a/zircon/system/dev/i2c/mt8167-i2c/BUILD.gn b/zircon/system/dev/i2c/mt8167-i2c/BUILD.gn
index 8d7585c..7f2de93 100644
--- a/zircon/system/dev/i2c/mt8167-i2c/BUILD.gn
+++ b/zircon/system/dev/i2c/mt8167-i2c/BUILD.gn
@@ -2,55 +2,86 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-zx_driver("mt8167-i2c") {
+##########################################
+# 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/config/fuchsia/rules.gni")
+import("//build/test.gni")
+import("//build/unification/images/migrated_manifest.gni")
+
+driver_module("mt8167-i2c") {
+  defines = [ "_ALL_SOURCE" ]
+  configs += [ "//build/config/fuchsia:enable_zircon_asserts" ]
+  configs -= [ "//build/config/fuchsia:no_cpp_standard_library" ]
+  configs += [ "//build/config/fuchsia:static_cpp_standard_library" ]
+  configs += [ "//build/unification/config:zircon-migrated" ]
   sources = [ "mt8167-i2c.cc" ]
   deps = [
-    "$zx/system/banjo/ddk.protocol.composite",
-    "$zx/system/banjo/ddk.protocol.gpio",
-    "$zx/system/banjo/ddk.protocol.i2c",
-    "$zx/system/banjo/ddk.protocol.i2cimpl",
-    "$zx/system/banjo/ddk.protocol.platform.device",
-    "$zx/system/dev/lib/device-protocol-pdev",
-    "$zx/system/dev/lib/device-protocol-platform-device",
-    "$zx/system/dev/lib/mmio",
-    "$zx/system/dev/lib/mt8167",
-    "$zx/system/ulib/ddk",
-    "$zx/system/ulib/ddktl",
-    "$zx/system/ulib/fbl",
-    "$zx/system/ulib/hwreg",
-    "$zx/system/ulib/sync",
-    "$zx/system/ulib/zircon",
-    "$zx/system/ulib/zx",
+    "//src/devices:driver",
+    "//zircon/public/lib/ddk",
+    "//zircon/public/lib/ddktl",
+    "//zircon/public/lib/device-protocol-pdev",
+    "//zircon/public/lib/device-protocol-platform-device",
+    "//zircon/public/lib/fbl",
+    "//zircon/public/lib/hwreg",
+    "//zircon/public/lib/mmio",
+    "//zircon/public/lib/mt8167",
+    "//zircon/public/lib/sync",
+    "//zircon/public/lib/zx",
+    "//zircon/system/banjo/ddk.protocol.composite",
+    "//zircon/system/banjo/ddk.protocol.gpio",
+    "//zircon/system/banjo/ddk.protocol.i2c",
+    "//zircon/system/banjo/ddk.protocol.i2cimpl",
+    "//zircon/system/banjo/ddk.protocol.platform.device",
   ]
 }
 
-zx_test("mt8167-i2c-test") {
+test("mt8167-i2c-test") {
+  # Dependent manifests unfortunately cannot be marked as `testonly`.
+  # Remove when converting this file to proper GN build idioms.
+  testonly = false
+  configs += [ "//build/unification/config:zircon-migrated" ]
   output_name = "mt8167-i2c-test"
   sources = [
     "mt8167-i2c-test.cc",
     "mt8167-i2c.cc",
   ]
   deps = [
-    "$zx/system/banjo/ddk.protocol.composite",
-    "$zx/system/banjo/ddk.protocol.gpio",
-    "$zx/system/banjo/ddk.protocol.i2c",
-    "$zx/system/banjo/ddk.protocol.i2cimpl",
-    "$zx/system/banjo/ddk.protocol.platform.bus",
-    "$zx/system/banjo/ddk.protocol.platform.device",
-    "$zx/system/dev/lib/device-protocol-pdev",
-    "$zx/system/dev/lib/device-protocol-platform-device",
-    "$zx/system/dev/lib/mmio",
-    "$zx/system/dev/lib/mt8167",
-    "$zx/system/ulib/ddk",
-    "$zx/system/ulib/ddktl",
-    "$zx/system/ulib/driver",
-    "$zx/system/ulib/fbl",
-    "$zx/system/ulib/fdio",
-    "$zx/system/ulib/hwreg",
-    "$zx/system/ulib/mock-function",
-    "$zx/system/ulib/sync",
-    "$zx/system/ulib/zircon",
-    "$zx/system/ulib/zx",
-    "$zx/system/ulib/zxtest",
+    "//src/devices:driver",
+    "//zircon/public/lib/ddk",
+    "//zircon/public/lib/ddktl",
+    "//zircon/public/lib/device-protocol-pdev",
+    "//zircon/public/lib/device-protocol-platform-device",
+    "//zircon/public/lib/fbl",
+    "//zircon/public/lib/fdio",
+    "//zircon/public/lib/hwreg",
+    "//zircon/public/lib/mmio",
+    "//zircon/public/lib/mock-function",
+    "//zircon/public/lib/mt8167",
+    "//zircon/public/lib/sync",
+    "//zircon/public/lib/zx",
+    "//zircon/public/lib/zxtest",
+    "//zircon/system/banjo/ddk.protocol.composite",
+    "//zircon/system/banjo/ddk.protocol.gpio",
+    "//zircon/system/banjo/ddk.protocol.gpio:ddk.protocol.gpio_mock",
+    "//zircon/system/banjo/ddk.protocol.i2c",
+    "//zircon/system/banjo/ddk.protocol.i2cimpl",
+    "//zircon/system/banjo/ddk.protocol.platform.bus",
+    "//zircon/system/banjo/ddk.protocol.platform.device",
   ]
 }
+
+migrated_manifest("mt8167-i2c-manifest") {
+  deps = [ ":mt8167-i2c" ]
+}
+
+migrated_manifest("mt8167-i2c-test-manifest") {
+  deps = [ ":mt8167-i2c-test" ]
+}
diff --git a/zircon/system/utest/BUILD.gn b/zircon/system/utest/BUILD.gn
index 50952f56..d014fd1 100644
--- a/zircon/system/utest/BUILD.gn
+++ b/zircon/system/utest/BUILD.gn
@@ -66,8 +66,6 @@
       "$zx/system/dev/gpio/as370-gpio:as370-gpio-test",
       "$zx/system/dev/gpio/mt-8167:mtk-gpio",
       "$zx/system/dev/gpio/qcom-gpio:qcom-gpio-test",
-      "$zx/system/dev/i2c/dw-i2c:dw-i2c-test",
-      "$zx/system/dev/i2c/mt8167-i2c:mt8167-i2c-test",
       "$zx/system/dev/input/cypress:cypress-touch-test",
       "$zx/system/dev/input/goodix:gt92xx-test",
       "$zx/system/dev/input/hid:hid-test",