Fix IPC fuzzer build.
[chromium-blink-merge.git] / mojo / mojo.gyp
blob30ffcf2500af12e9b0395187109ae4c5e77621c7
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   'target_defaults': {
7     'conditions': [
8       ['mojo_shell_debug_url != ""', {
9         'defines': [
10           'MOJO_SHELL_DEBUG=1',
11           'MOJO_SHELL_DEBUG_URL="<(mojo_shell_debug_url)"',
12          ],
13       }],
14     ],
15   },
16   'includes': [
17     'mojo_apps.gypi',
18     'mojo_examples.gypi',
19     'mojo_services.gypi',
20     'mojo_variables.gypi',
21   ],
22   'targets': [
23     {
24       # GN version: //mojo
25       'target_name': 'mojo',
26       'type': 'none',
27       'dependencies': [
28         'mojo_application_manager',
29         'mojo_application_manager_unittests',
30         'mojo_apps_js_unittests',
31         'mojo_base.gyp:mojo_base',
32         'mojo_clipboard',
33         'mojo_clipboard_unittests',
34         'mojo_compositor_app',
35         'mojo_content_handler_demo',
36         'mojo_echo_client',
37         'mojo_echo_service',
38         'mojo_example_apptests',
39         'mojo_example_service',
40         'mojo_geometry_lib',
41         'mojo_html_viewer',
42         'mojo_js_content_handler',
43         'mojo_js_standalone',
44         'mojo_js_unittests',
45         'mojo_native_viewport_service',
46         'mojo_network_service',
47         'mojo_pepper_container_app',
48         'mojo_png_viewer',
49         'mojo_sample_app',
50         'mojo_shell',
51         'mojo_shell_lib',
52         'mojo_shell_tests',
53         'mojo_surfaces_app',
54         'mojo_surfaces_app',
55         'mojo_surfaces_child_app',
56         'mojo_surfaces_child_gl_app',
57         'mojo_surfaces_lib',
58         'mojo_surfaces_lib_unittests',
59         'mojo_surfaces_service',
60         'mojo_test_app',
61         'mojo_test_request_tracker_app',
62         'mojo_view_manager_lib',
63         'mojo_view_manager_lib_unittests',
64         'mojo_wget',
65       ],
66       'conditions': [
67         ['use_aura==1', {
68           'dependencies': [
69             'mojo_aura_demo',
70             'mojo_aura_demo_init',
71             'mojo_browser',
72             'mojo_core_window_manager',
73             'mojo_core_window_manager_unittests',
74             'mojo_demo_launcher',
75             'mojo_embedded_app',
76             'mojo_keyboard',
77             'mojo_media_viewer',
78             'mojo_nesting_app',
79             'mojo_window_manager',
80             'mojo_wm_flow_app',
81             'mojo_wm_flow_embedded',
82             'mojo_wm_flow_init',
83             'mojo_wm_flow_wm',
84             'mojo_view_manager',
85             'mojo_view_manager_unittests',
86           ],
87         }],
88         ['OS == "linux"', {
89           'dependencies': [
90             'mojo_external_application_tests',
91           ],
92         }],
93         ['component != "shared_library" and OS == "linux"', {
94           'dependencies': [
95             'mojo_python_bindings',
96             'mojo_python_embedder',
97             'mojo_python_system',
98             'mojo_python',
99           ],
100         }],
101       ]
102     },
103     {
104       # GN version: //mojo/shell:external_service_bindings
105       'target_name': 'mojo_external_service_bindings',
106       'type': 'static_library',
107       'sources': [
108         'shell/external_service.mojom',
109       ],
110       'includes': [ 'public/tools/bindings/mojom_bindings_generator.gypi' ],
111       'export_dependent_settings': [
112         'mojo_base.gyp:mojo_cpp_bindings',
113       ],
114       'dependencies': [
115         'mojo_base.gyp:mojo_cpp_bindings',
116       ],
117     },
118     {
119       # GN version: //mojo/spy
120       'target_name': 'mojo_spy',
121       'type': 'static_library',
122       'dependencies': [
123         '../base/base.gyp:base',
124         '../net/net.gyp:http_server',
125         '../url/url.gyp:url_lib',
126         'mojo_application_manager',
127       ],
128       'variables': {
129         'mojom_base_output_dir': 'mojo',
130       },
131       'includes': [ 'public/tools/bindings/mojom_bindings_generator.gypi' ],
132       'sources': [
133         'spy/public/spy.mojom',
134         'spy/common.h',
135         'spy/spy.cc',
136         'spy/spy.h',
137         'spy/spy_server_impl.h',
138         'spy/spy_server_impl.cc',
139         'spy/websocket_server.cc',
140         'spy/websocket_server.h',
141       ],
142     },
143     {
144       # GN version: //mojo/shell:lib
145       'target_name': 'mojo_shell_lib',
146       'type': 'static_library',
147       'dependencies': [
148         '../base/base.gyp:base',
149         '../base/base.gyp:base_static',
150         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
151         'mojo_application_manager',
152         'mojo_base.gyp:mojo_application_bindings',
153         'mojo_base.gyp:mojo_common_lib',
154         'mojo_base.gyp:mojo_gles2_impl',
155         'mojo_base.gyp:mojo_system_impl',
156         'mojo_base.gyp:mojo_application_chromium',
157         'mojo_external_service_bindings',
158         'mojo_network_bindings',
159         'mojo_spy',
160       ],
161       'includes': [ 'public/tools/bindings/mojom_bindings_generator.gypi' ],
162       'sources': [
163         'shell/app_child_process.cc',
164         'shell/app_child_process.h',
165         'shell/app_child_process.mojom',
166         'shell/app_child_process_host.cc',
167         'shell/app_child_process_host.h',
168         'shell/child_process.cc',
169         'shell/child_process.h',
170         'shell/child_process_host.cc',
171         'shell/child_process_host.h',
172         'shell/context.cc',
173         'shell/context.h',
174         'shell/dynamic_application_loader.cc',
175         'shell/dynamic_application_loader.h',
176         'shell/dynamic_service_runner.h',
177         'shell/external_application_listener_posix.cc',
178         'shell/external_application_listener_win.cc',
179         'shell/external_application_listener.h',
180         'shell/external_application_registrar.mojom',
181         'shell/incoming_connection_listener_posix.cc',
182         'shell/incoming_connection_listener_posix.h',
183         'shell/init.cc',
184         'shell/init.h',
185         'shell/in_process_dynamic_service_runner.cc',
186         'shell/in_process_dynamic_service_runner.h',
187         'shell/mojo_url_resolver.cc',
188         'shell/mojo_url_resolver.h',
189         'shell/out_of_process_dynamic_service_runner.cc',
190         'shell/out_of_process_dynamic_service_runner.h',
191         'shell/switches.cc',
192         'shell/switches.h',
193         'shell/task_runners.cc',
194         'shell/task_runners.h',
195         'shell/test_child_process.cc',
196         'shell/test_child_process.h',
197         'shell/ui_application_loader_android.cc',
198         'shell/ui_application_loader_android.h',
199       ],
200       'conditions': [
201         ['component=="shared_library"', {
202           'dependencies': [
203             '../ui/gl/gl.gyp:gl',
204           ],
205         }],
206         ['OS=="linux"', {
207           'sources': [
208             'shell/external_application_registrar_connection.cc',
209             'shell/external_application_registrar_connection.h',
210           ],
211         }],
212         ['OS=="android"', {
213           'dependencies': [
214             'mojo_network_service_lib',
215             'mojo_native_viewport_service_lib',
216           ],
217           'sources': [
218             'shell/network_application_loader.cc',
219             'shell/network_application_loader.h',
220           ],
221         }],
222       ],
223     },
224     {
225       # GN version: //mojo/shell:test_support
226       'target_name': 'mojo_shell_test_support',
227       'type': 'static_library',
228       'dependencies': [
229         'mojo_base.gyp:mojo_system_impl',
230         'mojo_shell_lib',
231       ],
232       'sources': [
233         'shell/shell_test_helper.cc',
234         'shell/shell_test_helper.h',
235       ],
236     },
237     {
238       # GN version: //mojo/shell
239       'target_name': 'mojo_shell',
240       'type': 'executable',
241       'dependencies': [
242         '../base/base.gyp:base',
243         'mojo_base.gyp:mojo_common_lib',
244         'mojo_base.gyp:mojo_environment_chromium',
245         'mojo_shell_lib',
246       ],
247       'sources': [
248         'shell/desktop/mojo_main.cc',
249       ],
250       'conditions': [
251         ['component=="shared_library"', {
252           'dependencies': [
253             '../ui/gfx/gfx.gyp:gfx',
254           ],
255         }],
256       ],
257     },
258     {
259       # GN version: //mojo/shell:mojo_shell_tests
260       'target_name': 'mojo_shell_tests',
261       'type': '<(gtest_target_type)',
262       'dependencies': [
263         '../base/base.gyp:base',
264         '../base/base.gyp:base_i18n',
265         '../base/base.gyp:test_support_base',
266         '../testing/gtest.gyp:gtest',
267         '../net/net.gyp:net_test_support',
268         '../url/url.gyp:url_lib',
269         'mojo_application_manager',
270         'mojo_base.gyp:mojo_common_lib',
271         'mojo_base.gyp:mojo_environment_chromium',
272         'mojo_base.gyp:mojo_system_impl',
273         'mojo_shell_lib',
274         'mojo_test_app',
275         'mojo_test_request_tracker_app',
276         'mojo_test_service_bindings',
277       ],
278       'sources': [
279         'shell/child_process_host_unittest.cc',
280         'shell/dynamic_application_loader_unittest.cc',
281         'shell/in_process_dynamic_service_runner_unittest.cc',
282         'shell/shell_test_base.cc',
283         'shell/shell_test_base.h',
284         'shell/shell_test_base_unittest.cc',
285         'shell/shell_test_main.cc',
286       ],
287       'conditions': [
288         ['OS == "android"', {
289           'dependencies': [
290             '../testing/android/native_test.gyp:native_test_native_code',
291           ],
292         }],
293       ],
294     },
295     {
296       # GN version: //mojo/application_manager
297       'target_name': 'mojo_application_manager',
298       'type': '<(component)',
299       'defines': [
300         'MOJO_APPLICATION_MANAGER_IMPLEMENTATION',
301       ],
302       'dependencies': [
303         '../base/base.gyp:base',
304         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
305         '../url/url.gyp:url_lib',
306         'mojo_content_handler_bindings',
307         'mojo_network_bindings',
308         'mojo_base.gyp:mojo_application_bindings',
309         'mojo_base.gyp:mojo_common_lib',
310         'mojo_base.gyp:mojo_environment_chromium',
311         '<(mojo_system_for_component)',
312       ],
313       'sources': [
314         'application_manager/application_loader.cc',
315         'application_manager/application_loader.h',
316         'application_manager/application_manager.cc',
317         'application_manager/application_manager.h',
318         'application_manager/application_manager_export.h',
319         'application_manager/background_shell_application_loader.cc',
320         'application_manager/background_shell_application_loader.h',
321       ],
322       'export_dependent_settings': [
323         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
324         'mojo_base.gyp:mojo_application_bindings',
325         'mojo_network_bindings',
326       ],
327     },
328     {
329       # GN version: //mojo/application_manager:mojo_application_manager_unittests
330       'target_name': 'mojo_application_manager_unittests',
331       'type': 'executable',
332       'dependencies': [
333         '../base/base.gyp:base',
334         '../testing/gtest.gyp:gtest',
335         '../url/url.gyp:url_lib',
336         'mojo_application_manager',
337         'mojo_base.gyp:mojo_common_lib',
338         'mojo_base.gyp:mojo_cpp_bindings',
339         'mojo_base.gyp:mojo_environment_chromium',
340         'mojo_base.gyp:mojo_run_all_unittests',
341         'mojo_base.gyp:mojo_application_chromium',
342       ],
343       'includes': [ 'public/tools/bindings/mojom_bindings_generator.gypi' ],
344       'sources': [
345         'application_manager/application_manager_unittest.cc',
346         'application_manager/background_shell_application_loader_unittest.cc',
347         'application_manager/test.mojom',
348       ],
349     },
350     {
351       # GN version: //mojo/cc
352       'target_name': 'mojo_cc_support',
353       'type': 'static_library',
354       'dependencies': [
355         '../base/base.gyp:base',
356         '../cc/cc.gyp:cc',
357         '../cc/cc.gyp:cc_surfaces',
358         '../skia/skia.gyp:skia',
359         '../gpu/gpu.gyp:gles2_implementation',
360         'mojo_geometry_lib',
361         'mojo_surfaces_bindings',
362         'mojo_surfaces_lib',
363       ],
364       'includes': [
365         'mojo_public_gles2_for_loadable_module.gypi',
366       ],
367       'export_dependent_settings': [
368         'mojo_surfaces_bindings',
369       ],
370       'sources': [
371         'cc/context_provider_mojo.cc',
372         'cc/context_provider_mojo.h',
373         'cc/output_surface_mojo.cc',
374         'cc/output_surface_mojo.h',
375       ],
376     },
377     {
378       # GN version: //mojo/bindings/js/tests:mojo_js_unittests
379       'target_name': 'mojo_js_unittests',
380       'type': 'executable',
381       'dependencies': [
382         '../gin/gin.gyp:gin_test',
383         'mojo_base.gyp:mojo_common_test_support',
384         'mojo_base.gyp:mojo_environment_standalone',
385         'mojo_base.gyp:mojo_js_bindings_lib',
386         'mojo_base.gyp:mojo_public_test_interfaces',
387         'mojo_base.gyp:mojo_run_all_unittests',
388         'mojo_base.gyp:mojo_utility',
389       ],
390       'sources': [
391         'bindings/js/tests/run_js_tests.cc',
392       ],
393     },
394   ],
395   'conditions': [
396     ['OS=="android"', {
397       'targets': [
398         {
399           'target_name': 'mojo_native_viewport_java',
400           'type': 'none',
401           'dependencies': [
402             '../base/base.gyp:base_java',
403           ],
404           'variables': {
405             'java_in_dir': '<(DEPTH)/mojo/services/native_viewport/android',
406           },
407           'includes': [ '../build/java.gypi' ],
408         },
409         {
410           'target_name': 'libmojo_shell',
411           'type': 'shared_library',
412           'dependencies': [
413             '../base/base.gyp:base',
414             '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
415             '../ui/gfx/gfx.gyp:gfx',
416             '../ui/gfx/gfx.gyp:gfx_geometry',
417             '../ui/gl/gl.gyp:gl',
418             'mojo_base.gyp:mojo_application_bindings',
419             'mojo_base.gyp:mojo_common_lib',
420             'mojo_base.gyp:mojo_environment_chromium',
421             'mojo_base.gyp:mojo_jni_headers',
422             'mojo_shell_lib',
423           ],
424           'sources': [
425             'shell/android/library_loader.cc',
426             'shell/android/mojo_main.cc',
427             'shell/android/mojo_main.h',
428           ],
429         },
430         {
431           'target_name': 'mojo_shell_apk',
432           'type': 'none',
433           'dependencies': [
434             '../base/base.gyp:base_java',
435             '../net/net.gyp:net_java',
436             'mojo_native_viewport_java',
437             'libmojo_shell',
438           ],
439           'variables': {
440             'apk_name': 'MojoShell',
441             'java_in_dir': '<(DEPTH)/mojo/shell/android/apk',
442             'resource_dir': '<(DEPTH)/mojo/shell/android/apk/res',
443             'native_lib_target': 'libmojo_shell',
444           },
445           'includes': [ '../build/java_apk.gypi' ],
446         }
447       ],
448     }],
449     ['OS=="linux"', {
450       'targets': [
451         {
452           # GN version: //mojo/shell:mojo_external_application_tests
453           'target_name': 'mojo_external_application_tests',
454           'type': '<(gtest_target_type)',
455           'dependencies': [
456             '../base/base.gyp:base',
457             '../base/base.gyp:test_support_base',
458             '../testing/gtest.gyp:gtest',
459             '../net/net.gyp:net_test_support',
460             '../url/url.gyp:url_lib',
461             'mojo_application_manager',
462             'mojo_base.gyp:mojo_common_lib',
463             'mojo_base.gyp:mojo_environment_chromium',
464             'mojo_base.gyp:mojo_system_impl',
465             'mojo_shell_lib',
466           ],
467           'sources': [
468             'shell/incoming_connection_listener_unittest.cc',
469             'shell/external_application_listener_unittest.cc',
470             'shell/external_application_test_main.cc',
471           ],
472         },
473       ],
474     }],
475     ['use_aura==1', {
476       'targets': [
477         {
478           # GN version: //mojo/aura
479           'target_name': 'mojo_aura_support',
480           'type': 'static_library',
481           'dependencies': [
482             '../cc/cc.gyp:cc',
483             '../ui/aura/aura.gyp:aura',
484             '../ui/compositor/compositor.gyp:compositor',
485             '../ui/events/events.gyp:events',
486             '../ui/events/events.gyp:events_base',
487             'mojo_cc_support',
488             'mojo_native_viewport_bindings',
489           ],
490           'includes': [
491             'mojo_public_gles2_for_loadable_module.gypi',
492           ],
493           'sources': [
494             'aura/aura_init.cc',
495             'aura/aura_init.h',
496             'aura/context_factory_mojo.cc',
497             'aura/context_factory_mojo.h',
498             'aura/screen_mojo.cc',
499             'aura/screen_mojo.h',
500             'aura/window_tree_host_mojo.cc',
501             'aura/window_tree_host_mojo.h',
502             'aura/window_tree_host_mojo_delegate.h',
503           ],
504         },
505         {
506           # GN version: //mojo/views
507           'target_name': 'mojo_views_support',
508           'type': 'static_library',
509           'dependencies': [
510             '../base/base.gyp:base',
511             '../base/base.gyp:base_i18n',
512             '../skia/skia.gyp:skia',
513             '../third_party/icu/icu.gyp:icui18n',
514             '../third_party/icu/icu.gyp:icuuc',
515             '../ui/aura/aura.gyp:aura',
516             '../ui/base/ui_base.gyp:ui_base',
517             '../ui/views/views.gyp:views',
518             '../ui/wm/wm.gyp:wm',
519             'mojo_aura_support',
520             'mojo_views_support_internal',
521             'mojo_view_manager_bindings',
522           ],
523           'sources': [
524             'views/input_method_mojo_linux.cc',
525             'views/input_method_mojo_linux.h',
526             'views/native_widget_view_manager.cc',
527             'views/native_widget_view_manager.h',
528             'views/views_init.cc',
529             'views/views_init.h',
530           ],
531         },
532         {
533           # GN version: //mojo/views:views_internal
534           'target_name': 'mojo_views_support_internal',
535           'type': '<(component)',
536           'dependencies': [
537             '../base/base.gyp:base',
538             '../base/base.gyp:base_i18n',
539             '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
540             '../skia/skia.gyp:skia',
541             '../third_party/icu/icu.gyp:icui18n',
542             '../third_party/icu/icu.gyp:icuuc',
543             '../ui/base/ui_base.gyp:ui_base',
544             '../ui/gfx/gfx.gyp:gfx',
545           ],
546           'sources': [
547             'views/mojo_views_export.h',
548             'views/views_init_internal.cc',
549             'views/views_init_internal.h',
550           ],
551           'defines': [
552             'MOJO_VIEWS_IMPLEMENTATION',
553           ],
554         },
555       ],
556     }],
557     ['component!="shared_library" and OS=="linux"', {
558       'targets': [
559         {
560           # GN version: //mojo/public/python:system
561           'target_name': 'mojo_python_system',
562           'variables': {
563             'python_base_module': 'mojo',
564             'python_cython_module': 'system',
565           },
566           'sources': [
567             'public/python/mojo/c_core.pxd',
568             'public/python/mojo/c_environment.pxd',
569             'public/python/mojo/system.pyx',
570             'public/python/src/python_system_helper.cc',
571             'public/python/src/python_system_helper.h',
572           ],
573           'dependencies': [
574             'mojo_base.gyp:mojo_environment_standalone',
575             'mojo_base.gyp:mojo_system',
576             'mojo_base.gyp:mojo_utility',
577           ],
578           'includes': [ '../third_party/cython/cython_compiler.gypi' ],
579         },
580         {
581           # GN version: //mojo/python:embedder
582           'target_name': 'mojo_python_embedder',
583           'type': 'loadable_module',
584           'variables': {
585             'python_base_module': 'mojo',
586             'python_cython_module': 'embedder',
587           },
588           'sources': [
589             'python/system/mojo/embedder.pyx',
590           ],
591           'dependencies': [
592             'mojo_base.gyp:mojo_system_impl',
593           ],
594           'includes': [ '../third_party/cython/cython_compiler.gypi' ],
595         },
596         {
597           # GN version: //mojo/public/python:bindings
598           'target_name': 'mojo_python_bindings',
599           'type': 'none',
600           'variables': {
601             'python_base_module': 'mojo/bindings',
602           },
603           'sources': [
604             'public/python/mojo/bindings/__init__.py',
605             'public/python/mojo/bindings/descriptor.py',
606             'public/python/mojo/bindings/messaging.py',
607             'public/python/mojo/bindings/promise.py',
608             'public/python/mojo/bindings/reflection.py',
609             'public/python/mojo/bindings/serialization.py',
610           ],
611           'dependencies': [
612             'mojo_python_system',
613           ],
614           'includes': [ '../third_party/cython/python_module.gypi' ],
615         },
616         {
617           # GN version: //mojo/python
618           'target_name': 'mojo_python',
619           'type': 'none',
620           'variables': {
621             'python_base_module': 'mojo',
622           },
623           'sources': [
624             'public/python/mojo/__init__.py',
625           ],
626           'dependencies': [
627             'mojo_python_bindings',
628             'mojo_python_embedder',
629             'mojo_python_system',
630           ],
631           # The python module need to be copied to their destinations
632           'actions': [
633             {
634               'action_name': 'Copy system module.',
635               'inputs': [
636                 '<(DEPTH)/build/cp.py',
637                 '<(PRODUCT_DIR)/libmojo_python_system.so',
638               ],
639               'outputs': [
640                 '<(PRODUCT_DIR)/python/mojo/system.so',
641               ],
642               'action': [
643                 'python',
644                 '<@(_inputs)',
645                 '<@(_outputs)',
646               ]
647             },
648             {
649               'action_name': 'Copy embedder module.',
650               'inputs': [
651                 '<(DEPTH)/build/cp.py',
652                 '<(PRODUCT_DIR)/libmojo_python_embedder.so',
653               ],
654               'outputs': [
655                 '<(PRODUCT_DIR)/python/mojo/embedder.so',
656               ],
657               'action': [
658                 'python',
659                 '<@(_inputs)',
660                 '<@(_outputs)',
661               ]
662             },
663           ],
664           'includes': [ '../third_party/cython/python_module.gypi' ],
665         },
666       ],
667     }],
668     ['component!="shared_library" and OS=="linux" and test_isolation_mode!="noop"', {
669       'targets': [
670         {
671           'target_name': 'mojo_python_unittests_run',
672           'type': 'none',
673           'dependencies': [
674             'mojo_python',
675             'mojo_base.gyp:mojo_public_test_interfaces',
676           ],
677           'includes': [
678             '../build/isolate.gypi',
679           ],
680           'sources': [
681             'mojo_python_unittests.isolate',
682           ],
683         },
684       ],
685     }],
686     ['test_isolation_mode != "noop"', {
687       'targets': [
688         {
689           'target_name': 'mojo_js_unittests_run',
690           'type': 'none',
691           'dependencies': [
692             'mojo_js_unittests',
693           ],
694           'includes': [
695             '../build/isolate.gypi',
696           ],
697           'sources': [
698             'mojo_js_unittests.isolate',
699           ],
700         },
701       ],
702     }],
703   ],