Move skdiff tool and add to gn build.

I really wanted this today, so I got it working again.

Change-Id: I1a37d48d4806198b55c59d1df5ff15a03500195f
Reviewed-on: https://skia-review.googlesource.com/3383
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
diff --git a/BUILD.gn b/BUILD.gn
index 7935e74..e1f0fc8 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -1061,4 +1061,18 @@
     ]
     testonly = true
   }
+
+  executable("skdiff") {
+    sources = [
+      "tools/skdiff/skdiff.cpp",
+      "tools/skdiff/skdiff_html.cpp",
+      "tools/skdiff/skdiff_main.cpp",
+      "tools/skdiff/skdiff_utils.cpp",
+    ]
+    deps = [
+      ":skia",
+      ":tool_utils",
+    ]
+    testonly = true
+  }
 }
diff --git a/gyp/tools.gyp b/gyp/tools.gyp
index b41ecc4..99edaa0 100644
--- a/gyp/tools.gyp
+++ b/gyp/tools.gyp
@@ -201,13 +201,13 @@
       'target_name': 'skdiff',
       'type': 'executable',
       'sources': [
-        '../tools/skdiff.cpp',
-        '../tools/skdiff.h',
-        '../tools/skdiff_html.cpp',
-        '../tools/skdiff_html.h',
-        '../tools/skdiff_main.cpp',
-        '../tools/skdiff_utils.cpp',
-        '../tools/skdiff_utils.h',
+        '../tools/skdiff/skdiff.cpp',
+        '../tools/skdiff/skdiff.h',
+        '../tools/skdiff/skdiff_html.cpp',
+        '../tools/skdiff/skdiff_html.h',
+        '../tools/skdiff/skdiff_main.cpp',
+        '../tools/skdiff/skdiff_utils.cpp',
+        '../tools/skdiff/skdiff_utils.h',
       ],
       'dependencies': [
         'skia_lib.gyp:skia_lib',
@@ -232,13 +232,13 @@
       'target_name': 'skimagediff',
       'type': 'executable',
       'sources': [
-        '../tools/skdiff.cpp',
-        '../tools/skdiff.h',
-        '../tools/skdiff_html.cpp',
-        '../tools/skdiff_html.h',
-        '../tools/skdiff_image.cpp',
-        '../tools/skdiff_utils.cpp',
-        '../tools/skdiff_utils.h',
+        '../tools/skdiff/skdiff.cpp',
+        '../tools/skdiff/skdiff.h',
+        '../tools/skdiff/skdiff_html.cpp',
+        '../tools/skdiff/skdiff_html.h',
+        '../tools/skdiff/skdiff_image.cpp',
+        '../tools/skdiff/skdiff_utils.cpp',
+        '../tools/skdiff/skdiff_utils.h',
       ],
       'dependencies': [
         'skia_lib.gyp:skia_lib',
diff --git a/tools/skdiff.cpp b/tools/skdiff/skdiff.cpp
similarity index 100%
rename from tools/skdiff.cpp
rename to tools/skdiff/skdiff.cpp
diff --git a/tools/skdiff.h b/tools/skdiff/skdiff.h
similarity index 99%
rename from tools/skdiff.h
rename to tools/skdiff/skdiff.h
index eec5133e..6bdaadc 100644
--- a/tools/skdiff.h
+++ b/tools/skdiff/skdiff.h
@@ -73,7 +73,7 @@
      */
     static bool getMatchingStatuses(char* selector, bool statuses[kStatusCount]);
 
-    DiffResource() : fFilename(), fFullPath(), fBitmap(), fStatus(kUnknown_Status) { };
+    DiffResource() : fFilename(), fFullPath(), fBitmap(), fStatus(kUnknown_Status) { }
 
     /** If isEmpty() indicates no filename available. */
     SkString fFilename;
@@ -125,7 +125,7 @@
         , fMaxMismatchG(0)
         , fMaxMismatchB(0)
         , fResult(kUnknown_Result) {
-    };
+    }
 
     DiffResource fBase;
     DiffResource fComparison;
diff --git a/tools/skdiff_html.cpp b/tools/skdiff/skdiff_html.cpp
similarity index 100%
rename from tools/skdiff_html.cpp
rename to tools/skdiff/skdiff_html.cpp
diff --git a/tools/skdiff_html.h b/tools/skdiff/skdiff_html.h
similarity index 100%
rename from tools/skdiff_html.h
rename to tools/skdiff/skdiff_html.h
diff --git a/tools/skdiff_image.cpp b/tools/skdiff/skdiff_image.cpp
similarity index 97%
rename from tools/skdiff_image.cpp
rename to tools/skdiff/skdiff_image.cpp
index f118d85..287523d 100644
--- a/tools/skdiff_image.cpp
+++ b/tools/skdiff/skdiff_image.cpp
@@ -10,8 +10,6 @@
 #include "SkData.h"
 #include "SkImageEncoder.h"
 #include "SkOSFile.h"
-#include "SkTDArray.h"
-#include "SkTemplates.h"
 #include "SkTypes.h"
 
 #include <stdio.h>
@@ -35,11 +33,11 @@
     drp->fComparison.fFullPath = comparisonFile;
     drp->fComparison.fStatus = DiffResource::kSpecified_Status;
 
-    SkAutoDataUnref baseFileBits(read_file(drp->fBase.fFullPath.c_str()));
+    sk_sp<SkData> baseFileBits = read_file(drp->fBase.fFullPath.c_str());
     if (baseFileBits) {
         drp->fBase.fStatus = DiffResource::kRead_Status;
     }
-    SkAutoDataUnref comparisonFileBits(read_file(drp->fComparison.fFullPath.c_str()));
+    sk_sp<SkData> comparisonFileBits = read_file(drp->fComparison.fFullPath.c_str());
     if (comparisonFileBits) {
         drp->fComparison.fStatus = DiffResource::kRead_Status;
     }
@@ -54,7 +52,7 @@
         return;
     }
 
-    if (are_buffers_equal(baseFileBits, comparisonFileBits)) {
+    if (are_buffers_equal(baseFileBits.get(), comparisonFileBits.get())) {
         drp->fResult = DiffRecord::kEqualBits_Result;
         return;
     }
diff --git a/tools/skdiff_main.cpp b/tools/skdiff/skdiff_main.cpp
similarity index 99%
rename from tools/skdiff_main.cpp
rename to tools/skdiff/skdiff_main.cpp
index ef58b1b..c51cd28 100644
--- a/tools/skdiff_main.cpp
+++ b/tools/skdiff/skdiff_main.cpp
@@ -66,7 +66,7 @@
         : fNumMatches(0)
         , fNumMismatches(0)
         , fMaxMismatchV(0)
-        , fMaxMismatchPercent(0) { };
+        , fMaxMismatchPercent(0) { }
 
     ~DiffSummary() {
         for (int i = 0; i < DiffRecord::kResultCount; ++i) {
diff --git a/tools/skdiff_utils.cpp b/tools/skdiff/skdiff_utils.cpp
similarity index 100%
rename from tools/skdiff_utils.cpp
rename to tools/skdiff/skdiff_utils.cpp
diff --git a/tools/skdiff_utils.h b/tools/skdiff/skdiff_utils.h
similarity index 100%
rename from tools/skdiff_utils.h
rename to tools/skdiff/skdiff_utils.h