Add some documentation for win/cross builds, remove assert() disallowing them.

Also, in win/cross builds:
* enable clang by default
* disable NaCl by default

Bug: 495204
Change-Id: Iae3c982097970227c45450fa449f6a56d64f148f
Reviewed-on: https://chromium-review.googlesource.com/717077
Reviewed-by: Brett Wilson <brettw@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#508745}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: bf97a6d177dc974c388a5b9cd354e63582f1a367
diff --git a/config/BUILDCONFIG.gn b/config/BUILDCONFIG.gn
index 6d705aa..038522b 100644
--- a/config/BUILDCONFIG.gn
+++ b/config/BUILDCONFIG.gn
@@ -138,6 +138,7 @@
   is_clang =
       current_os == "mac" || current_os == "ios" || current_os == "chromeos" ||
       current_os == "fuchsia" || current_os == "android" ||
+      (current_os == "win" && host_os != "win") ||
       (current_os == "linux" && current_cpu != "s390x" &&
        current_cpu != "s390" && current_cpu != "ppc64" &&
        current_cpu != "ppc" && current_cpu != "mips" && current_cpu != "mips64")
@@ -245,7 +246,9 @@
   _default_toolchain = host_toolchain
 } else if (target_os == "win") {
   # On Windows we use the same toolchain for host and target by default.
-  assert(target_os == host_os, "Win cross-compiles only work on win hosts.")
+  # Beware, win cross builds mostly don't work yet, see docs/win_cross.md
+  # TODO(thakis): Allow on Mac as well soon.
+  assert(host_os != "mac", "https://crbug.com/774209")
   if (is_clang) {
     _default_toolchain = "//build/toolchain/win:win_clang_$target_cpu"
   } else {
diff --git a/toolchain/goma.gni b/toolchain/goma.gni
index d7c2036..e9cb9d1 100644
--- a/toolchain/goma.gni
+++ b/toolchain/goma.gni
@@ -17,3 +17,6 @@
     goma_dir = getenv("HOME") + "/goma"
   }
 }
+
+assert(!(is_win && host_os != "win") || !use_goma,
+       "goma does not yet work in win cross builds, b/64390790")