Work on Windows GN component build.

This makes ppapi_shared link. This required many changes to gpu to match the structure of GYP in both component and non-component modes.

BUG=470212
CQ_EXTRA_TRYBOTS=tryserver.chromium.linux:android_chromium_gn_compile_dbg,android_chromium_gn_compile_rel;tryserver.chromium.win:win8_chromium_gn_rel,win8_chromium_gn_dbg;tryserver.chromium.mac:mac_chromium_gn_rel,mac_chromium_gn_dbg

Reland of https://codereview.chromium.org/1053203003/

Review URL: https://codereview.chromium.org/1061953002

Cr-Commit-Position: refs/heads/master@{#323966}
diff --git a/ppapi/proxy/BUILD.gn b/ppapi/proxy/BUILD.gn
index 4af9bdcb..31a0262 100644
--- a/ppapi/proxy/BUILD.gn
+++ b/ppapi/proxy/BUILD.gn
@@ -272,7 +272,7 @@
     "//ipc",
     "//media:shared_memory_support",
     "//ppapi/c",
-    "//ppapi/proxy:ipc",
+    "//ppapi/proxy:ipc_sources",
     "//ppapi/shared_impl",
     "//third_party/icu",
   ]
@@ -293,7 +293,19 @@
   }
 }
 
-source_set("ipc") {
+group("ipc") {
+  if (is_component_build) {
+    public_deps = [
+      "//ppapi/proxy",
+    ]
+  } else {
+    public_deps = [
+      ":ipc_sources",
+    ]
+  }
+}
+
+source_set("ipc_sources") {
   sources = [
     "nacl_message_scanner.cc",
     "nacl_message_scanner.h",