New issue
Advanced search Search tips

Issue 718098 link

Starred by 5 users

Issue metadata

Status: Assigned
Owner:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Make mojom GN template emit components by default

Project Member Reported by roc...@chromium.org, May 3 2017

Issue description

The mojom template emits source_sets and this is problematic for many reasons. It should instead emit components by default, with the option to emit a source_set instead to satisfy some existing legacy uses.

Discussed recently here: https://groups.google.com/a/chromium.org/forum/#!topic/chromium-mojo/BUf1hVllHW4
 
Project Member

Comment 1 by bugdroid1@chromium.org, May 10 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/67711f360e46533642ae711d9cdf868fb7a64215

commit 67711f360e46533642ae711d9cdf868fb7a64215
Author: Ken Rockot <rockot@chromium.org>
Date: Wed May 10 04:42:23 2017

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}
[modify] https://crrev.com/67711f360e46533642ae711d9cdf868fb7a64215/chrome/browser/android/vr_shell/BUILD.gn
[modify] https://crrev.com/67711f360e46533642ae711d9cdf868fb7a64215/content/browser/BUILD.gn
[modify] https://crrev.com/67711f360e46533642ae711d9cdf868fb7a64215/content/common/BUILD.gn
[modify] https://crrev.com/67711f360e46533642ae711d9cdf868fb7a64215/device/vr/BUILD.gn
[modify] https://crrev.com/67711f360e46533642ae711d9cdf868fb7a64215/ipc/BUILD.gn
[modify] https://crrev.com/67711f360e46533642ae711d9cdf868fb7a64215/mojo/public/tools/bindings/blink_bindings_configuration.gni
[modify] https://crrev.com/67711f360e46533642ae711d9cdf868fb7a64215/mojo/public/tools/bindings/chromium_bindings_configuration.gni
[add] https://crrev.com/67711f360e46533642ae711d9cdf868fb7a64215/mojo/public/tools/bindings/generate_export_header.py
[modify] https://crrev.com/67711f360e46533642ae711d9cdf868fb7a64215/mojo/public/tools/bindings/generators/cpp_templates/module-shared-internal.h.tmpl
[modify] https://crrev.com/67711f360e46533642ae711d9cdf868fb7a64215/mojo/public/tools/bindings/generators/cpp_templates/module-shared.h.tmpl
[modify] https://crrev.com/67711f360e46533642ae711d9cdf868fb7a64215/mojo/public/tools/bindings/generators/cpp_templates/union_declaration.tmpl
[modify] https://crrev.com/67711f360e46533642ae711d9cdf868fb7a64215/mojo/public/tools/bindings/mojom.gni

Project Member

Comment 2 by bugdroid1@chromium.org, May 10 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5d54168ed355aedaeeedb0f53f8522438583a343

commit 5d54168ed355aedaeeedb0f53f8522438583a343
Author: Jochen Eisinger <eisinger@google.com>
Date: Wed May 10 11:11:20 2017

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

This reverts commit 67711f360e46533642ae711d9cdf868fb7a64215.

Reason for revert: Breaks windows binaries (running them results in Bad Image exception)

Original change's description:
> 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}

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

