SkShaper: make build target

Use primitive fallback when harfbuzz+icu is not present

Change-Id: I23efcb909aa4509dade50fc06c33a7d596a25184
Reviewed-on: https://skia-review.googlesource.com/106180
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
diff --git a/BUILD.gn b/BUILD.gn
index 12c6bad..649c149 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -1612,15 +1612,22 @@
     }
   }
 
-  # TODO(halcanary): Build ICU on iOS.
-  if (!is_ios && target_cpu != "wasm") {
-    test_app("sktexttopdf-hb") {
+  test_lib("skshaper") {
+    public_include_dirs = [ "tools/shape" ]
+    deps = [
+      ":skia",
+    ]
+
+    # TODO(halcanary): Build ICU on iOS.
+    if (is_ios || target_cpu == "wasm") {
+      sources = [
+        "tools/shape/SkShaper_primitive.cpp",
+      ]
+    } else {
       sources = [
         "tools/shape/SkShaper_harfbuzz.cpp",
-        "tools/shape/using_skia_and_harfbuzz.cpp",
       ]
-      deps = [
-        ":skia",
+      deps += [
         "//third_party/harfbuzz",
         "//third_party/icu",
       ]
@@ -1628,11 +1635,11 @@
   }
   test_app("sktexttopdf") {
     sources = [
-      "tools/shape/SkShaper_primitive.cpp",
       "tools/shape/using_skia_and_harfbuzz.cpp",
     ]
     deps = [
       ":skia",
+      ":skshaper",
     ]
   }