add basic skia -> skcms dependency

This rolls skcms into skia and builds it in dev configurations.
We don't use it in any way yet, but if nothing else this gives
us roundabout Windows skcms build bots.

Bug: skia:7493

Change-Id: Idd945ccd5c7a543841d76ab600cc117f2ee074dc
Reviewed-on: https://skia-review.googlesource.com/99880
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
diff --git a/BUILD.gn b/BUILD.gn
index 90a8f9a..f9b6bc9 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -30,6 +30,7 @@
   skia_use_zlib = true
   skia_use_metal = false
   skia_use_libheif = is_skia_dev_build
+  skia_use_skcms = is_skia_dev_build
   skia_embed_resources = false
 
   skia_android_serial = ""
@@ -689,6 +690,17 @@
   ]
 }
 
+optional("skcms") {
+  enabled = skia_use_skcms
+
+  deps = [
+    "//third_party/skcms",
+  ]
+  sources = [
+    # TODO
+  ]
+}
+
 optional("typeface_freetype") {
   enabled = skia_use_freetype
 
@@ -752,6 +764,7 @@
     ":pdf",
     ":png",
     ":raw",
+    ":skcms",
     ":sse2",
     ":sse41",
     ":sse42",
diff --git a/DEPS b/DEPS
index f7b7c01..1840c72 100644
--- a/DEPS
+++ b/DEPS
@@ -20,6 +20,7 @@
   "third_party/externals/piex"          : "https://android.googlesource.com/platform/external/piex.git@8f540f64b6c170a16fb7e6e52d61819705c1522a",
   "third_party/externals/sdl"           : "https://skia.googlesource.com/third_party/sdl@5d7cfcca344034aff9327f77fc181ae3754e7a90",
   "third_party/externals/sfntly"        : "https://chromium.googlesource.com/external/github.com/googlei18n/sfntly.git@b18b09b6114b9b7fe6fc2f96d8b15e8a72f66916",
+  "third_party/externals/skcms"         : "https://skia.googlesource.com/skcms@7bcbd54",
   "third_party/externals/spirv-headers" : "https://github.com/KhronosGroup/SPIRV-Headers.git@661ad91124e6af2272afd00f804d8aa276e17107",
   "third_party/externals/spirv-tools"   : "https://github.com/KhronosGroup/SPIRV-Tools.git@e9e4393b1c5aad7553c05782acefbe32b42644bd",
  #"third_party/externals/v8"            : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4",
diff --git a/third_party/skcms/BUILD.gn b/third_party/skcms/BUILD.gn
new file mode 100644
index 0000000..70e2295
--- /dev/null
+++ b/third_party/skcms/BUILD.gn
@@ -0,0 +1,29 @@
+# Copyright 2018 Google Inc.
+#
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+config("skcms_public") {
+  include_dirs = [ "../externals/skcms" ]
+}
+
+source_set("skcms") {
+  public_configs = [ ":skcms_public" ]
+
+  cflags = []
+  if (!is_win || is_clang) {
+    cflags += [
+      "-w",
+      "-std=c11",
+    ]
+    if (!is_clang) {
+      # This seems to be the default in newer GCCs, but of course we test with older GCCs.
+      cflags += [ "-flax-vector-conversions" ]
+    }
+  }
+
+  defines = []
+  sources = [
+    "../externals/skcms/skcms.c",
+  ]
+}