Simplify //mojo/public/c/system targets

We don't support building mojo apps in the component build, so we can
simplify these system targets a bit. We don't need to have everything
depend on a forwarding group that always evaluates to the same thing in
the mojo repo.

The new targets are:

//mojo/public/c/system which contains the system headers but no
implementation.

//mojo/public/platform/native:system which contains the system thunks
and exported thunk setter, used by anything run by the shell. This is
mostly used by the mojo_native_application template but is also used
by a few targets that need to link as shared_lib but will ultimately
be loaded by the shell.

//mojo/edk/system provides the real implementation of the system calls
and is used by the shell and a few tests.

The :for_... groups need to stick around for now to keep chromium
working, but once this rolls in to the chromium tree then these can
be fixed up as well.

R=viettrungluu@chromium.org

Review URL: https://codereview.chromium.org/754963008
diff --git a/examples/device_name/BUILD.gn b/examples/device_name/BUILD.gn
index 66f28b9..d534aaa 100644
--- a/examples/device_name/BUILD.gn
+++ b/examples/device_name/BUILD.gn
@@ -10,10 +10,11 @@
 
   deps = [
     "//base",
-    "//mojo/public/c/system:for_shared_library",
+    "//mojo/public/c/system",
     "//mojo/public/cpp/application:standalone",
     "//mojo/public/cpp/bindings",
     "//mojo/public/cpp/utility",
+    "//mojo/public/platform/native:system",
     ":jni_headers",
   ]
 
diff --git a/mojo/go/BUILD.gn b/mojo/go/BUILD.gn
index 4a8986f..a895508 100644
--- a/mojo/go/BUILD.gn
+++ b/mojo/go/BUILD.gn
@@ -15,7 +15,8 @@
       "sample_app/app.go",
     ]
     deps = [
-      "//mojo/public/c/system:for_shared_library",
+      "//mojo/public/c/system",
+      "//mojo/public/platform/native:system",
     ]
   }
 } else if (is_linux) {
diff --git a/mojo/gpu/BUILD.gn b/mojo/gpu/BUILD.gn
index 010a7d5..d91fc7a 100644
--- a/mojo/gpu/BUILD.gn
+++ b/mojo/gpu/BUILD.gn
@@ -18,7 +18,7 @@
     "//gpu/command_buffer/common",
     "//mojo/environment:chromium",
     "//mojo/public/c/gles2",
-    "//mojo/public/c/system:for_shared_library",
+    "//mojo/public/c/system",
     "//mojo/public/cpp/application",
     "//mojo/public/cpp/bindings",
     "//mojo/public/cpp/environment",
diff --git a/mojo/public/c/gles2/BUILD.gn b/mojo/public/c/gles2/BUILD.gn
index 0a4d151..b680bec 100644
--- a/mojo/public/c/gles2/BUILD.gn
+++ b/mojo/public/c/gles2/BUILD.gn
@@ -14,7 +14,7 @@
     ":headers",
   ]
   deps = [
-    "../../platform/native:gles2_thunks",
+    "../../platform/native:gles2",
   ]
 }
 
diff --git a/mojo/public/c/system/BUILD.gn b/mojo/public/c/system/BUILD.gn
index d2393a4..6a3827c 100644
--- a/mojo/public/c/system/BUILD.gn
+++ b/mojo/public/c/system/BUILD.gn
@@ -38,15 +38,9 @@
   public_deps = [
     ":system",
   ]
-  if (is_component_build) {
-    deps = [
-      "../../../edk/system",
-    ]
-  } else {
-    deps = [
-      "../../platform/native:system_thunks",
-    ]
-  }
+  deps = [
+    "../../platform/native:system",
+  ]
 }
 
 group("for_component") {
diff --git a/mojo/public/mojo_application.gni b/mojo/public/mojo_application.gni
index 6f738bd..4fb23c9 100644
--- a/mojo/public/mojo_application.gni
+++ b/mojo/public/mojo_application.gni
@@ -62,7 +62,7 @@
 
     if (use_prebuilt_mojo_shell) {
       copy_mojo_shell =
-        rebase_path("mojo/public/tools:copy_mojo_shell", ".", mojo_root)
+          rebase_path("mojo/public/tools:copy_mojo_shell", ".", mojo_root)
     }
 
     # Copy the prebuilt mojo_shell if using it.
@@ -73,12 +73,17 @@
       }
     } else {
       if (use_prebuilt_mojo_shell) {
-        datadeps = [ copy_mojo_shell ]
+        datadeps = [
+          copy_mojo_shell,
+        ]
       }
     }
     deps = rebase_path([
-      "mojo/public/c/system:for_shared_library",
-    ], ".", mojo_root)
+                         "mojo/public/c/system",
+                         "mojo/public/platform/native:system",
+                       ],
+                       ".",
+                       mojo_root)
     if (defined(invoker.deps)) {
       deps += invoker.deps
     }
@@ -116,9 +121,7 @@
       testonly = invoker.testonly
     }
 
-    visibility = [
-      ":${final_target_name}",
-    ]
+    visibility = [ ":${final_target_name}" ]
   }
 
   copy(final_target_name) {
@@ -131,8 +134,12 @@
     deps = [
       ":${library_target_name}",
     ]
-    sources = [ "${root_out_dir}/${library_name}" ]
-    outputs = [ "${root_out_dir}/${output}" ]
+    sources = [
+      "${root_out_dir}/${library_name}",
+    ]
+    outputs = [
+      "${root_out_dir}/${output}",
+    ]
   }
 }
 
@@ -159,7 +166,9 @@
       ]
 
       output = zip_action_output
