First draft of Dawn backend: clears are working.

First draft of (mostly stubbed-out) GrDawnGpu.
Skeletons of GrDawnCaps, GrDawnGpuCommandBuffer, GrDawnRenderTarget.
First draft of DawnTestContext.
First draft of psuedo-fences for Dawn, implemented with MapReadAsync.

Change-Id: I443f3370522639e82f2fa0eebe6b206c372f13a4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/228137
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Brian Salomon <bsalomon@google.com>
diff --git a/BUILD.gn b/BUILD.gn
index 766e86f..a148328 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -650,6 +650,7 @@
 
   if (skia_use_dawn) {
     public_defines += [ "SK_DAWN" ]
+    sources += skia_dawn_sources
     public_deps += [
       "//third_party/dawn:dawn_headers",
       "//third_party/dawn:libdawn",
@@ -1566,6 +1567,10 @@
     if (skia_use_metal) {
       sources += [ "tools/gpu/mtl/MtlTestContext.mm" ]
     }
+    if (skia_use_dawn) {
+      public_deps += [ "//third_party/dawn:dawn_headers" ]
+      sources += [ "tools/gpu/dawn/DawnTestContext.cpp" ]
+    }
   }
 
   test_lib("flags") {