Revert "[reland] Support generation of component targets for Mojom C++ bindings"

This reverts commit e99f3c9e7bc79b484bf6d475a1185f9615b0b6a3.

Reason for revert: Speculative revert, likely breaking generate_build_files on ChromiumOS builder with
/b/c/b/linux_chromeos/src/buildtools/linux64/gn gen //out/Debug --check --runtime-deps-list-file=/b/c/b/linux_chromeos/src/out/Debug/runtime_deps
  -> returned 1
ERROR at //build/config/BUILDCONFIG.gn:648:3: Duplicate output file.
  target(_component_mode, target_name) {
  ^-------------------------------------
Two or more targets generate the same output:
  libinterfaces_interfaces_internal_interfaces_internal_shared.so
This is can often be fixed by changing one of the target names, or by 
setting an output_name on one of them.
Collisions:
  //ash/public/interfaces:interfaces_internal_shared
  //services/resource_coordinator/public/interfaces:interfaces_internal_shared
See //build/config/BUILDCONFIG.gn:648:3: Collision.
  target(_component_mode, target_name) {
  ^-------------------------------------
GN gen failed: 1

at https://uberchromegw.corp.google.com/i/chromium.chromiumos/builders/Linux%20ChromiumOS%20Builder%20%28dbg%29/builds/86978

Original change's description:
> [reland] Support generation of component targets for Mojom C++ bindings
> 
> NOTE: Reland of https://chromium-review.googlesource.com/c/497830/,
> with component dependency fixed. Variant components needed to depend
> on the shared component. This also means struct *_Data classes need
> to be exported, which in turn required moving all their method
> definitions out-of-line.
> 
> This allows developers to force the mojom GN template to emit a
> component target for C++ bindings rather than a source_set and updates
> some existing uses of the export_class_attribute etc parameters to use
> explicit component generation instead.
> 
> This is a step towards using mojom component targets by default, but
> that is currently impossible without additional GN support.
> 
> BUG=718098
> TBR=jam@chromium.org
> TBR=yzshen@chromium.org
> 
> Change-Id: I715c7a66fb40bab3d45474af81aaecd124cb9f71
> Reviewed-on: https://chromium-review.googlesource.com/502087
> Reviewed-by: Ken Rockot <rockot@chromium.org>
> Commit-Queue: Ken Rockot <rockot@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#471238}

TBR=jam@chromium.org,rockot@chromium.org,yzshen@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=718098

Change-Id: I628d191f3c145ba43dbee9da4b92bcabe3017d3d
Reviewed-on: https://chromium-review.googlesource.com/503929
Reviewed-by: Max Morin <maxmorin@chromium.org>
Commit-Queue: Max Morin <maxmorin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#471250}

CrOS-Libchrome-Original-Commit: a50d914e18c636fb8a37bf622ef8bd8728c9d2b7
9 files changed
tree: b18fb7922c76418853ac80a52b7aa40e26e9b54f
  1. base/
  2. build/
  3. components/
  4. dbus/
  5. device/
  6. ipc/
  7. mojo/
  8. testing/
  9. third_party/
  10. ui/