spin off easy stuff from Herb's windows GN CL

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2209533004

No public API changes.
TBR=reed@google.com

Review-Url: https://codereview.chromium.org/2209533004
diff --git a/BUILD.gn b/BUILD.gn
index 1286a06..e2a9a88 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -53,6 +53,7 @@
     "src/ports",
     "src/sfnt",
     "src/utils",
+    "src/utils/win",
     "third_party/etc1",
     "third_party/ktx",
   ]
@@ -178,7 +179,9 @@
     "//third_party/zlib",
   ]
 
-  libs = [ "pthread" ]
+  if (!is_win) {
+    libs = [ "pthread" ]
+  }
 
   sources = []
   sources += core_gypi.sources
@@ -249,6 +252,7 @@
       "src/ports/SkTypeface_win_dw.cpp",
       "src/xps/SkDocument_XPS.cpp",
     ]
+    sources -= [ "src/utils/SkThreadUtils_pthread.cpp" ]
   } else {
     sources += [
       "src/ports/SkDebug_stdio.cpp",
diff --git a/gm/circles.cpp b/gm/circles.cpp
index 2c2542b..53ca5dd 100644
--- a/gm/circles.cpp
+++ b/gm/circles.cpp
@@ -8,6 +8,7 @@
 #include "SkBlurDrawLooper.h"
 #include "SkBlurMask.h"
 #include "SkBlurMaskFilter.h"
+#include "SkColorFilter.h"
 #include "SkGradientShader.h"
 #include "SkMatrix.h"
 #include "SkRandom.h"
diff --git a/gm/ovals.cpp b/gm/ovals.cpp
index 1374b7d..272ac43 100755
--- a/gm/ovals.cpp
+++ b/gm/ovals.cpp
@@ -10,6 +10,7 @@
 #include "SkRandom.h"
 #include "SkMatrix.h"
 #include "SkBlurMaskFilter.h"
+#include "SkColorFilter.h"
 #include "SkGradientShader.h"
 #include "SkBlurDrawLooper.h"
 #include "SkRect.h"
diff --git a/gm/rects.cpp b/gm/rects.cpp
index 9ec7881..28649b2 100644
--- a/gm/rects.cpp
+++ b/gm/rects.cpp
@@ -9,6 +9,7 @@
 #include "SkBlurDrawLooper.h"
 #include "SkBlurMask.h"
 #include "SkBlurMaskFilter.h"
+#include "SkColorFilter.h"
 #include "SkGradientShader.h"
 #include "SkMatrix.h"
 #include "SkTArray.h"
diff --git a/gm/roundrects.cpp b/gm/roundrects.cpp
index 514e43a..9554705 100644
--- a/gm/roundrects.cpp
+++ b/gm/roundrects.cpp
@@ -10,6 +10,7 @@
 #include "SkRandom.h"
 #include "SkMatrix.h"
 #include "SkBlurMaskFilter.h"
+#include "SkColorFilter.h"
 #include "SkGradientShader.h"
 #include "SkBlurDrawLooper.h"
 #include "SkRect.h"
diff --git a/gm/shadows.cpp b/gm/shadows.cpp
index 6263af2..fcaeeb7 100644
--- a/gm/shadows.cpp
+++ b/gm/shadows.cpp
@@ -8,6 +8,8 @@
 #include "gm.h"
 #include "SkBlurDrawLooper.h"
 #include "SkBlurMask.h"
+#include "SkColorFilter.h"
+#include "SkMaskFilter.h"
 #include "SkPath.h"
 
 namespace skiagm {
diff --git a/gm/tilemodes.cpp b/gm/tilemodes.cpp
index bd2dcfe..c944fe7 100644
--- a/gm/tilemodes.cpp
+++ b/gm/tilemodes.cpp
@@ -5,11 +5,13 @@
  * found in the LICENSE file.
  */
 #include "gm.h"
+#include "SkColorFilter.h"
+#include "SkMaskFilter.h"
 #include "SkPath.h"
 #include "SkRegion.h"
 #include "SkShader.h"
 #include "SkUtils.h"
-#include "SkColorFilter.h"
+
 
 // effects
 #include "SkGradientShader.h"
diff --git a/gm/tilemodes_scaled.cpp b/gm/tilemodes_scaled.cpp
index 1645f80..897c829 100644
--- a/gm/tilemodes_scaled.cpp
+++ b/gm/tilemodes_scaled.cpp
@@ -5,11 +5,12 @@
  * found in the LICENSE file.
  */
 #include "gm.h"
+#include "SkColorFilter.h"
+#include "SkMaskFilter.h"
 #include "SkPath.h"
 #include "SkRegion.h"
 #include "SkShader.h"
 #include "SkUtils.h"
-#include "SkColorFilter.h"
 
 // effects
 #include "SkGradientShader.h"
diff --git a/gn/win_stamp.py b/gn/win_stamp.py
new file mode 100644
index 0000000..3d23dd8
--- /dev/null
+++ b/gn/win_stamp.py
@@ -0,0 +1,11 @@
+#!/usr/bin/env python
+#
+# Copyright 2016 Google Inc.
+#
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Implement stamp for windows.
+
+import sys
+open(sys.argv[1], 'w').close()
diff --git a/include/c/sk_types.h b/include/c/sk_types.h
index dcbc6f7..baa3ac9 100644
--- a/include/c/sk_types.h
+++ b/include/c/sk_types.h
@@ -25,7 +25,7 @@
 
 #if !defined(SK_API)
     #if defined(SKIA_DLL)
-        #if defined(SK_BUILD_FOR_WIN32)
+        #if defined(_MSC_VER)
             #if SKIA_IMPLEMENTATION
                 #define SK_API __declspec(dllexport)
             #else
diff --git a/include/core/SkPreConfig.h b/include/core/SkPreConfig.h
index 806ec8a..d8dd65b 100644
--- a/include/core/SkPreConfig.h
+++ b/include/core/SkPreConfig.h
@@ -211,7 +211,7 @@
 
 #if !defined(SK_API)
     #if defined(SKIA_DLL)
-        #if defined(SK_BUILD_FOR_WIN32)
+        #if defined(_MSC_VER)
             #if SKIA_IMPLEMENTATION
                 #define SK_API __declspec(dllexport)
             #else
diff --git a/tests/BlurTest.cpp b/tests/BlurTest.cpp
index c40634c..6ccb047 100644
--- a/tests/BlurTest.cpp
+++ b/tests/BlurTest.cpp
@@ -9,6 +9,7 @@
 #include "SkBlurMaskFilter.h"
 #include "SkBlurDrawLooper.h"
 #include "SkCanvas.h"
+#include "SkColorFilter.h"
 #include "SkEmbossMaskFilter.h"
 #include "SkLayerDrawLooper.h"
 #include "SkMath.h"
diff --git a/third_party/expat/BUILD.gn b/third_party/expat/BUILD.gn
index ab20ca6..1219008 100644
--- a/third_party/expat/BUILD.gn
+++ b/third_party/expat/BUILD.gn
@@ -9,7 +9,7 @@
 import("../third_party.gni")
 
 third_party("expat") {
-  public_include_dirs = [ "../externals/expat" ]
+  public_include_dirs = [ "../externals/expat/lib" ]
 
   defines = [ "HAVE_MEMMOVE" ]
 
diff --git a/third_party/giflib/BUILD.gn b/third_party/giflib/BUILD.gn
index 96414a9..a82bf92 100644
--- a/third_party/giflib/BUILD.gn
+++ b/third_party/giflib/BUILD.gn
@@ -11,6 +11,10 @@
 third_party("giflib") {
   public_include_dirs = [ "../externals/giflib" ]
 
+  if (is_win) {
+    include_dirs = [ "." ]
+  }
+
   sources = [
     "../externals/giflib/dgif_lib.c",
     "../externals/giflib/gif_err.c",
diff --git a/third_party/libjpeg_turbo/BUILD.gn b/third_party/libjpeg_turbo/BUILD.gn
index 7266412..46d9251 100644
--- a/third_party/libjpeg_turbo/BUILD.gn
+++ b/third_party/libjpeg_turbo/BUILD.gn
@@ -11,6 +11,8 @@
 third_party("libjpeg_turbo") {
   public_include_dirs = [ "../externals/libjpeg-turbo" ]
 
+  defines = [ "TURBO_FOR_WINDOWS" ]
+
   sources = [
     "../externals/libjpeg-turbo/jcapimin.c",
     "../externals/libjpeg-turbo/jcapistd.c",