Revert "Revert "try resolver pattern""

This reverts commit 2bafb64ed3f5e95d07f62b65cf975afe40dee58a.

Change-Id: I46f29284546a8978fd0005a0937e28410e5ac0da
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220518
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
diff --git a/BUILD.gn b/BUILD.gn
index a8e617d..4422e77 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -21,6 +21,7 @@
   skia_use_angle = false
   skia_use_egl = false
   skia_use_expat = true
+  skia_use_experimental_xform = false
   skia_use_ffmpeg = false
   skia_use_fontconfig = is_linux
   skia_use_fonthost_mac = is_mac
@@ -1724,8 +1725,8 @@
       ":skia",
       ":skvm_builders",
       ":tool_utils",
-      "modules/skshaper",
       "modules/skparagraph:bench",
+      "modules/skshaper",
     ]
   }
 
@@ -1763,6 +1764,17 @@
     }
   }
 
+  test_lib("experimental_xform") {
+    sources = [
+      "experimental/xform/SkShape.cpp",
+      "experimental/xform/SkXform.cpp",
+      "experimental/xform/XContext.cpp",
+    ]
+    deps = [
+      ":skia",
+    ]
+  }
+
   if (skia_use_lua) {
     test_lib("lua") {
       sources = [
@@ -1937,8 +1949,8 @@
       ":skia",
       ":tool_utils",
       ":trace",
-      "modules/sksg",
       "modules/skparagraph:bench",
+      "modules/sksg",
       "modules/skshaper",
     ]
   }
@@ -2394,6 +2406,10 @@
       "modules/sksg:samples",
       "//third_party/imgui",
     ]
+    if (skia_use_experimental_xform) {
+      deps += [ ":experimental_xform" ]
+      sources += [ "gm/xform.cpp" ]
+    }
   }
 
   if (!skia_use_angle && (is_linux || is_win || is_mac)) {