Extract Builder and subclasses to separate module.
[chromium-blink-merge.git] / mojo / mojo_examples.gypi
blob81b0a4fc4ab29e0dcb9503205f3995002696aafe
1 # Copyright 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
6   'targets': [
7     {
8       'target_name': 'mojo_echo_client',
9       'type': 'loadable_module',
10       'dependencies': [
11         'mojo_base.gyp:mojo_application_standalone',
12         'mojo_base.gyp:mojo_cpp_bindings',
13         'mojo_base.gyp:mojo_environment_standalone',
14         'mojo_base.gyp:mojo_utility',
15         'mojo_echo_service_bindings',
16         '<(mojo_system_for_loadable_module)',
17       ],
18       'sources': [
19         'examples/echo/echo_client.cc',
20         'public/cpp/application/lib/mojo_main_standalone.cc',
21       ],
22     },
23     {
24       'target_name': 'package_mojo_echo_client',
25       'variables': {
26         'app_name': 'mojo_echo_client',
27       },
28       'includes': [ 'build/package_app.gypi' ],
29     },
30     {
31       'target_name': 'mojo_echo_service_bindings',
32       'type': 'static_library',
33       'sources': [
34         'examples/echo/echo_service.mojom',
35       ],
36       'dependencies': [
37         'mojo_base.gyp:mojo_cpp_bindings',
38       ],
39       'includes': [ 'public/tools/bindings/mojom_bindings_generator.gypi' ],
40       'export_dependent_settings': [
41         'mojo_base.gyp:mojo_cpp_bindings',
42       ],
43     },
44     {
45       'target_name': 'mojo_echo_service',
46       'type': 'loadable_module',
47       'dependencies': [
48         'mojo_base.gyp:mojo_application_standalone',
49         'mojo_base.gyp:mojo_cpp_bindings',
50         'mojo_base.gyp:mojo_environment_standalone',
51         'mojo_base.gyp:mojo_utility',
52         'mojo_echo_service_bindings',
53         '<(mojo_system_for_loadable_module)',
54       ],
55       'sources': [
56         'examples/echo/echo_service.cc',
57         'public/cpp/application/lib/mojo_main_standalone.cc',
58       ],
59     },
60     {
61       'target_name': 'package_mojo_echo_service',
62       'variables': {
63         'app_name': 'mojo_echo_service',
64       },
65       'includes': [ 'build/package_app.gypi' ],
66     },
67     {
68       'target_name': 'mojo_sample_app',
69       'type': 'loadable_module',
70       'dependencies': [
71         # TODO(darin): we should not be linking against these libraries!
72         '../ui/events/events.gyp:events',
73         '../ui/gfx/gfx.gyp:gfx_geometry',
74         'mojo_base.gyp:mojo_application_standalone',
75         'mojo_base.gyp:mojo_cpp_bindings',
76         'mojo_base.gyp:mojo_environment_standalone',
77         'mojo_base.gyp:mojo_utility',
78         'mojo_geometry_bindings',
79         'mojo_native_viewport_bindings',
80         '<(mojo_gles2_for_loadable_module)',
81         '<(mojo_system_for_loadable_module)',
82       ],
83       'sources': [
84         'examples/sample_app/gles2_client_impl.cc',
85         'examples/sample_app/gles2_client_impl.cc',
86         'examples/sample_app/sample_app.cc',
87         'examples/sample_app/spinning_cube.cc',
88         'examples/sample_app/spinning_cube.h',
89         'public/cpp/application/lib/mojo_main_standalone.cc',
90       ],
91     },
92     {
93       'target_name': 'package_mojo_sample_app',
94       'variables': {
95         'app_name': 'mojo_sample_app',
96       },
97       'includes': [ 'build/package_app.gypi' ],
98     },
99     {
100       'target_name': 'mojo_example_service_bindings',
101       'type': 'static_library',
102       'sources': [
103         'examples/apptest/example_service.mojom',
104       ],
105       'includes': [ 'public/tools/bindings/mojom_bindings_generator.gypi' ],
106       'export_dependent_settings': [
107         'mojo_base.gyp:mojo_cpp_bindings',
108       ],
109       'dependencies': [
110         'mojo_base.gyp:mojo_cpp_bindings',
111       ],
112     },
113     {
114       'target_name': 'mojo_example_service',
115       'type': 'loadable_module',
116       'dependencies': [
117         'mojo_base.gyp:mojo_application_standalone', # For ApplicationDelegate.
118         'mojo_base.gyp:mojo_cpp_bindings',           # For *.mojom.h
119         'mojo_base.gyp:mojo_environment_standalone', # For Environment.
120         'mojo_example_service_bindings',
121         'mojo_base.gyp:mojo_utility',                # For RunLoop.
122         '<(mojo_system_for_loadable_module)',
123       ],
124       'sources': [
125         'examples/apptest/example_service_application.cc',
126         'examples/apptest/example_service_application.h',
127         'examples/apptest/example_service_impl.cc',
128         'examples/apptest/example_service_impl.h',
129         'public/cpp/application/lib/mojo_main_standalone.cc',
130       ],
131     },
132     {
133       'target_name': 'mojo_example_apptests',
134       'type': 'loadable_module',
135       'dependencies': [
136         '../testing/gtest.gyp:gtest',
137         'mojo_base.gyp:mojo_application_standalone', # For ApplicationDelegate.
138         'mojo_base.gyp:mojo_environment_standalone', # For Environment.
139         'mojo_example_service',
140         'mojo_example_service_bindings',
141         'mojo_base.gyp:mojo_utility',                # For RunLoop.
142         '<(mojo_system_for_loadable_module)',
143       ],
144       'sources': [
145         'examples/apptest/example_apptest.cc',
146         'examples/apptest/example_client_application.cc',
147         'examples/apptest/example_client_application.h',
148         'examples/apptest/example_client_impl.cc',
149         'examples/apptest/example_client_impl.h',
150       ],
151     },
152     {
153       'target_name': 'package_mojo_example_apptests',
154       'variables': {
155         'app_name': 'mojo_example_apptests',
156       },
157       'includes': [ 'build/package_app.gypi' ],
158     },
159     {
160       'target_name': 'mojo_compositor_app',
161       'type': 'loadable_module',
162       'dependencies': [
163         '../base/base.gyp:base',
164         '../cc/cc.gyp:cc',
165         '../ui/gfx/gfx.gyp:gfx',
166         '../ui/gfx/gfx.gyp:gfx_geometry',
167         'mojo_base.gyp:mojo_application_chromium',
168         'mojo_base.gyp:mojo_common_lib',
169         'mojo_base.gyp:mojo_environment_chromium',
170         'mojo_cc_support',
171         'mojo_geometry_bindings',
172         'mojo_geometry_lib',
173         'mojo_native_viewport_bindings',
174         '<(mojo_gles2_for_loadable_module)',
175         '<(mojo_system_for_loadable_module)',
176       ],
177       'sources': [
178         'examples/compositor_app/compositor_app.cc',
179         'examples/compositor_app/compositor_host.cc',
180         'examples/compositor_app/compositor_host.h',
181         'public/cpp/application/lib/mojo_main_chromium.cc',
182       ],
183     },
184     {
185       'target_name': 'package_mojo_compositor_app',
186       'variables': {
187         'app_name': 'mojo_compositor_app',
188       },
189       'includes': [ 'build/package_app.gypi' ],
190     },
191     {
192       'target_name': 'mojo_wget',
193       'type': 'loadable_module',
194       'dependencies': [
195         'mojo_base.gyp:mojo_application_standalone',
196         'mojo_base.gyp:mojo_cpp_bindings',
197         'mojo_base.gyp:mojo_environment_standalone',
198         'mojo_base.gyp:mojo_utility',
199         'mojo_network_bindings',
200         '<(mojo_system_for_loadable_module)',
201       ],
202       'sources': [
203         'examples/wget/wget.cc',
204         'public/cpp/application/lib/mojo_main_standalone.cc',
205       ],
206     },
207     {
208       'target_name': 'mojo_content_handler_demo',
209       'type': 'loadable_module',
210       'dependencies': [
211         'mojo_base.gyp:mojo_application_standalone',
212         'mojo_base.gyp:mojo_cpp_bindings',
213         'mojo_base.gyp:mojo_environment_standalone',
214         'mojo_base.gyp:mojo_utility',
215         'mojo_content_handler_bindings',
216         '<(mojo_system_for_loadable_module)',
217       ],
218       'sources': [
219         'examples/content_handler_demo/content_handler_demo.cc',
220         'public/cpp/application/lib/mojo_main_standalone.cc',
221       ],
222     },
223     {
224       'target_name': 'package_mojo_wget',
225       'variables': {
226         'app_name': 'mojo_wget',
227       },
228       'includes': [ 'build/package_app.gypi' ],
229     },
230     {
231       'target_name': 'mojo_media_viewer_bindings',
232       'type': 'static_library',
233       'sources': [
234         'examples/media_viewer/media_viewer.mojom',
235       ],
236       'includes': [ 'public/tools/bindings/mojom_bindings_generator.gypi' ],
237       'export_dependent_settings': [
238         'mojo_base.gyp:mojo_cpp_bindings',
239       ],
240       'dependencies': [
241         'mojo_base.gyp:mojo_cpp_bindings',
242       ],
243     },
244     {
245       'target_name': 'mojo_png_viewer',
246       'type': 'loadable_module',
247       'dependencies': [
248         '../skia/skia.gyp:skia',
249         '../ui/gfx/gfx.gyp:gfx',
250         'mojo_base.gyp:mojo_application_chromium',
251         'mojo_base.gyp:mojo_cpp_bindings',
252         'mojo_base.gyp:mojo_environment_chromium',
253         'mojo_base.gyp:mojo_utility',
254         'mojo_media_viewer_bindings',
255         'mojo_navigation_bindings',
256         'mojo_network_bindings',
257         'mojo_launcher_bindings',
258         'mojo_view_manager_lib',
259         '<(mojo_system_for_loadable_module)',
260       ],
261       'sources': [
262         'examples/png_viewer/png_viewer.cc',
263         'public/cpp/application/lib/mojo_main_chromium.cc',
264       ],
265     },
266     {
267       'target_name': 'mojo_pepper_container_app',
268       'type': 'loadable_module',
269       'dependencies': [
270         '../base/base.gyp:base',
271         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
272         '../gpu/gpu.gyp:command_buffer_common',
273         '../ppapi/ppapi.gyp:ppapi_c',
274         '../ppapi/ppapi_internal.gyp:ppapi_example_gles2_spinning_cube',
275         '../ui/events/events.gyp:events_base',
276         'mojo_base.gyp:mojo_application_chromium',
277         'mojo_base.gyp:mojo_common_lib',
278         'mojo_base.gyp:mojo_environment_chromium',
279         'mojo_geometry_bindings',
280         'mojo_native_viewport_bindings',
281         '<(mojo_gles2_for_loadable_module)',
282         '<(mojo_system_for_loadable_module)',
283       ],
284       'defines': [
285         # We don't really want to export. We could change how
286         # ppapi_{shared,thunk}_export.h are defined to avoid this.
287         'PPAPI_SHARED_IMPLEMENTATION',
288         'PPAPI_THUNK_IMPLEMENTATION',
289       ],
290       'sources': [
291         # Source files from ppapi/.
292         # An alternative is to depend on
293         # '../ppapi/ppapi_internal.gyp:ppapi_shared', but that target includes
294         # a lot of things that we don't need.
295         # TODO(yzshen): Consider extracting these files into a separate target
296         # which mojo_pepper_container_app and ppapi_shared both depend on.
297         '../ppapi/shared_impl/api_id.h',
298         '../ppapi/shared_impl/callback_tracker.cc',
299         '../ppapi/shared_impl/callback_tracker.h',
300         '../ppapi/shared_impl/host_resource.cc',
301         '../ppapi/shared_impl/host_resource.h',
302         '../ppapi/shared_impl/id_assignment.cc',
303         '../ppapi/shared_impl/id_assignment.h',
304         '../ppapi/shared_impl/ppapi_globals.cc',
305         '../ppapi/shared_impl/ppapi_globals.h',
306         '../ppapi/shared_impl/ppapi_shared_export.h',
307         '../ppapi/shared_impl/ppb_message_loop_shared.cc',
308         '../ppapi/shared_impl/ppb_message_loop_shared.h',
309         '../ppapi/shared_impl/ppb_view_shared.cc',
310         '../ppapi/shared_impl/ppb_view_shared.h',
311         '../ppapi/shared_impl/proxy_lock.cc',
312         '../ppapi/shared_impl/proxy_lock.h',
313         '../ppapi/shared_impl/resource.cc',
314         '../ppapi/shared_impl/resource.h',
315         '../ppapi/shared_impl/resource_tracker.cc',
316         '../ppapi/shared_impl/resource_tracker.h',
317         '../ppapi/shared_impl/scoped_pp_resource.cc',
318         '../ppapi/shared_impl/scoped_pp_resource.h',
319         '../ppapi/shared_impl/singleton_resource_id.h',
320         '../ppapi/shared_impl/tracked_callback.cc',
321         '../ppapi/shared_impl/tracked_callback.h',
322         '../ppapi/thunk/enter.cc',
323         '../ppapi/thunk/enter.h',
324         '../ppapi/thunk/interfaces_ppb_private.h',
325         '../ppapi/thunk/interfaces_ppb_private_flash.h',
326         '../ppapi/thunk/interfaces_ppb_private_no_permissions.h',
327         '../ppapi/thunk/interfaces_ppb_public_dev.h',
328         '../ppapi/thunk/interfaces_ppb_public_dev_channel.h',
329         '../ppapi/thunk/interfaces_ppb_public_stable.h',
330         '../ppapi/thunk/interfaces_preamble.h',
331         '../ppapi/thunk/ppapi_thunk_export.h',
332         '../ppapi/thunk/ppb_graphics_3d_api.h',
333         '../ppapi/thunk/ppb_graphics_3d_thunk.cc',
334         '../ppapi/thunk/ppb_instance_api.h',
335         '../ppapi/thunk/ppb_instance_thunk.cc',
336         '../ppapi/thunk/ppb_message_loop_api.h',
337         '../ppapi/thunk/ppb_view_api.h',
338         '../ppapi/thunk/ppb_view_thunk.cc',
339         '../ppapi/thunk/resource_creation_api.h',
340         '../ppapi/thunk/thunk.h',
342         'examples/pepper_container_app/graphics_3d_resource.cc',
343         'examples/pepper_container_app/graphics_3d_resource.h',
344         'examples/pepper_container_app/interface_list.cc',
345         'examples/pepper_container_app/interface_list.h',
346         'examples/pepper_container_app/mojo_ppapi_globals.cc',
347         'examples/pepper_container_app/mojo_ppapi_globals.h',
348         'examples/pepper_container_app/pepper_container_app.cc',
349         'examples/pepper_container_app/plugin_instance.cc',
350         'examples/pepper_container_app/plugin_instance.h',
351         'examples/pepper_container_app/plugin_module.cc',
352         'examples/pepper_container_app/plugin_module.h',
353         'examples/pepper_container_app/ppb_core_thunk.cc',
354         'examples/pepper_container_app/ppb_opengles2_thunk.cc',
355         'examples/pepper_container_app/resource_creation_impl.cc',
356         'examples/pepper_container_app/resource_creation_impl.h',
357         'examples/pepper_container_app/thunk.h',
358         'examples/pepper_container_app/type_converters.h',
359         'public/cpp/application/lib/mojo_main_chromium.cc',
360       ],
361     },
362     {
363       'target_name': 'mojo_surfaces_app',
364       'type': 'loadable_module',
365       'dependencies': [
366         '../base/base.gyp:base',
367         '../cc/cc.gyp:cc',
368         '../cc/cc.gyp:cc_surfaces',
369         '../skia/skia.gyp:skia',
370         '../ui/gfx/gfx.gyp:gfx',
371         '../ui/gfx/gfx.gyp:gfx_geometry',
372         'mojo_base.gyp:mojo_application_chromium',
373         'mojo_base.gyp:mojo_common_lib',
374         'mojo_base.gyp:mojo_environment_chromium',
375         'mojo_geometry_bindings',
376         'mojo_geometry_lib',
377         'mojo_native_viewport_bindings',
378         'mojo_surfaces_bindings',
379         'mojo_surfaces_app_bindings',
380         'mojo_surfaces_lib',
381         '<(mojo_system_for_loadable_module)',
382       ],
383       'sources': [
384         'examples/surfaces_app/embedder.cc',
385         'examples/surfaces_app/embedder.h',
386         'examples/surfaces_app/surfaces_app.cc',
387         'examples/surfaces_app/surfaces_util.cc',
388         'examples/surfaces_app/surfaces_util.h',
389         'public/cpp/application/lib/mojo_main_chromium.cc',
390       ],
391     },
392     {
393       'target_name': 'mojo_surfaces_app_bindings',
394       'type': 'static_library',
395       'sources': [
396         'examples/surfaces_app/child.mojom',
397       ],
398       'includes': [ 'public/tools/bindings/mojom_bindings_generator.gypi' ],
399       'export_dependent_settings': [
400         'mojo_base.gyp:mojo_cpp_bindings',
401       ],
402       'dependencies': [
403         'mojo_base.gyp:mojo_cpp_bindings',
404         'mojo_geometry_bindings',
405         'mojo_surfaces_bindings',
406       ],
407     },
408     {
409       'target_name': 'package_mojo_surfaces_app',
410       'variables': {
411         'app_name': 'mojo_surfaces_app',
412       },
413       'includes': [ 'build/package_app.gypi' ],
414     },
415     {
416       'target_name': 'mojo_surfaces_child_app',
417       'type': 'loadable_module',
418       'dependencies': [
419         '../base/base.gyp:base',
420         '../cc/cc.gyp:cc',
421         '../cc/cc.gyp:cc_surfaces',
422         '../skia/skia.gyp:skia',
423         '../ui/gfx/gfx.gyp:gfx',
424         '../ui/gfx/gfx.gyp:gfx_geometry',
425         'mojo_base.gyp:mojo_application_chromium',
426         'mojo_base.gyp:mojo_common_lib',
427         'mojo_base.gyp:mojo_environment_chromium',
428         'mojo_geometry_bindings',
429         'mojo_geometry_lib',
430         'mojo_surfaces_app_bindings',
431         'mojo_surfaces_bindings',
432         'mojo_surfaces_lib',
433         '<(mojo_system_for_loadable_module)',
434       ],
435       'sources': [
436         'examples/surfaces_app/child_app.cc',
437         'examples/surfaces_app/child_impl.cc',
438         'examples/surfaces_app/child_impl.h',
439         'examples/surfaces_app/surfaces_util.cc',
440         'examples/surfaces_app/surfaces_util.h',
441         'public/cpp/application/lib/mojo_main_chromium.cc',
442       ],
443     },
444   ],
445   'conditions': [
446     ['use_aura==1', {
447       'targets': [
448         {
449           'target_name': 'mojo_aura_demo',
450           'type': 'loadable_module',
451           'dependencies': [
452             '../base/base.gyp:base',
453             '../cc/cc.gyp:cc',
454             '../ui/aura/aura.gyp:aura',
455             '../ui/base/ui_base.gyp:ui_base',
456             '../ui/compositor/compositor.gyp:compositor',
457             '../ui/gfx/gfx.gyp:gfx',
458             '../ui/gfx/gfx.gyp:gfx_geometry',
459             'mojo_base.gyp:mojo_application_chromium',
460             'mojo_base.gyp:mojo_common_lib',
461             'mojo_base.gyp:mojo_environment_chromium',
462             'mojo_aura_support',
463             'mojo_geometry_bindings',
464             'mojo_geometry_lib',
465             'mojo_view_manager_lib',
466             '<(mojo_system_for_loadable_module)',
467           ],
468           'sources': [
469             'examples/aura_demo/aura_demo.cc',
470             'public/cpp/application/lib/mojo_main_chromium.cc',
471           ],
472         },
473         {
474           'target_name': 'mojo_aura_demo_init',
475           'type': 'loadable_module',
476           'dependencies': [
477             '../base/base.gyp:base',
478             'mojo_base.gyp:mojo_application_chromium',
479             'mojo_base.gyp:mojo_environment_chromium',
480             'mojo_view_manager_bindings',
481             '<(mojo_system_for_loadable_module)',
482           ],
483           'sources': [
484             'examples/aura_demo/view_manager_init.cc',
485             'public/cpp/application/lib/mojo_main_chromium.cc',
486           ],
487         },
488         {
489           'target_name': 'mojo_browser',
490           'type': 'loadable_module',
491           'dependencies': [
492             '../base/base.gyp:base',
493             '../cc/cc.gyp:cc',
494             '../third_party/icu/icu.gyp:icui18n',
495             '../third_party/icu/icu.gyp:icuuc',
496             '../ui/aura/aura.gyp:aura',
497             '../ui/base/ui_base.gyp:ui_base',
498             '../ui/compositor/compositor.gyp:compositor',
499             '../ui/gfx/gfx.gyp:gfx',
500             '../ui/gfx/gfx.gyp:gfx_geometry',
501             '../ui/resources/ui_resources.gyp:ui_resources',
502             '../ui/resources/ui_resources.gyp:ui_test_pak',
503             '../ui/views/views.gyp:views',
504             '../url/url.gyp:url_lib',
505             'mojo_base.gyp:mojo_application_chromium',
506             'mojo_base.gyp:mojo_common_lib',
507             'mojo_base.gyp:mojo_environment_chromium',
508             'mojo_aura_support',
509             'mojo_geometry_bindings',
510             'mojo_geometry_lib',
511             'mojo_input_events_lib',
512             'mojo_navigation_bindings',
513             'mojo_views_support',
514             'mojo_view_manager_bindings',
515             'mojo_view_manager_lib',
516             'mojo_window_manager_bindings',
517             '<(mojo_system_for_loadable_module)',
518           ],
519           'sources': [
520             'examples/browser/browser.cc',
521             'public/cpp/application/lib/mojo_main_chromium.cc',
522           ],
523         },
524         {
525           'target_name': 'package_mojo_aura_demo',
526           'variables': {
527             'app_name': 'mojo_aura_demo',
528           },
529           'includes': [ 'build/package_app.gypi' ],
530         },
531         {
532           'target_name': 'mojo_demo_launcher',
533           'type': 'loadable_module',
534           'dependencies': [
535             '../base/base.gyp:base',
536             '../skia/skia.gyp:skia',
537             '../ui/gfx/gfx.gyp:gfx',
538             '../ui/gfx/gfx.gyp:gfx_geometry',
539             '../ui/gl/gl.gyp:gl',
540             'mojo_base.gyp:mojo_application_chromium',
541             'mojo_base.gyp:mojo_cpp_bindings',
542             'mojo_base.gyp:mojo_environment_chromium',
543             'mojo_base.gyp:mojo_utility',
544             'mojo_geometry_bindings',
545             'mojo_view_manager_bindings',
546             '<(mojo_gles2_for_loadable_module)',
547             '<(mojo_system_for_loadable_module)',
548           ],
549           'sources': [
550             'examples/demo_launcher/demo_launcher.cc',
551             'public/cpp/application/lib/mojo_main_chromium.cc',
552           ],
553         },
554         {
555           'target_name': 'mojo_keyboard',
556           'type': 'loadable_module',
557           'dependencies': [
558             '../base/base.gyp:base',
559             '../cc/cc.gyp:cc',
560             '../third_party/icu/icu.gyp:icui18n',
561             '../third_party/icu/icu.gyp:icuuc',
562             '../ui/aura/aura.gyp:aura',
563             '../ui/base/ui_base.gyp:ui_base',
564             '../ui/compositor/compositor.gyp:compositor',
565             '../ui/gfx/gfx.gyp:gfx',
566             '../ui/gfx/gfx.gyp:gfx_geometry',
567             '../ui/resources/ui_resources.gyp:ui_resources',
568             '../ui/resources/ui_resources.gyp:ui_test_pak',
569             '../ui/views/views.gyp:views',
570             '../url/url.gyp:url_lib',
571             'mojo_base.gyp:mojo_application_chromium',
572             'mojo_base.gyp:mojo_common_lib',
573             'mojo_base.gyp:mojo_environment_chromium',
574             'mojo_aura_support',
575             'mojo_geometry_bindings',
576             'mojo_geometry_lib',
577             'mojo_input_events_lib',
578             'mojo_keyboard_bindings',
579             'mojo_navigation_bindings',
580             'mojo_views_support',
581             'mojo_view_manager_bindings',
582             'mojo_view_manager_lib',
583             '<(mojo_system_for_loadable_module)',
584           ],
585           'sources': [
586             'examples/keyboard/keyboard_delegate.h',
587             'examples/keyboard/keyboard_view.cc',
588             'examples/keyboard/keyboard_view.h',
589             'examples/keyboard/keyboard.cc',
590             'examples/keyboard/keys.cc',
591             'examples/keyboard/keys.h',
592             'public/cpp/application/lib/mojo_main_chromium.cc',
593           ],
594         },
595         {
596           'target_name': 'mojo_keyboard_bindings',
597           'type': 'static_library',
598           'sources': [
599             'examples/keyboard/keyboard.mojom',
600           ],
601           'includes': [ 'public/tools/bindings/mojom_bindings_generator.gypi' ],
602           'export_dependent_settings': [
603             'mojo_base.gyp:mojo_cpp_bindings',
604           ],
605           'dependencies': [
606             'mojo_base.gyp:mojo_cpp_bindings',
607           ],
608         },
609         {
610           'target_name': 'mojo_window_manager_bindings',
611           'type': 'static_library',
612           'sources': [
613             'examples/window_manager/window_manager.mojom',
614           ],
615           'dependencies': [
616             'mojo_base.gyp:mojo_cpp_bindings',
617             'mojo_geometry_bindings',
618           ],
619           'includes': [ 'public/tools/bindings/mojom_bindings_generator.gypi' ],
620           'export_dependent_settings': [
621             'mojo_base.gyp:mojo_cpp_bindings',
622           ],
623         },
624         {
625           'target_name': 'mojo_window_manager',
626           'type': 'loadable_module',
627           'dependencies': [
628             '../base/base.gyp:base',
629             '../ui/aura/aura.gyp:aura',
630             '../ui/base/ui_base.gyp:ui_base',
631             '../ui/gfx/gfx.gyp:gfx',
632             '../ui/gfx/gfx.gyp:gfx_geometry',
633             '../ui/gl/gl.gyp:gl',
634             '../ui/resources/ui_resources.gyp:ui_resources',
635             '../ui/resources/ui_resources.gyp:ui_test_pak',
636             '../ui/views/views.gyp:views',
637             'mojo_base.gyp:mojo_application_chromium',
638             'mojo_base.gyp:mojo_cpp_bindings',
639             'mojo_base.gyp:mojo_utility',
640             'mojo_base.gyp:mojo_environment_chromium',
641             'mojo_aura_support',
642             'mojo_core_window_manager_lib',
643             'mojo_geometry_bindings',
644             'mojo_geometry_lib',
645             'mojo_input_events_lib',
646             'mojo_keyboard_bindings',
647             'mojo_launcher_bindings',
648             'mojo_navigation_bindings',
649             'mojo_view_manager_lib',
650             'mojo_views_support',
651             'mojo_window_manager_bindings',
652             '<(mojo_gles2_for_loadable_module)',
653             '<(mojo_system_for_loadable_module)',
654           ],
655           'sources': [
656             'examples/window_manager/debug_panel.h',
657             'examples/window_manager/debug_panel.cc',
658             'examples/window_manager/window_manager.cc',
659             'public/cpp/application/lib/mojo_main_chromium.cc',
660           ],
661         },
662         {
663           'target_name': 'mojo_embedded_app',
664           'type': 'loadable_module',
665           'dependencies': [
666             '../base/base.gyp:base',
667             '../ui/gfx/gfx.gyp:gfx_geometry',
668             '../ui/gl/gl.gyp:gl',
669             '../url/url.gyp:url_lib',
670             'mojo_base.gyp:mojo_application_chromium',
671             'mojo_base.gyp:mojo_cpp_bindings',
672             'mojo_base.gyp:mojo_environment_chromium',
673             'mojo_base.gyp:mojo_utility',
674             'mojo_geometry_bindings',
675             'mojo_navigation_bindings',
676             'mojo_view_manager_lib',
677             'mojo_window_manager_bindings',
678             '<(mojo_gles2_for_loadable_module)',
679             '<(mojo_system_for_loadable_module)',
680           ],
681           'sources': [
682             'examples/embedded_app/embedded_app.cc',
683             'public/cpp/application/lib/mojo_main_chromium.cc',
684           ],
685         },
686         {
687           'target_name': 'mojo_nesting_app',
688           'type': 'loadable_module',
689           'dependencies': [
690             '../base/base.gyp:base',
691             '../ui/gfx/gfx.gyp:gfx_geometry',
692             '../ui/gl/gl.gyp:gl',
693             '../url/url.gyp:url_lib',
694             'mojo_base.gyp:mojo_application_chromium',
695             'mojo_base.gyp:mojo_cpp_bindings',
696             'mojo_base.gyp:mojo_environment_chromium',
697             'mojo_base.gyp:mojo_utility',
698             'mojo_geometry_bindings',
699             'mojo_navigation_bindings',
700             'mojo_view_manager_lib',
701             'mojo_window_manager_bindings',
702             '<(mojo_gles2_for_loadable_module)',
703             '<(mojo_system_for_loadable_module)',
704           ],
705           'sources': [
706             'examples/nesting_app/nesting_app.cc',
707             'public/cpp/application/lib/mojo_main_chromium.cc',
708           ],
709         },
710         {
711           'target_name': 'mojo_media_viewer',
712           'type': 'loadable_module',
713           'dependencies': [
714             '../base/base.gyp:base',
715             '../skia/skia.gyp:skia',
716             '../ui/gfx/gfx.gyp:gfx_geometry',
717             '../ui/views/views.gyp:views',
718             'mojo_base.gyp:mojo_application_chromium',
719             'mojo_base.gyp:mojo_environment_chromium',
720             'mojo_input_events_lib',
721             'mojo_media_viewer_bindings',
722             'mojo_navigation_bindings',
723             'mojo_views_support',
724             'mojo_view_manager_bindings',
725             'mojo_view_manager_lib',
726             '<(mojo_system_for_loadable_module)',
727           ],
728           'sources': [
729             'examples/media_viewer/media_viewer.cc',
730             'public/cpp/application/lib/mojo_main_chromium.cc',
731           ],
732         },
733         {
734           'target_name': 'mojo_wm_flow_wm',
735           'type': 'loadable_module',
736           'dependencies': [
737             '../base/base.gyp:base',
738             'mojo_base.gyp:mojo_application_chromium',
739             'mojo_base.gyp:mojo_environment_chromium',
740             'mojo_core_window_manager_lib',
741             'mojo_view_manager_lib',
742             '<(mojo_system_for_loadable_module)',
743           ],
744           'sources': [
745             'examples/wm_flow/wm/wm.cc',
746             'public/cpp/application/lib/mojo_main_chromium.cc',
747           ],
748         },
749         {
750           'target_name': 'mojo_wm_flow_init',
751           'type': 'loadable_module',
752           'dependencies': [
753             '../base/base.gyp:base',
754             'mojo_base.gyp:mojo_application_chromium',
755             'mojo_base.gyp:mojo_environment_chromium',
756             'mojo_view_manager_bindings',
757             '<(mojo_system_for_loadable_module)',
758           ],
759           'sources': [
760             'examples/wm_flow/init/init.cc',
761             'public/cpp/application/lib/mojo_main_chromium.cc',
762           ],
763         },
764         {
765           'target_name': 'mojo_wm_flow_embedder_bindings',
766           'type': 'static_library',
767           'sources': [
768             'examples/wm_flow/app/embedder.mojom',
769           ],
770           'dependencies': [
771             'mojo_base.gyp:mojo_cpp_bindings',
772           ],
773           'includes': [ 'public/tools/bindings/mojom_bindings_generator.gypi' ],
774           'export_dependent_settings': [
775             'mojo_base.gyp:mojo_cpp_bindings',
776           ],
777         },
778         {
779           'target_name': 'mojo_wm_flow_embeddee_bindings',
780           'type': 'static_library',
781           'sources': [
782             'examples/wm_flow/embedded/embeddee.mojom',
783           ],
784           'dependencies': [
785             'mojo_base.gyp:mojo_cpp_bindings',
786           ],
787           'includes': [ 'public/tools/bindings/mojom_bindings_generator.gypi' ],
788           'export_dependent_settings': [
789             'mojo_base.gyp:mojo_cpp_bindings',
790           ],
791         },
792         {
793           'target_name': 'mojo_wm_flow_app',
794           'type': 'loadable_module',
795           'dependencies': [
796             '../base/base.gyp:base',
797             'mojo_base.gyp:mojo_application_chromium',
798             'mojo_base.gyp:mojo_environment_chromium',
799             'mojo_core_window_manager_bindings',
800             'mojo_view_manager_lib',
801             'mojo_wm_flow_embeddee_bindings',
802             'mojo_wm_flow_embedder_bindings',
803             '<(mojo_system_for_loadable_module)',
804           ],
805           'sources': [
806             'examples/wm_flow/app/app.cc',
807             'public/cpp/application/lib/mojo_main_chromium.cc',
808           ],
809         },
810         {
811           'target_name': 'mojo_wm_flow_embedded',
812           'type': 'loadable_module',
813           'dependencies': [
814             '../base/base.gyp:base',
815             'mojo_base.gyp:mojo_application_chromium',
816             'mojo_base.gyp:mojo_environment_chromium',
817             'mojo_core_window_manager_bindings',
818             'mojo_view_manager_lib',
819             'mojo_wm_flow_embeddee_bindings',
820             'mojo_wm_flow_embedder_bindings',
821             '<(mojo_system_for_loadable_module)',
822           ],
823           'sources': [
824             'examples/wm_flow/embedded/embedded.cc',
825             'public/cpp/application/lib/mojo_main_chromium.cc',
826           ],
827         },
828       ],
829     }],
830     ['OS=="linux"', {
831       'targets': [
832         {
833           'target_name': 'mojo_dbus_echo',
834           'type': 'loadable_module',
835           'dependencies': [
836             '../base/base.gyp:base',
837             'mojo_base.gyp:mojo_application_standalone',
838             'mojo_base.gyp:mojo_cpp_bindings',
839             'mojo_base.gyp:mojo_environment_standalone',
840             'mojo_base.gyp:mojo_utility',
841             'mojo_echo_bindings',
842             '<(mojo_system_for_loadable_module)',
843           ],
844           'sources': [
845             'examples/dbus_echo/dbus_echo_app.cc',
846             'public/cpp/application/lib/mojo_main_standalone.cc',
847           ],
848         },
849       ],
850     }],
851   ],