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