diff --git a/BUILD.gn b/BUILD.gn
index 136455a..f25ff9b 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -323,7 +323,9 @@
   if (is_fuchsia && using_fuchsia_sdk) {
     deps += [ "//build/fuchsia/fidl:fuchsia.fonts" ]
   } else {
-    deps = [ "//sdk/fidl/fuchsia.fonts" ]
+    deps = [
+      "//sdk/fidl/fuchsia.fonts",
+    ]
   }
   sources = [
     "src/ports/SkFontMgr_fuchsia.cpp",
@@ -1329,7 +1331,8 @@
         libs += [ "OpenGL32.lib" ]
       }
     } else if (is_fuchsia && using_fuchsia_sdk) {
-      libs += [ "${fuchsia_sdk_path}/arch/${target_cpu}/sysroot/lib/libzircon.so" ]
+      libs +=
+          [ "${fuchsia_sdk_path}/arch/${target_cpu}/sysroot/lib/libzircon.so" ]
     }
 
     cflags_objcc = [ "-fobjc-arc" ]
@@ -2054,7 +2057,9 @@
       ]
       include_dirs = [ "//" ]
       lib_dirs = []
-      deps = [ ":skqp_lib", ]
+      deps = [
+        ":skqp_lib",
+      ]
     }
     test_app("jitter_gms") {
       sources = [
@@ -2072,7 +2077,7 @@
     group("skqp_repo") {
       testonly = true
       deps = [
-        "//build/fuchsia/skqp:skqp_repo"
+        "//build/fuchsia/skqp:skqp_repo",
       ]
     }
   }
diff --git a/build/fuchsia/BUILD.gn b/build/fuchsia/BUILD.gn
index 584b9a5..525dd70 100644
--- a/build/fuchsia/BUILD.gn
+++ b/build/fuchsia/BUILD.gn
@@ -4,13 +4,15 @@
 
 assert(is_fuchsia)
 
-import ("//build/fuchsia/sdk.gni")
+import("//build/fuchsia/sdk.gni")
 
 fuchsia_sdk_manifest_exists = false
 if (is_fuchsia && using_fuchsia_sdk) {
   manifest_exists = exec_script("//build/fuchsia/file_exists",
-                                [ "-file_name",
-                                  rebase_path(fuchsia_sdk_manifest_path) ],
+                                [
+                                  "-file_name",
+                                  rebase_path(fuchsia_sdk_manifest_path),
+                                ],
                                 "list lines",
                                 [ "//build/fuchsia/file_exists" ])
   if (manifest_exists == [ "true" ]) {
@@ -19,14 +21,15 @@
 }
 
 group("fuchsia") {
-  if(fuchsia_sdk_manifest_exists == true) {
+  if (fuchsia_sdk_manifest_exists == true) {
     deps = [
       "fidl",
       "pkg",
       "sysroot",
     ]
   } else {
-    assert(false, "Fuchsia SDK not found. Set arg skia_update_fuchsia_sdk=True " +
-      "to initialize.")
+    assert(false,
+           "Fuchsia SDK not found. Set arg skia_update_fuchsia_sdk=True " +
+               "to initialize.")
   }
 }
diff --git a/build/fuchsia/skqp/BUILD.gn b/build/fuchsia/skqp/BUILD.gn
index 3d511fd..d254395 100644
--- a/build/fuchsia/skqp/BUILD.gn
+++ b/build/fuchsia/skqp/BUILD.gn
@@ -4,7 +4,7 @@
 
 assert(is_fuchsia)
 
-import ("//build/fuchsia/sdk.gni")
+import("//build/fuchsia/sdk.gni")
 
 pkg_dir = target_gen_dir
 pkg_name = "skqp_pkg"
@@ -14,14 +14,19 @@
   name = pkg_name
   version = 0
   deps = [
-    "//build/fuchsia", "//:skqp",
+    "//:skqp",
+    "//build/fuchsia",
   ]
   pkg_manifest = "${pkg_dir}/${target_name}.manifest"
 }
 
 fuchsia_repo("skqp_repo") {
   testonly = true
-  deps = [ ":base_manifest", ":append_assets_to_manifest", ":skqp_pkg" ]
+  deps = [
+    ":append_assets_to_manifest",
+    ":base_manifest",
+    ":skqp_pkg",
+  ]
 
   # Put repo directory in out dir (not gen dir).
   repo = "$target_out_dir/skqp_repo"
@@ -38,14 +43,17 @@
   skqp_path = rebase_path("${target_gen_dir}")
 
   sdk_dist_path = rebase_path("${fuchsia_sdk_path}/arch/${target_cpu}/dist")
-  sdk_sysroot_dist_path = rebase_path("${fuchsia_sdk_path}/arch/${target_cpu}/sysroot/dist/lib")
+  sdk_sysroot_dist_path =
+      rebase_path("${fuchsia_sdk_path}/arch/${target_cpu}/sysroot/dist/lib")
 
   skqp_component_manifest = rebase_path("//build/fuchsia/skqp/skqp.cmx")
 
   if (target_cpu == "x64" || target_cpu == "x86_64") {
-    clang_path=rebase_path("${fuchsia_toolchain_path}/lib/x86_64-unknown-fuchsia/c++")
+    clang_path =
+        rebase_path("${fuchsia_toolchain_path}/lib/x86_64-unknown-fuchsia/c++")
   } else if (target_cpu == "arm64") {
-    clang_path=rebase_path("${fuchsia_toolchain_path}/lib/aarch64-unknown-fuchsia/c++")
+    clang_path =
+        rebase_path("${fuchsia_toolchain_path}/lib/aarch64-unknown-fuchsia/c++")
   } else {
     assert(false, "Unknown target cpu for Fuchsia target.")
   }
diff --git a/gn/BUILD.gn b/gn/BUILD.gn
index 7bb971f..1324283 100644
--- a/gn/BUILD.gn
+++ b/gn/BUILD.gn
@@ -4,7 +4,7 @@
 # found in the LICENSE file.
 
 if (is_fuchsia) {
-  import ("//build/fuchsia/sdk.gni")
+  import("//build/fuchsia/sdk.gni")
 }
 
 declare_args() {
@@ -61,8 +61,12 @@
   }
 
   if (is_fuchsia && using_fuchsia_sdk) {
-    ldflags += [ "-v", "--sysroot=" + rebase_path("$fuchsia_sdk_path/arch/$target_cpu/sysroot") ]
-    cflags += [ "--sysroot=" + rebase_path("$fuchsia_sdk_path/arch/$target_cpu/sysroot") ]
+    ldflags += [
+      "-v",
+      "--sysroot=" + rebase_path("$fuchsia_sdk_path/arch/$target_cpu/sysroot"),
+    ]
+    cflags += [ "--sysroot=" +
+                rebase_path("$fuchsia_sdk_path/arch/$target_cpu/sysroot") ]
     if (target_cpu == "x64") {
       target_triple = "--target=x86_64-${target_os}"
     } else if (target_cpu == "arm64") {
diff --git a/gn/toolchain/BUILD.gn b/gn/toolchain/BUILD.gn
index 70caeb6..55e33e2 100644
--- a/gn/toolchain/BUILD.gn
+++ b/gn/toolchain/BUILD.gn
@@ -1,5 +1,5 @@
 if (is_fuchsia) {
-  import ("//build/fuchsia/sdk.gni")
+  import("//build/fuchsia/sdk.gni")
 }
 
 declare_args() {
@@ -23,7 +23,8 @@
     target_ar = rebase_path("$fuchsia_toolchain_path/bin/llvm-ar")
     target_cc = rebase_path("$fuchsia_toolchain_path/bin/clang")
     target_cxx = rebase_path("$fuchsia_toolchain_path/bin/clang++")
-    cflags = "--sysroot=" + rebase_path("$fuchsia_toolchain_path/$target_cpu/sysroot")
+    cflags = "--sysroot=" +
+             rebase_path("$fuchsia_toolchain_path/$target_cpu/sysroot")
     link = rebase_path("$fuchsia_toolchain_path/bin/ld.lld")
   } else {
     target_ar = ar