Change-Id: Ie53df1396abbd36b8975c3cf7b68c8b8ab2c8c65
Reviewed-on: https://chromium-review.googlesource.com/501807
Reviewed-by: Jochen Eisinger <eisinger@google.com>
Commit-Queue: Jochen Eisinger <eisinger@google.com>
Cr-Commit-Position: refs/heads/master@{#470522}
[modify] https://crrev.com/5d54168ed355aedaeeedb0f53f8522438583a343/chrome/browser/android/vr_shell/BUILD.gn
[modify] https://crrev.com/5d54168ed355aedaeeedb0f53f8522438583a343/content/browser/BUILD.gn
[modify] https://crrev.com/5d54168ed355aedaeeedb0f53f8522438583a343/content/common/BUILD.gn
[modify] https://crrev.com/5d54168ed355aedaeeedb0f53f8522438583a343/device/vr/BUILD.gn
[modify] https://crrev.com/5d54168ed355aedaeeedb0f53f8522438583a343/ipc/BUILD.gn
[modify] https://crrev.com/5d54168ed355aedaeeedb0f53f8522438583a343/mojo/public/tools/bindings/blink_bindings_configuration.gni
[modify] https://crrev.com/5d54168ed355aedaeeedb0f53f8522438583a343/mojo/public/tools/bindings/chromium_bindings_configuration.gni
[delete] https://crrev.com/faace60759ac73ae60b5d4ef84fb85c65c937b4a/mojo/public/tools/bindings/generate_export_header.py
[modify] https://crrev.com/5d54168ed355aedaeeedb0f53f8522438583a343/mojo/public/tools/bindings/generators/cpp_templates/module-shared-internal.h.tmpl
[modify] https://crrev.com/5d54168ed355aedaeeedb0f53f8522438583a343/mojo/public/tools/bindings/generators/cpp_templates/module-shared.h.tmpl
[modify] https://crrev.com/5d54168ed355aedaeeedb0f53f8522438583a343/mojo/public/tools/bindings/generators/cpp_templates/union_declaration.tmpl
[modify] https://crrev.com/5d54168ed355aedaeeedb0f53f8522438583a343/mojo/public/tools/bindings/mojom.gni

Project Member

Comment 3 by bugdroid1@chromium.org, May 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e99f3c9e7bc79b484bf6d475a1185f9615b0b6a3

commit e99f3c9e7bc79b484bf6d475a1185f9615b0b6a3
Author: Ken Rockot <rockot@chromium.org>
Date: Fri May 12 06:23:23 2017

[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}
[modify] https://crrev.com/e99f3c9e7bc79b484bf6d475a1185f9615b0b6a3/chrome/browser/android/vr_shell/BUILD.gn
[modify] https://crrev.com/e99f3c9e7bc79b484bf6d475a1185f9615b0b6a3/content/browser/BUILD.gn
[modify] https://crrev.com/e99f3c9e7bc79b484bf6d475a1185f9615b0b6a3/content/common/BUILD.gn
[modify] https://crrev.com/e99f3c9e7bc79b484bf6d475a1185f9615b0b6a3/device/vr/BUILD.gn
[modify] https://crrev.com/e99f3c9e7bc79b484bf6d475a1185f9615b0b6a3/ipc/BUILD.gn
[modify] https://crrev.com/e99f3c9e7bc79b484bf6d475a1185f9615b0b6a3/mojo/public/interfaces/bindings/BUILD.gn
[modify] https://crrev.com/e99f3c9e7bc79b484bf6d475a1185f9615b0b6a3/mojo/public/tools/bindings/blink_bindings_configuration.gni
[modify] https://crrev.com/e99f3c9e7bc79b484bf6d475a1185f9615b0b6a3/mojo/public/tools/bindings/chromium_bindings_configuration.gni
[add] https://crrev.com/e99f3c9e7bc79b484bf6d475a1185f9615b0b6a3/mojo/public/tools/bindings/generate_export_header.py
[modify] https://crrev.com/e99f3c9e7bc79b484bf6d475a1185f9615b0b6a3/mojo/public/tools/bindings/generators/cpp_templates/module-shared-internal.h.tmpl
[modify] https://crrev.com/e99f3c9e7bc79b484bf6d475a1185f9615b0b6a3/mojo/public/tools/bindings/generators/cpp_templates/module-shared.h.tmpl
[modify] https://crrev.com/e99f3c9e7bc79b484bf6d475a1185f9615b0b6a3/mojo/public/tools/bindings/generators/cpp_templates/struct_declaration.tmpl
[modify] https://crrev.com/e99f3c9e7bc79b484bf6d475a1185f9615b0b6a3/mojo/public/tools/bindings/generators/cpp_templates/struct_definition.tmpl
[modify] https://crrev.com/e99f3c9e7bc79b484bf6d475a1185f9615b0b6a3/mojo/public/tools/bindings/generators/cpp_templates/union_declaration.tmpl
[modify] https://crrev.com/e99f3c9e7bc79b484bf6d475a1185f9615b0b6a3/mojo/public/tools/bindings/mojom.gni

Project Member

Comment 4 by bugdroid1@chromium.org, May 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a50d914e18c636fb8a37bf622ef8bd8728c9d2b7

commit a50d914e18c636fb8a37bf622ef8bd8728c9d2b7
Author: Max Morin <maxmorin@chromium.org>
Date: Fri May 12 08:35:02 2017

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}
[modify] https://crrev.com/a50d914e18c636fb8a37bf622ef8bd8728c9d2b7/chrome/browser/android/vr_shell/BUILD.gn
[modify] https://crrev.com/a50d914e18c636fb8a37bf622ef8bd8728c9d2b7/content/browser/BUILD.gn
[modify] https://crrev.com/a50d914e18c636fb8a37bf622ef8bd8728c9d2b7/content/common/BUILD.gn
[modify] https://crrev.com/a50d914e18c636fb8a37bf622ef8bd8728c9d2b7/device/vr/BUILD.gn
[modify] https://crrev.com/a50d914e18c636fb8a37bf622ef8bd8728c9d2b7/ipc/BUILD.gn
[modify] https://crrev.com/a50d914e18c636fb8a37bf622ef8bd8728c9d2b7/mojo/public/interfaces/bindings/BUILD.gn
[modify] https://crrev.com/a50d914e18c636fb8a37bf622ef8bd8728c9d2b7/mojo/public/tools/bindings/blink_bindings_configuration.gni
[modify] https://crrev.com/a50d914e18c636fb8a37bf622ef8bd8728c9d2b7/mojo/public/tools/bindings/chromium_bindings_configuration.gni
[delete] https://crrev.com/7e0f9e4cd2906bad799d130889db4cefe32d9d89/mojo/public/tools/bindings/generate_export_header.py
[modify] https://crrev.com/a50d914e18c636fb8a37bf622ef8bd8728c9d2b7/mojo/public/tools/bindings/generators/cpp_templates/module-shared-internal.h.tmpl
[modify] https://crrev.com/a50d914e18c636fb8a37bf622ef8bd8728c9d2b7/mojo/public/tools/bindings/generators/cpp_templates/module-shared.h.tmpl
[modify] https://crrev.com/a50d914e18c636fb8a37bf622ef8bd8728c9d2b7/mojo/public/tools/bindings/generators/cpp_templates/struct_declaration.tmpl
[modify] https://crrev.com/a50d914e18c636fb8a37bf622ef8bd8728c9d2b7/mojo/public/tools/bindings/generators/cpp_templates/struct_definition.tmpl
[modify] https://crrev.com/a50d914e18c636fb8a37bf622ef8bd8728c9d2b7/mojo/public/tools/bindings/generators/cpp_templates/union_declaration.tmpl
[modify] https://crrev.com/a50d914e18c636fb8a37bf622ef8bd8728c9d2b7/mojo/public/tools/bindings/mojom.gni

