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
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
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
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
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
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
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
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
Comment 1 by bugdroid1@chromium.org
, May 10 2017