Home | History | Annotate | Download | only in remoting
      1 # Copyright (c) 2012 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   'variables': {
      7     'chromium_code': 1,
      8 
      9     # Set this to run the jscompile checks after building the webapp.
     10     'run_jscompile%': 0,
     11 
     12     # Set this to enable cast mode on the android client.
     13     'enable_cast%': 0,
     14 
     15     'variables': {
     16       'conditions': [
     17         # Enable the multi-process host on Windows by default.
     18         ['OS=="win"', {
     19           'remoting_multi_process%': 1,
     20         }, {
     21           'remoting_multi_process%': 0,
     22         }],
     23       ],
     24     },
     25 
     26     'remoting_multi_process%': '<(remoting_multi_process)',
     27     'remoting_rdp_session%': 1,
     28 
     29     'remoting_localize_path': 'tools/build/remoting_localize.py',
     30 
     31     'branding_path': '../remoting/branding_<(branding)',
     32 
     33     'webapp_locale_dir': '<(SHARED_INTERMEDIATE_DIR)/remoting/webapp/_locales',
     34 
     35     'conditions': [
     36       ['OS=="mac"', {
     37         'mac_bundle_id': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_BUNDLE_ID@")',
     38         'mac_creator': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_CREATOR@")',
     39       }],
     40       ['OS=="win"', {
     41         # Each CLSID is a hash of the current version string salted with an
     42         # arbitrary GUID. This ensures that the newly installed COM classes will
     43         # be used during/after upgrade even if there are old instances running
     44         # already.
     45         # The IDs are not random to avoid rebuilding host when it's not
     46         # necessary.
     47         'daemon_controller_clsid':
     48             '<!(python -c "import uuid; print uuid.uuid5(uuid.UUID(\'655bd819-c08c-4b04-80c2-f160739ff6ef\'), \'<(version_full)\')")',
     49         'rdp_desktop_session_clsid':
     50             '<!(python -c "import uuid; print uuid.uuid5(uuid.UUID(\'6a7699f0-ee43-43e7-aa30-a6738f9bd470\'), \'<(version_full)\')")',
     51       }],
     52     ],
     53     'remoting_locales': [
     54       # Note: list duplicated in GN build. See //remoting/resources/BUILD.gn
     55       'ar', 'bg', 'ca', 'cs', 'da', 'de', 'el', 'en', 'en-GB', 'es',
     56       'es-419', 'et', 'fi', 'fil', 'fr', 'he', 'hi', 'hr', 'hu', 'id',
     57       'it', 'ja', 'ko', 'lt', 'lv', 'nb', 'nl', 'pl', 'pt-BR', 'pt-PT',
     58       'ro', 'ru', 'sk', 'sl', 'sr', 'sv', 'th', 'tr', 'uk', 'vi',
     59       'zh-CN', 'zh-TW',
     60     ],
     61     'remoting_host_locale_files': [
     62       # Build the list of .pak files generated from remoting_strings.grd.
     63       '<!@pymod_do_main(remoting_copy_locales -o -p <(OS) -x '
     64           '<(PRODUCT_DIR) <(remoting_locales))',
     65     ],
     66     'remoting_webapp_locale_files': [
     67       # Build the list of .json files generated from remoting_strings.grd.
     68       '<!@pymod_do_main(remoting_localize --locale_output '
     69           '"<(webapp_locale_dir)/@{json_suffix}/messages.json" '
     70           '--print_only <(remoting_locales))',
     71     ],
     72   },
     73 
     74   'includes': [
     75     '../chrome/js_unittest_vars.gypi',
     76     'remoting_android.gypi',
     77     'remoting_client.gypi',
     78     'remoting_host.gypi',
     79     'remoting_srcs.gypi',
     80     'remoting_test.gypi',
     81     'remoting_version.gypi',
     82     'remoting_webapp_files.gypi',
     83   ],
     84 
     85   'target_defaults': {
     86     'defines': [
     87       'BINARY_CORE=1',
     88       'BINARY_DESKTOP=2',
     89       'BINARY_HOST_ME2ME=3',
     90       'BINARY_NATIVE_MESSAGING_HOST=4',
     91       'BINARY_REMOTE_ASSISTANCE_HOST=5',
     92     ],
     93     'include_dirs': [
     94       '..',  # Root of Chrome checkout
     95     ],
     96     'variables': {
     97       'win_debug_RuntimeChecks': '0',
     98     },
     99     'conditions': [
    100       ['OS=="mac" and mac_breakpad==1', {
    101         'defines': [
    102           'REMOTING_ENABLE_BREAKPAD'
    103         ],
    104       }],
    105       ['OS=="win" and buildtype == "Official"', {
    106         'defines': [
    107           'REMOTING_ENABLE_BREAKPAD'
    108         ],
    109       }],
    110       ['OS=="win" and remoting_multi_process != 0 and \
    111           remoting_rdp_session != 0', {
    112         'defines': [
    113           'REMOTING_RDP_SESSION',
    114         ],
    115       }],
    116       ['remoting_multi_process != 0', {
    117         'defines': [
    118           'REMOTING_MULTI_PROCESS',
    119         ],
    120       }],
    121     ],
    122   },
    123 
    124   'targets': [
    125     {
    126       'target_name': 'remoting_breakpad',
    127       'type': 'static_library',
    128       'variables': { 'enable_wexit_time_destructors': 1, },
    129       'dependencies': [
    130         '../base/base.gyp:base',
    131       ],
    132       'sources': [
    133         'base/breakpad.h',
    134         'base/breakpad_linux.cc',
    135         'base/breakpad_mac.mm',
    136         'base/breakpad_win.cc',
    137       ],
    138       'conditions': [
    139         ['OS=="mac"', {
    140           'dependencies': [
    141             '../breakpad/breakpad.gyp:breakpad',
    142           ],
    143         }],
    144         ['OS=="win"', {
    145           'dependencies': [
    146             '../breakpad/breakpad.gyp:breakpad_handler',
    147           ],
    148         }],
    149       ],
    150     },  # end of target 'remoting_breakpad'
    151 
    152     {
    153       # GN version: //remoting/resources
    154       'target_name': 'remoting_resources',
    155       'type': 'none',
    156       'dependencies': [
    157         'remoting_webapp_html',
    158       ],
    159       'variables': {
    160         'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)',
    161         'grit_resource_ids': 'resources/resource_ids',
    162         'sources': [
    163           '<(SHARED_INTERMEDIATE_DIR)/main.html',
    164           'base/resources_unittest.cc',
    165           'host/continue_window_mac.mm',
    166           'host/disconnect_window_mac.mm',
    167           'host/installer/mac/uninstaller/remoting_uninstaller-InfoPlist.strings.jinja2',
    168           'host/mac/me2me_preference_pane-InfoPlist.strings.jinja2',
    169           'host/win/core.rc.jinja2',
    170           'host/win/host_messages.mc.jinja2',
    171           'host/win/version.rc.jinja2',
    172           'resources/play_store_resources.cc',
    173           'webapp/background/background.js',
    174           'webapp/background/it2me_helpee_channel.js',
    175           'webapp/butter_bar.js',
    176           'webapp/client_screen.js',
    177           'webapp/error.js',
    178           'webapp/host_list.js',
    179           'webapp/host_setup_dialog.js',
    180           'webapp/host_table_entry.js',
    181           'webapp/options_menu.js',
    182           'webapp/manifest.json.jinja2',
    183           'webapp/paired_client_manager.js',
    184           'webapp/remoting.js',
    185           'webapp/window_frame.js',
    186         ],
    187       },
    188       'actions': [
    189         {
    190           # GN version: //remoting/resources:verify_resources
    191           'action_name': 'verify_resources',
    192           'inputs': [
    193             'resources/remoting_strings.grd',
    194             'tools/verify_resources.py',
    195             '<@(sources)'
    196           ],
    197           'outputs': [
    198             '<(PRODUCT_DIR)/remoting_resources_verified.stamp',
    199           ],
    200           'action': [
    201             'python',
    202             'tools/verify_resources.py',
    203             '-t', '<(PRODUCT_DIR)/remoting_resources_verified.stamp',
    204             '-r', 'resources/remoting_strings.grd',
    205             '<@(sources)',
    206          ],
    207         },
    208         {
    209           # GN version: //remoting/resources:strings
    210           'action_name': 'remoting_strings',
    211           'variables': {
    212             'grit_grd_file': 'resources/remoting_strings.grd',
    213           },
    214           'includes': [ '../build/grit_action.gypi' ],
    215         },
    216         {
    217           # GN version: //remoting/resources:copy_locales
    218           'action_name': 'copy_locales',
    219           'variables': {
    220             'copy_output_dir%': '<(PRODUCT_DIR)',
    221           },
    222           'inputs': [
    223             'tools/build/remoting_copy_locales.py',
    224             '<!@pymod_do_main(remoting_copy_locales -i -p <(OS) -g <(grit_out_dir) <(remoting_locales))'
    225           ],
    226           'outputs': [
    227             '<!@pymod_do_main(remoting_copy_locales -o -p <(OS) -x <(copy_output_dir) <(remoting_locales))'
    228           ],
    229           'action': [
    230             'python', 'tools/build/remoting_copy_locales.py',
    231             '-p', '<(OS)',
    232             '-g', '<(grit_out_dir)',
    233             '-x', '<(copy_output_dir)/.',
    234             '<@(remoting_locales)',
    235           ],
    236         }
    237       ],
    238       'includes': [ '../build/grit_target.gypi' ],
    239     },  # end of target 'remoting_resources'
    240 
    241     {
    242       # GN version: //remoting/base
    243       'target_name': 'remoting_base',
    244       'type': 'static_library',
    245       'variables': { 'enable_wexit_time_destructors': 1, },
    246       'dependencies': [
    247         '../base/base.gyp:base',
    248         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
    249         '../media/media.gyp:media',
    250         '../media/media.gyp:shared_memory_support',
    251         '../net/net.gyp:net',
    252         '../third_party/libvpx/libvpx.gyp:libvpx',
    253         '../third_party/libyuv/libyuv.gyp:libyuv',
    254         '../third_party/opus/opus.gyp:opus',
    255         '../third_party/protobuf/protobuf.gyp:protobuf_lite',
    256         '../third_party/webrtc/modules/modules.gyp:desktop_capture',
    257         '../ui/base/ui_base.gyp:ui_base',
    258         '../ui/gfx/gfx.gyp:gfx',
    259         '../ui/gfx/gfx.gyp:gfx_geometry',
    260         'proto/chromotocol.gyp:chromotocol_proto_lib',
    261         'remoting_resources',
    262       ],
    263       'export_dependent_settings': [
    264         '../base/base.gyp:base',
    265         '../net/net.gyp:net',
    266         '../third_party/protobuf/protobuf.gyp:protobuf_lite',
    267         'proto/chromotocol.gyp:chromotocol_proto_lib',
    268       ],
    269       # This target needs a hard dependency because dependent targets
    270       # depend on chromotocol_proto_lib for headers.
    271       'hard_dependency': 1,
    272       'sources': [
    273         '<@(remoting_base_sources)',
    274       ],
    275     },  # end of target 'remoting_base'
    276 
    277     {
    278       # GN version: //remoting/protocol
    279       'target_name': 'remoting_protocol',
    280       'type': 'static_library',
    281       'variables': { 'enable_wexit_time_destructors': 1, },
    282       'dependencies': [
    283         '../base/base.gyp:base',
    284         '../crypto/crypto.gyp:crypto',
    285         '../jingle/jingle.gyp:jingle_glue',
    286         '../jingle/jingle.gyp:notifier',
    287         '../net/net.gyp:net',
    288         '../third_party/libjingle/libjingle.gyp:libjingle',
    289         'remoting_base',
    290       ],
    291       'export_dependent_settings': [
    292         '../third_party/libjingle/libjingle.gyp:libjingle',
    293       ],
    294       'sources': [
    295         '<@(remoting_protocol_sources)',
    296       ],
    297     },  # end of target 'remoting_protocol'
    298   ],  # end of targets
    299 }
    300