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