skeletal animation support added to API and software backend

SkCanvas::drawVertices now supports overloads that take an array of bone deformation matrices.
SkVertices::MakeCopy and SkVertices::Builder now support two additional optional attributes, boneIndices and boneWeights.

Bug: skia:
Change-Id: I30a3b11691e7cdb13924907cc1401ff86d127aea
Reviewed-on: https://skia-review.googlesource.com/137221
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Ruiqi Mao <ruiqimao@google.com>
diff --git a/BUILD.gn b/BUILD.gn
index 97cbf73..f10d232 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -1551,9 +1551,13 @@
         ":xml",
         "modules/sksg:samples",
         "modules/skshaper",
-        "//third_party/Nima-Cpp",
       ]
 
+      # NIMA does not build on Windows clang
+      if (!is_win || !is_clang) {
+        deps += [ "//third_party/Nima-Cpp" ]
+      }
+
       if (skia_use_lua) {
         sources += [ "samplecode/SampleLua.cpp" ]
         deps += [
@@ -1581,10 +1585,14 @@
         ":tool_utils",
         "modules/skottie",
         "modules/sksg",
-        "//third_party/Nima-Cpp",
         "//third_party/jsoncpp",
         "//third_party/libpng",
       ]
+
+      # NIMA does not build on Windows clang
+      if (!is_win || !is_clang) {
+        deps += [ "//third_party/Nima-Cpp" ]
+      }
     }
   }
 
@@ -2005,9 +2013,14 @@
       ":views",
       "modules/skottie",
       "modules/sksg",
-      "//third_party/Nima-Cpp",
       "//third_party/imgui",
     ]
+
+    # NIMA does not build on Windows clang
+    if (!is_win || !is_clang) {
+      sources += [ "tools/viewer/NIMASlide.cpp" ]
+      deps += [ "//third_party/Nima-Cpp" ]
+    }
   }
 
   if (is_android) {