Support generation of component targets for Mojom C++ bindings

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

Change-Id: Ic97165d6e6fa7775b6d254419492af0f381fa85a
Reviewed-on: https://chromium-review.googlesource.com/497830
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Yuzhu Shen <yzshen@chromium.org>
Commit-Queue: Ken Rockot <rockot@chromium.org>
Cr-Commit-Position: refs/heads/master@{#470451}

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