Project Member

Comment 5 by bugdroid1@chromium.org, May 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a999f951a26f1fece78238836b198999b0050ae6

commit a999f951a26f1fece78238836b198999b0050ae6
Author: Ken Rockot <rockot@chromium.org>
Date: Fri May 12 16:44:02 2017

[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. Furthermore, automatically generated shared
components (when using export_* parameters) need to be unique, so
this allows component_output_prefix to be set on such targets as well.

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: I22e58a9fad78cc1fc40b23067d942082a4b14c0c
Reviewed-on: https://chromium-review.googlesource.com/504707
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Ken Rockot <rockot@chromium.org>
Cr-Commit-Position: refs/heads/master@{#471334}
[modify] https://crrev.com/a999f951a26f1fece78238836b198999b0050ae6/ash/public/interfaces/BUILD.gn
[modify] https://crrev.com/a999f951a26f1fece78238836b198999b0050ae6/chrome/browser/android/vr_shell/BUILD.gn
[modify] https://crrev.com/a999f951a26f1fece78238836b198999b0050ae6/content/browser/BUILD.gn
[modify] https://crrev.com/a999f951a26f1fece78238836b198999b0050ae6/content/common/BUILD.gn
[modify] https://crrev.com/a999f951a26f1fece78238836b198999b0050ae6/device/generic_sensor/public/interfaces/BUILD.gn
[modify] https://crrev.com/a999f951a26f1fece78238836b198999b0050ae6/device/vr/BUILD.gn
[modify] https://crrev.com/a999f951a26f1fece78238836b198999b0050ae6/ipc/BUILD.gn
[modify] https://crrev.com/a999f951a26f1fece78238836b198999b0050ae6/mojo/public/interfaces/bindings/BUILD.gn
[modify] https://crrev.com/a999f951a26f1fece78238836b198999b0050ae6/mojo/public/tools/bindings/blink_bindings_configuration.gni
[modify] https://crrev.com/a999f951a26f1fece78238836b198999b0050ae6/mojo/public/tools/bindings/chromium_bindings_configuration.gni
[add] https://crrev.com/a999f951a26f1fece78238836b198999b0050ae6/mojo/public/tools/bindings/generate_export_header.py
[modify] https://crrev.com/a999f951a26f1fece78238836b198999b0050ae6/mojo/public/tools/bindings/generators/cpp_templates/module-shared-internal.h.tmpl
[modify] https://crrev.com/a999f951a26f1fece78238836b198999b0050ae6/mojo/public/tools/bindings/generators/cpp_templates/module-shared.h.tmpl
[modify] https://crrev.com/a999f951a26f1fece78238836b198999b0050ae6/mojo/public/tools/bindings/generators/cpp_templates/struct_declaration.tmpl
[modify] https://crrev.com/a999f951a26f1fece78238836b198999b0050ae6/mojo/public/tools/bindings/generators/cpp_templates/struct_definition.tmpl
[modify] https://crrev.com/a999f951a26f1fece78238836b198999b0050ae6/mojo/public/tools/bindings/generators/cpp_templates/union_declaration.tmpl
[modify] https://crrev.com/a999f951a26f1fece78238836b198999b0050ae6/mojo/public/tools/bindings/mojom.gni
[modify] https://crrev.com/a999f951a26f1fece78238836b198999b0050ae6/services/resource_coordinator/public/interfaces/BUILD.gn
[modify] https://crrev.com/a999f951a26f1fece78238836b198999b0050ae6/third_party/WebKit/public/BUILD.gn
[modify] https://crrev.com/a999f951a26f1fece78238836b198999b0050ae6/ui/app_list/presenter/BUILD.gn

Project Member

Comment 6 by bugdroid1@chromium.org, May 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bcce6e40e5649f1d5d2485a49c91212e97e3851a

commit bcce6e40e5649f1d5d2485a49c91212e97e3851a
Author: Ken Rockot <rockot@chromium.org>
Date: Fri May 12 20:42:17 2017

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

This reverts commit a999f951a26f1fece78238836b198999b0050ae6.

Reason for revert: Still breaking many tests due to shared libraries missing from isolates.  https://crbug.com/720241 

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. Furthermore, automatically generated shared
> components (when using export_* parameters) need to be unique, so
> this allows component_output_prefix to be set on such targets as well.
> 
> 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: I22e58a9fad78cc1fc40b23067d942082a4b14c0c
> Reviewed-on: https://chromium-review.googlesource.com/504707
> Reviewed-by: Ken Rockot <rockot@chromium.org>
> Commit-Queue: Ken Rockot <rockot@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#471334}

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

Change-Id: I4717fb0f9c8a7f52fc863d0ecfc2450b92ca9c76
Reviewed-on: https://chromium-review.googlesource.com/505093
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Ken Rockot <rockot@chromium.org>
Cr-Commit-Position: refs/heads/master@{#471438}
[modify] https://crrev.com/bcce6e40e5649f1d5d2485a49c91212e97e3851a/ash/public/interfaces/BUILD.gn
[modify] https://crrev.com/bcce6e40e5649f1d5d2485a49c91212e97e3851a/chrome/browser/android/vr_shell/BUILD.gn
[modify] https://crrev.com/bcce6e40e5649f1d5d2485a49c91212e97e3851a/content/browser/BUILD.gn
[modify] https://crrev.com/bcce6e40e5649f1d5d2485a49c91212e97e3851a/content/common/BUILD.gn
[modify] https://crrev.com/bcce6e40e5649f1d5d2485a49c91212e97e3851a/device/generic_sensor/public/interfaces/BUILD.gn
[modify] https://crrev.com/bcce6e40e5649f1d5d2485a49c91212e97e3851a/device/vr/BUILD.gn
[modify] https://crrev.com/bcce6e40e5649f1d5d2485a49c91212e97e3851a/ipc/BUILD.gn
[modify] https://crrev.com/bcce6e40e5649f1d5d2485a49c91212e97e3851a/mojo/public/interfaces/bindings/BUILD.gn
[modify] https://crrev.com/bcce6e40e5649f1d5d2485a49c91212e97e3851a/mojo/public/tools/bindings/blink_bindings_configuration.gni
[modify] https://crrev.com/bcce6e40e5649f1d5d2485a49c91212e97e3851a/mojo/public/tools/bindings/chromium_bindings_configuration.gni
[delete] https://crrev.com/ba2a4a8ddeafe68e5c6f272785119e80c71be0bf/mojo/public/tools/bindings/generate_export_header.py
[modify] https://crrev.com/bcce6e40e5649f1d5d2485a49c91212e97e3851a/mojo/public/tools/bindings/generators/cpp_templates/module-shared-internal.h.tmpl
[modify] https://crrev.com/bcce6e40e5649f1d5d2485a49c91212e97e3851a/mojo/public/tools/bindings/generators/cpp_templates/module-shared.h.tmpl
[modify] https://crrev.com/bcce6e40e5649f1d5d2485a49c91212e97e3851a/mojo/public/tools/bindings/generators/cpp_templates/struct_declaration.tmpl
[modify] https://crrev.com/bcce6e40e5649f1d5d2485a49c91212e97e3851a/mojo/public/tools/bindings/generators/cpp_templates/struct_definition.tmpl
[modify] https://crrev.com/bcce6e40e5649f1d5d2485a49c91212e97e3851a/mojo/public/tools/bindings/generators/cpp_templates/union_declaration.tmpl
[modify] https://crrev.com/bcce6e40e5649f1d5d2485a49c91212e97e3851a/mojo/public/tools/bindings/mojom.gni
[modify] https://crrev.com/bcce6e40e5649f1d5d2485a49c91212e97e3851a/services/resource_coordinator/public/interfaces/BUILD.gn
[modify] https://crrev.com/bcce6e40e5649f1d5d2485a49c91212e97e3851a/third_party/WebKit/public/BUILD.gn
[modify] https://crrev.com/bcce6e40e5649f1d5d2485a49c91212e97e3851a/ui/app_list/presenter/BUILD.gn

Project Member

Comment 7 by bugdroid1@chromium.org, May 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fe0424e7b5377b4ebe5109d3bc2dd910005de7af

commit fe0424e7b5377b4ebe5109d3bc2dd910005de7af
Author: Ken Rockot <rockot@chromium.org>
Date: Sat May 13 06:49:06 2017

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

NOTE: Reland of https://chromium-review.googlesource.com/c/504707/,
with device/vr fixed. The original CL caused device/vr to produce a
totally empty shared library in component builds (previously it would
export only the mojom symbols, which this CL moves to a new component.)
Apparently this doesn't trigger any kind of build error, but Windows fails
to load an executable that has a dependency on the empty DLL. This revised
CL makes the empty device/vr target a source_set rather than a component.

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: I4b1eb19b3dc11c44cc8793773e850f8b8d4906e5
Reviewed-on: https://chromium-review.googlesource.com/505418
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Ken Rockot <rockot@chromium.org>
Cr-Commit-Position: refs/heads/master@{#471574}
[modify] https://crrev.com/fe0424e7b5377b4ebe5109d3bc2dd910005de7af/ash/public/interfaces/BUILD.gn
[modify] https://crrev.com/fe0424e7b5377b4ebe5109d3bc2dd910005de7af/chrome/browser/android/vr_shell/BUILD.gn
[modify] https://crrev.com/fe0424e7b5377b4ebe5109d3bc2dd910005de7af/content/browser/BUILD.gn
[modify] https://crrev.com/fe0424e7b5377b4ebe5109d3bc2dd910005de7af/content/common/BUILD.gn
[modify] https://crrev.com/fe0424e7b5377b4ebe5109d3bc2dd910005de7af/device/generic_sensor/public/interfaces/BUILD.gn
[modify] https://crrev.com/fe0424e7b5377b4ebe5109d3bc2dd910005de7af/device/vr/BUILD.gn
[modify] https://crrev.com/fe0424e7b5377b4ebe5109d3bc2dd910005de7af/ipc/BUILD.gn
[modify] https://crrev.com/fe0424e7b5377b4ebe5109d3bc2dd910005de7af/mojo/public/interfaces/bindings/BUILD.gn
[modify] https://crrev.com/fe0424e7b5377b4ebe5109d3bc2dd910005de7af/mojo/public/tools/bindings/blink_bindings_configuration.gni
[modify] https://crrev.com/fe0424e7b5377b4ebe5109d3bc2dd910005de7af/mojo/public/tools/bindings/chromium_bindings_configuration.gni
[add] https://crrev.com/fe0424e7b5377b4ebe5109d3bc2dd910005de7af/mojo/public/tools/bindings/generate_export_header.py
[modify] https://crrev.com/fe0424e7b5377b4ebe5109d3bc2dd910005de7af/mojo/public/tools/bindings/generators/cpp_templates/module-shared-internal.h.tmpl
[modify] https://crrev.com/fe0424e7b5377b4ebe5109d3bc2dd910005de7af/mojo/public/tools/bindings/generators/cpp_templates/module-shared.h.tmpl
[modify] https://crrev.com/fe0424e7b5377b4ebe5109d3bc2dd910005de7af/mojo/public/tools/bindings/generators/cpp_templates/struct_declaration.tmpl
[modify] https://crrev.com/fe0424e7b5377b4ebe5109d3bc2dd910005de7af/mojo/public/tools/bindings/generators/cpp_templates/struct_definition.tmpl
[modify] https://crrev.com/fe0424e7b5377b4ebe5109d3bc2dd910005de7af/mojo/public/tools/bindings/generators/cpp_templates/union_declaration.tmpl
[modify] https://crrev.com/fe0424e7b5377b4ebe5109d3bc2dd910005de7af/mojo/public/tools/bindings/mojom.gni
[modify] https://crrev.com/fe0424e7b5377b4ebe5109d3bc2dd910005de7af/services/resource_coordinator/public/interfaces/BUILD.gn
[modify] https://crrev.com/fe0424e7b5377b4ebe5109d3bc2dd910005de7af/third_party/WebKit/public/BUILD.gn
[modify] https://crrev.com/fe0424e7b5377b4ebe5109d3bc2dd910005de7af/ui/app_list/presenter/BUILD.gn

Owner: rockot@google.com

Sign in to add a comment