-      outputs = [ output ]
+      outputs = [
+        output,
+      ]
 
       rebase_inputs = rebase_path(inputs, root_build_dir)
       rebase_output = rebase_path(output, root_build_dir)
@@ -179,10 +188,14 @@
       script = rebase_path("mojo/public/tools/prepend.py", ".", mojo_root)
 
       input = zip_action_output
-      inputs = [ input ]
+      inputs = [
+        input,
+      ]
 
       output = mojo_output
-      outputs = [ output ]
+      outputs = [
+        output,
+      ]
 
       rebase_input = rebase_path(input, root_build_dir)
       rebase_output = rebase_path(output, root_build_dir)
diff --git a/mojo/public/platform/native/BUILD.gn b/mojo/public/platform/native/BUILD.gn
index 21382a6..a369e17 100644
--- a/mojo/public/platform/native/BUILD.gn
+++ b/mojo/public/platform/native/BUILD.gn
@@ -4,12 +4,7 @@
 
 import("../../mojo_sdk.gni")
 
-mojo_sdk_source_set("system_thunks") {
-  mojo_sdk_visibility = [
-    "mojo/public/c/system:for_component",
-    "mojo/public/c/system:for_shared_library",
-  ]
-
+mojo_sdk_source_set("system") {
   sources = [
     "system_thunks.h",
     "system_thunks.cc",
@@ -27,9 +22,7 @@
   # source_set here, this flag change is not needed.
 }
 
-mojo_sdk_source_set("gles2_thunks") {
-  mojo_sdk_visibility = [ "mojo/public/gles2:for_shared_library" ]
-
+mojo_sdk_source_set("gles2") {
   sources = [
     "gles2_thunks.cc",
     "gles2_thunks.h",
diff --git a/mojo/public/python/BUILD.gn b/mojo/public/python/BUILD.gn
index 8f10250..51bd6eb 100644
--- a/mojo/public/python/BUILD.gn
+++ b/mojo/public/python/BUILD.gn
@@ -24,11 +24,12 @@
   deps = [
     ":base",
     "../c/environment",
-    "../c/system:for_shared_library",
+    "../c/system",
     "../cpp/environment:standalone",
     "../cpp/system",
     "../cpp/utility",
     "../cpp/bindings:callback",
+    "../platform/native:system",
   ]
 }
 
@@ -47,11 +48,12 @@
   deps = [
     ":base",
     "../c/environment",
-    "../c/system:for_shared_library",
+    "../c/system",
     "../cpp/environment:standalone",
     "../cpp/system",
     "../cpp/utility",
     "../cpp/bindings:callback",
+    "../platform/native:system",
   ]
 }
 
diff --git a/sky/engine/core/BUILD.gn b/sky/engine/core/BUILD.gn
index 3635f2a..cea3c4b 100644
--- a/sky/engine/core/BUILD.gn
+++ b/sky/engine/core/BUILD.gn
@@ -17,7 +17,7 @@
     "//gpu/command_buffer/client:gles2_c_lib",
     "//mojo/application",
     "//mojo/common",
-    "//mojo/public/c/system:for_shared_library",
+    "//mojo/public/c/system",
     "//mojo/public/cpp/bindings",
     "//mojo/public/cpp/system",
     "//mojo/public/cpp/utility",
diff --git a/sky/engine/platform/BUILD.gn b/sky/engine/platform/BUILD.gn
index b11c2d5..51f78d7 100644
--- a/sky/engine/platform/BUILD.gn
+++ b/sky/engine/platform/BUILD.gn
@@ -84,11 +84,9 @@
   ]
 }
 
-component("platform") {
+source_set("platform") {
   visibility += [ "//sky/*" ]
 
-  output_name = "sky_platform"
-
   sources = [
     "animation/AnimationUtilities.h",
     "animation/AnimationValue.h",
@@ -644,7 +642,7 @@
     "//mojo/application",
     "//mojo/common",
     "//mojo/environment:chromium",
-    "//mojo/public/c/system:for_shared_library",
+    "//mojo/public/c/system",
     "//mojo/public/cpp/bindings",
     "//mojo/public/cpp/system",
     "//mojo/public/cpp/utility",
@@ -756,6 +754,12 @@
     "//url",
   ]
 
+  # TODO(abarth): This is a lie - this test is not embedded in an environment
+  # that injects the system thunks, so system calls don't actually work. This
+  # just tricks the linker into thinking that an implementation of these calls
+  # will be injected at runtime so the link succeeds.
+  deps += [ "//mojo/public/platform/native:system" ]
+
   defines = [ "INSIDE_BLINK" ]
 
   include_dirs = [ "$root_build_dir" ]
diff --git a/sky/engine/web/BUILD.gn b/sky/engine/web/BUILD.gn
index bfd4a35..0c27709 100644
--- a/sky/engine/web/BUILD.gn
+++ b/sky/engine/web/BUILD.gn
@@ -137,8 +137,8 @@
     "//base",
     "//base/test:test_support",
     "//base:i18n",
-    "//sky/engine/wtf:test_support",
     "//sky/engine/testing/platform",
+    "//sky/engine/wtf:test_support",
     "//testing/gmock",
     "//testing/gtest",
     "//third_party/zlib",
@@ -148,6 +148,12 @@
     ":web",
   ]
 
+  # TODO(abarth): This is a lie - this test is not embedded in an environment
+  # that injects the system thunks, so system calls don't actually work. This
+  # just tricks the linker into thinking that an implementation of these calls
+  # will be injected at runtime so the link succeeds.
+  deps += [ "//mojo/public/platform/native:system" ]
+
   sources = [
     "tests/RunAllTests.cpp",
   ]