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   'includes': [
      7     'remoting_host_linux.gypi',
      8     'remoting_host_mac.gypi',
      9     'remoting_host_win.gypi',
     10   ],
     11 
     12   'variables': {
     13     'conditions': [
     14       # Remoting host is supported only on Windows, OSX and Linux (with X11).
     15       ['OS=="win" or OS=="mac" or (OS=="linux" and use_x11==1)', {
     16         'enable_me2me_host': 1,
     17         'enable_it2me_host': 1,
     18         'enable_remoting_host': 1,
     19       }, {
     20         'enable_me2me_host': 0,
     21         'enable_it2me_host': 0,
     22         'enable_remoting_host': 0,
     23       }],
     24       ['chromeos==1', {
     25         'enable_me2me_host': 0,
     26         'enable_it2me_host': 0,
     27       }],
     28     ],
     29   },
     30 
     31   'conditions': [
     32     ['enable_remoting_host==1', {
     33       'targets': [
     34         {
     35           'target_name': 'remoting_host',
     36           'type': 'static_library',
     37           'variables': {
     38             'enable_wexit_time_destructors': 1,
     39             'host_bundle_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_HOST_BUNDLE_NAME@")',
     40             'prefpane_bundle_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_PREFPANE_BUNDLE_NAME@")',
     41           },
     42           'dependencies': [
     43             'remoting_base',
     44             'remoting_protocol',
     45             'remoting_resources',
     46             '../base/base.gyp:base_i18n',
     47             '../crypto/crypto.gyp:crypto',
     48             '../google_apis/google_apis.gyp:google_apis',
     49             '../ipc/ipc.gyp:ipc',
     50             '../ui/events/events.gyp:dom4_keycode_converter',
     51           ],
     52           'defines': [
     53             'HOST_BUNDLE_NAME="<(host_bundle_name)"',
     54             'PREFPANE_BUNDLE_NAME="<(prefpane_bundle_name)"',
     55             'VERSION=<(version_full)',
     56           ],
     57           'sources': [
     58             'host/audio_capturer.cc',
     59             'host/audio_capturer.h',
     60             'host/audio_capturer_linux.cc',
     61             'host/audio_capturer_linux.h',
     62             'host/audio_capturer_mac.cc',
     63             'host/audio_capturer_win.cc',
     64             'host/audio_capturer_win.h',
     65             'host/audio_scheduler.cc',
     66             'host/audio_scheduler.h',
     67             'host/audio_silence_detector.cc',
     68             'host/audio_silence_detector.h',
     69             'host/basic_desktop_environment.cc',
     70             'host/basic_desktop_environment.h',
     71             'host/branding.cc',
     72             'host/branding.h',
     73             'host/capture_scheduler.cc',
     74             'host/capture_scheduler.h',
     75             'host/chromeos/aura_desktop_capturer.cc',
     76             'host/chromeos/aura_desktop_capturer.h',
     77             'host/chromium_port_allocator_factory.cc',
     78             'host/chromium_port_allocator_factory.h',
     79             'host/chromoting_host.cc',
     80             'host/chromoting_host.h',
     81             'host/chromoting_host_context.cc',
     82             'host/chromoting_host_context.h',
     83             'host/chromoting_messages.cc',
     84             'host/chromoting_messages.h',
     85             'host/chromoting_param_traits.cc',
     86             'host/chromoting_param_traits.h',
     87             'host/client_session.cc',
     88             'host/client_session.h',
     89             'host/client_session_control.h',
     90             'host/clipboard.h',
     91             'host/clipboard_mac.mm',
     92             'host/clipboard_win.cc',
     93             'host/clipboard_x11.cc',
     94             'host/config_file_watcher.cc',
     95             'host/config_file_watcher.h',
     96             'host/config_watcher.h',
     97             'host/constants_mac.cc',
     98             'host/constants_mac.h',
     99             'host/continue_window.cc',
    100             'host/continue_window.h',
    101             'host/continue_window_linux.cc',
    102             'host/continue_window_mac.mm',
    103             'host/continue_window_win.cc',
    104             'host/daemon_process.cc',
    105             'host/daemon_process.h',
    106             'host/daemon_process_win.cc',
    107             'host/desktop_environment.h',
    108             'host/desktop_process.cc',
    109             'host/desktop_process.h',
    110             'host/desktop_resizer.h',
    111             'host/desktop_resizer_linux.cc',
    112             'host/desktop_session.cc',
    113             'host/desktop_session.h',
    114             'host/desktop_session_agent.cc',
    115             'host/desktop_session_agent.h',
    116             'host/desktop_session_win.cc',
    117             'host/desktop_session_win.h',
    118             'host/desktop_resizer_mac.cc',
    119             'host/desktop_resizer_win.cc',
    120             'host/desktop_session_connector.h',
    121             'host/desktop_session_proxy.cc',
    122             'host/desktop_session_proxy.h',
    123             'host/desktop_shape_tracker.h',
    124             'host/desktop_shape_tracker_mac.cc',
    125             'host/desktop_shape_tracker_win.cc',
    126             'host/desktop_shape_tracker_x11.cc',
    127             'host/disconnect_window_linux.cc',
    128             'host/disconnect_window_mac.h',
    129             'host/disconnect_window_mac.mm',
    130             'host/disconnect_window_win.cc',
    131             'host/dns_blackhole_checker.cc',
    132             'host/dns_blackhole_checker.h',
    133             'host/gnubby_auth_handler.h',
    134             'host/gnubby_auth_handler_posix.cc',
    135             'host/gnubby_auth_handler_posix.h',
    136             'host/gnubby_auth_handler_win.cc',
    137             'host/gnubby_socket.cc',
    138             'host/gnubby_socket.h',
    139             'host/heartbeat_sender.cc',
    140             'host/heartbeat_sender.h',
    141             'host/host_change_notification_listener.cc',
    142             'host/host_change_notification_listener.h',
    143             'host/host_config.cc',
    144             'host/host_config.h',
    145             'host/host_event_logger.h',
    146             'host/host_event_logger_posix.cc',
    147             'host/host_event_logger_win.cc',
    148             'host/host_exit_codes.cc',
    149             'host/host_exit_codes.h',
    150             'host/host_export.h',
    151             'host/host_extension.h',
    152             'host/host_extension_session.cc',
    153             'host/host_extension_session.h',
    154             'host/host_extension_session_manager.cc',
    155             'host/host_extension_session_manager.h',
    156             'host/host_secret.cc',
    157             'host/host_secret.h',
    158             'host/host_status_logger.cc',
    159             'host/host_status_logger.h',
    160             'host/host_status_monitor.h',
    161             'host/host_status_observer.h',
    162             'host/host_status_sender.cc',
    163             'host/host_status_sender.h',
    164             'host/host_window.h',
    165             'host/host_window_proxy.cc',
    166             'host/host_window_proxy.h',
    167             'host/in_memory_host_config.cc',
    168             'host/in_memory_host_config.h',
    169             'host/input_injector.h',
    170             'host/input_injector_linux.cc',
    171             'host/input_injector_mac.cc',
    172             'host/input_injector_win.cc',
    173             'host/ipc_audio_capturer.cc',
    174             'host/ipc_audio_capturer.h',
    175             'host/ipc_constants.cc',
    176             'host/ipc_constants.h',
    177             'host/ipc_desktop_environment.cc',
    178             'host/ipc_desktop_environment.h',
    179             'host/ipc_host_event_logger.cc',
    180             'host/ipc_host_event_logger.h',
    181             'host/ipc_input_injector.cc',
    182             'host/ipc_input_injector.h',
    183             'host/ipc_mouse_cursor_monitor.cc',
    184             'host/ipc_mouse_cursor_monitor.h',
    185             'host/ipc_screen_controls.cc',
    186             'host/ipc_screen_controls.h',
    187             'host/ipc_util.h',
    188             'host/ipc_util_posix.cc',
    189             'host/ipc_util_win.cc',
    190             'host/ipc_video_frame_capturer.cc',
    191             'host/ipc_video_frame_capturer.h',
    192             'host/it2me_desktop_environment.cc',
    193             'host/it2me_desktop_environment.h',
    194             'host/json_host_config.cc',
    195             'host/json_host_config.h',
    196             'host/linux/audio_pipe_reader.cc',
    197             'host/linux/audio_pipe_reader.h',
    198             'host/linux/unicode_to_keysym.cc',
    199             'host/linux/unicode_to_keysym.h',
    200             'host/linux/x11_util.cc',
    201             'host/linux/x11_util.h',
    202             'host/linux/x_server_clipboard.cc',
    203             'host/linux/x_server_clipboard.h',
    204             'host/local_input_monitor.h',
    205             'host/local_input_monitor_linux.cc',
    206             'host/local_input_monitor_mac.mm',
    207             'host/local_input_monitor_win.cc',
    208             'host/logging.h',
    209             'host/logging_posix.cc',
    210             'host/logging_win.cc',
    211             'host/me2me_desktop_environment.cc',
    212             'host/me2me_desktop_environment.h',
    213             'host/mouse_clamping_filter.cc',
    214             'host/mouse_clamping_filter.h',
    215             'host/oauth_token_getter.cc',
    216             'host/oauth_token_getter.h',
    217             'host/pairing_registry_delegate.cc',
    218             'host/pairing_registry_delegate.h',
    219             'host/pairing_registry_delegate_linux.cc',
    220             'host/pairing_registry_delegate_linux.h',
    221             'host/pairing_registry_delegate_mac.cc',
    222             'host/pairing_registry_delegate_win.cc',
    223             'host/pairing_registry_delegate_win.h',
    224             'host/pam_authorization_factory_posix.cc',
    225             'host/pam_authorization_factory_posix.h',
    226             'host/pin_hash.cc',
    227             'host/pin_hash.h',
    228             'host/policy_hack/policy_watcher.cc',
    229             'host/policy_hack/policy_watcher.h',
    230             'host/policy_hack/policy_watcher_linux.cc',
    231             'host/policy_hack/policy_watcher_mac.mm',
    232             'host/policy_hack/policy_watcher_win.cc',
    233             'host/register_support_host_request.cc',
    234             'host/register_support_host_request.h',
    235             'host/remote_input_filter.cc',
    236             'host/remote_input_filter.h',
    237             'host/remoting_me2me_host.cc',
    238             'host/resizing_host_observer.cc',
    239             'host/resizing_host_observer.h',
    240             'host/sas_injector.h',
    241             'host/sas_injector_win.cc',
    242             'host/screen_controls.h',
    243             'host/screen_resolution.cc',
    244             'host/screen_resolution.h',
    245             'host/server_log_entry_host.cc',
    246             'host/server_log_entry_host.h',
    247             'host/session_manager_factory.cc',
    248             'host/session_manager_factory.h',
    249             'host/shaped_desktop_capturer.cc',
    250             'host/shaped_desktop_capturer.h',
    251             'host/signaling_connector.cc',
    252             'host/signaling_connector.h',
    253             'host/single_window_desktop_environment.cc',
    254             'host/single_window_desktop_environment.h',
    255             'host/single_window_input_injector.h',
    256             'host/single_window_input_injector_linux.cc',
    257             'host/single_window_input_injector_mac.cc',
    258             'host/single_window_input_injector_win.cc',
    259             'host/token_validator_base.cc',
    260             'host/token_validator_base.h',
    261             'host/token_validator_factory_impl.cc',
    262             'host/token_validator_factory_impl.h',
    263             'host/usage_stats_consent.h',
    264             'host/usage_stats_consent_mac.cc',
    265             'host/usage_stats_consent_win.cc',
    266             'host/username.cc',
    267             'host/username.h',
    268             'host/video_frame_recorder.cc',
    269             'host/video_frame_recorder.h',
    270             'host/video_frame_recorder_host_extension.cc',
    271             'host/video_frame_recorder_host_extension.h',
    272             'host/video_scheduler.cc',
    273             'host/video_scheduler.h',
    274             'host/win/com_imported_mstscax.tlh',
    275             'host/win/com_security.cc',
    276             'host/win/com_security.h',
    277             'host/win/launch_process_with_token.cc',
    278             'host/win/launch_process_with_token.h',
    279             'host/win/omaha.cc',
    280             'host/win/omaha.h',
    281             'host/win/rdp_client.cc',
    282             'host/win/rdp_client.h',
    283             'host/win/rdp_client_window.cc',
    284             'host/win/rdp_client_window.h',
    285             'host/win/security_descriptor.cc',
    286             'host/win/security_descriptor.h',
    287             'host/win/session_desktop_environment.cc',
    288             'host/win/session_desktop_environment.h',
    289             'host/win/session_input_injector.cc',
    290             'host/win/session_input_injector.h',
    291             'host/win/window_station_and_desktop.cc',
    292             'host/win/window_station_and_desktop.h',
    293             'host/win/wts_terminal_monitor.cc',
    294             'host/win/wts_terminal_monitor.h',
    295             'host/win/wts_terminal_observer.h',
    296           ],
    297           'conditions': [
    298             ['OS=="linux"', {
    299               'dependencies': [
    300                 '../build/linux/system.gyp:x11',
    301                 '../build/linux/system.gyp:xext',
    302                 '../build/linux/system.gyp:xfixes',
    303                 '../build/linux/system.gyp:xi',
    304                 '../build/linux/system.gyp:xrandr',
    305                 '../build/linux/system.gyp:xtst',
    306               ],
    307               'link_settings': {
    308                 'libraries': [
    309                   '-lpam',
    310                 ],
    311               },
    312             }],
    313             ['OS=="linux" and chromeos==0', {
    314               'dependencies' : [
    315                 # Always use GTK on Linux, even for Aura builds.
    316                 '../build/linux/system.gyp:gtk',
    317               ],
    318             }],
    319             ['chromeos==1', {
    320               'dependencies' : [
    321                 '../ash/ash.gyp:ash',
    322                 '../cc/cc.gyp:cc',
    323                 '../content/content.gyp:content',
    324                 '../ppapi/ppapi_internal.gyp:ppapi_host',
    325                 '../skia/skia.gyp:skia',
    326                 '../ui/aura/aura.gyp:aura',
    327                 '../ui/compositor/compositor.gyp:compositor',
    328               ],
    329               'include_dirs': [
    330                 '../third_party/skia/include/utils',
    331               ],
    332               'sources!' : [
    333                 'host/continue_window.cc',
    334                 'host/continue_window.h',
    335                 'host/continue_window_linux.cc',
    336                 'host/disconnect_window.cc',
    337                 'host/disconnect_window_linux.cc',
    338                 'host/remoting_me2me_host.cc',
    339               ]
    340             }, {  # chromeos==0
    341                'sources!' : [
    342                  'host/chromeos/aura_desktop_capturer.cc',
    343                  'host/chromeos/aura_desktop_capturer.h',
    344                ],
    345             }],
    346             ['OS=="mac"', {
    347               'dependencies': [
    348                 '../third_party/google_toolbox_for_mac/google_toolbox_for_mac.gyp:google_toolbox_for_mac',
    349               ],
    350               'link_settings': {
    351                 'libraries': [
    352                   '$(SDKROOT)/System/Library/Frameworks/OpenGL.framework',
    353                   'libpam.a',
    354                ],
    355               },
    356             }],
    357             ['OS=="win"', {
    358               'defines': [
    359                 '_ATL_NO_EXCEPTIONS',
    360                 'ISOLATION_AWARE_ENABLED=1',
    361               ],
    362               'dependencies': [
    363                 '../sandbox/sandbox.gyp:sandbox',
    364                 'remoting_host_messages',
    365                 'remoting_lib_idl',
    366               ],
    367               'msvs_settings': {
    368                 'VCCLCompilerTool': {
    369                   # /MP conflicts with #import directive so we limit the number
    370                   # of processes to spawn to 1.
    371                   'AdditionalOptions': ['/MP1'],
    372                 },
    373               },
    374               'variables': {
    375                 'output_dir': '<(SHARED_INTERMEDIATE_DIR)/remoting/host',
    376               },
    377               'sources': [
    378                 '<(output_dir)/remoting_host_messages.mc',
    379               ],
    380               'include_dirs': [
    381                 '<(output_dir)',
    382               ],
    383               'direct_dependent_settings': {
    384                 'include_dirs': [
    385                   '<(output_dir)',
    386                 ],
    387               },
    388               'rules': [{
    389                 # Rule to run the message compiler.
    390                 'rule_name': 'message_compiler',
    391                 'extension': 'mc',
    392                 'outputs': [
    393                   '<(output_dir)/<(RULE_INPUT_ROOT).h',
    394                   '<(output_dir)/<(RULE_INPUT_ROOT).rc',
    395                 ],
    396                 'action': [
    397                   'mc.exe',
    398                   '-h', '<(output_dir)',
    399                   '-r', '<(output_dir)/.',
    400                   '-u',
    401                   '<(RULE_INPUT_PATH)',
    402                 ],
    403                 'process_outputs_as_sources': 1,
    404                 'message': 'Running message compiler on <(RULE_INPUT_PATH)',
    405               }],
    406             }],
    407             ['enable_webrtc==1', {
    408               'dependencies': [
    409                 '../third_party/webrtc/modules/modules.gyp:desktop_capture',
    410                 '../third_party/libjingle/libjingle.gyp:libpeerconnection',
    411               ],
    412               'sources': [
    413                 'host/cast_extension.cc',
    414                 'host/cast_extension.h',
    415                 'host/cast_extension_session.cc',
    416                 'host/cast_extension_session.h',
    417                 'host/cast_video_capturer_adapter.cc',
    418                 'host/cast_video_capturer_adapter.h',
    419               ],
    420             }],
    421           ],
    422         },  # end of target 'remoting_host'
    423 
    424         {
    425           'target_name': 'remoting_native_messaging_base',
    426           'type': 'static_library',
    427           'variables': { 'enable_wexit_time_destructors': 1, },
    428           'dependencies': [
    429             '../base/base.gyp:base',
    430           ],
    431           'sources': [
    432             'host/native_messaging/pipe_messaging_channel.cc',
    433             'host/native_messaging/pipe_messaging_channel.h',
    434             'host/native_messaging/native_messaging_reader.cc',
    435             'host/native_messaging/native_messaging_reader.h',
    436             'host/native_messaging/native_messaging_writer.cc',
    437             'host/native_messaging/native_messaging_writer.h',
    438           ],
    439         },  # end of target 'remoting_native_messaging_base'
    440 
    441         {
    442           'target_name': 'remoting_host_setup_base',
    443           'type': 'static_library',
    444           'variables': { 'enable_wexit_time_destructors': 1, },
    445           'dependencies': [
    446             '../base/base.gyp:base',
    447             '../google_apis/google_apis.gyp:google_apis',
    448             'remoting_host',
    449           ],
    450           'defines': [
    451             'VERSION=<(version_full)',
    452           ],
    453           'sources': [
    454             'host/setup/daemon_controller.cc',
    455             'host/setup/daemon_controller.h',
    456             'host/setup/daemon_controller_delegate_linux.cc',
    457             'host/setup/daemon_controller_delegate_linux.h',
    458             'host/setup/daemon_controller_delegate_mac.h',
    459             'host/setup/daemon_controller_delegate_mac.mm',
    460             'host/setup/daemon_controller_delegate_win.cc',
    461             'host/setup/daemon_controller_delegate_win.h',
    462             'host/setup/daemon_installer_win.cc',
    463             'host/setup/daemon_installer_win.h',
    464             'host/setup/me2me_native_messaging_host.cc',
    465             'host/setup/me2me_native_messaging_host.h',
    466             'host/setup/oauth_client.cc',
    467             'host/setup/oauth_client.h',
    468             'host/setup/oauth_helper.cc',
    469             'host/setup/oauth_helper.h',
    470             'host/setup/pin_validator.cc',
    471             'host/setup/pin_validator.h',
    472             'host/setup/service_client.cc',
    473             'host/setup/service_client.h',
    474             'host/setup/test_util.cc',
    475             'host/setup/test_util.h',
    476             'host/setup/win/auth_code_getter.cc',
    477             'host/setup/win/auth_code_getter.h',
    478           ],
    479           'conditions': [
    480             ['OS=="win"', {
    481               'dependencies': [
    482                 '../google_update/google_update.gyp:google_update',
    483                 'remoting_lib_idl',
    484               ],
    485               # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
    486               'msvs_disabled_warnings': [4267, ],
    487             }],
    488           ],
    489         },  # end of target 'remoting_host_setup_base'
    490 
    491         # Generates native messaging manifest files.
    492         {
    493           'target_name': 'remoting_native_messaging_manifests',
    494           'type': 'none',
    495           'conditions': [
    496             [ 'OS == "win"', {
    497               'variables': {
    498                 'me2me_host_path': 'remoting_native_messaging_host.exe',
    499                 'it2me_host_path': 'remote_assistance_host.exe',
    500               },
    501             }],
    502             [ 'OS == "mac"', {
    503               'variables': {
    504                 'me2me_host_bundle_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_HOST_BUNDLE_NAME@")',
    505                 'native_messaging_host_bundle_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_NATIVE_MESSAGING_HOST_BUNDLE_NAME@")',
    506                 'remote_assistance_host_bundle_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_REMOTE_ASSISTANCE_HOST_BUNDLE_NAME@")',
    507                 'me2me_host_path':
    508                     '/Library/PrivilegedHelperTools/<(me2me_host_bundle_name)/Contents/MacOS/<(native_messaging_host_bundle_name)/Contents/MacOS/native_messaging_host',
    509                 'it2me_host_path':
    510                     '/Library/PrivilegedHelperTools/<(me2me_host_bundle_name)/Contents/MacOS/<(remote_assistance_host_bundle_name)/Contents/MacOS/remote_assistance_host',
    511               },
    512             }],
    513             [ 'OS != "mac" and OS != "win"', {
    514               'variables': {
    515                 'me2me_host_path':
    516                     '/opt/google/chrome-remote-desktop/native-messaging-host',
    517                 'it2me_host_path':
    518                     '/opt/google/chrome-remote-desktop/remote-assistance-host',
    519               },
    520             }],
    521           ],  # conditions
    522           'sources': [
    523             'host/it2me/com.google.chrome.remote_assistance.json.jinja2',
    524             'host/setup/com.google.chrome.remote_desktop.json.jinja2',
    525           ],
    526           'rules': [{
    527             'rule_name': 'generate_manifest',
    528             'extension': 'jinja2',
    529             'inputs': [
    530               '<(remoting_localize_path)',
    531               '<(branding_path)',
    532             ],
    533             'outputs': [
    534               '<(PRODUCT_DIR)/remoting/<(RULE_INPUT_ROOT)',
    535             ],
    536             'action': [
    537               'python', '<(remoting_localize_path)',
    538               '--define', 'ME2ME_HOST_PATH=<(me2me_host_path)',
    539               '--define', 'IT2ME_HOST_PATH=<(it2me_host_path)',
    540               '--variables', '<(branding_path)',
    541               '--template', '<(RULE_INPUT_PATH)',
    542               '--locale_output', '<@(_outputs)',
    543               'en',
    544             ],
    545           }],
    546         },  # end of target 'remoting_native_messaging_manifests'
    547         {
    548           'target_name': 'remoting_start_host',
    549           'type': 'executable',
    550           'dependencies': [
    551             'remoting_host_setup_base',
    552           ],
    553           'sources': [
    554             'host/setup/host_starter.cc',
    555             'host/setup/host_starter.h',
    556             'host/setup/start_host.cc',
    557           ],
    558           'conditions': [
    559             ['OS=="linux" and use_allocator!="none"', {
    560               'dependencies': [
    561                 '../base/allocator/allocator.gyp:allocator',
    562               ],
    563             }],
    564           ],
    565         },  # end of target 'remoting_start_host'
    566         {
    567           'target_name': 'remoting_infoplist_strings',
    568           'type': 'none',
    569           'dependencies': [
    570             'remoting_resources',
    571           ],
    572           'sources': [
    573             'host/remoting_me2me_host-InfoPlist.strings.jinja2',
    574             'host/mac/me2me_preference_pane-InfoPlist.strings.jinja2',
    575             'host/installer/mac/uninstaller/remoting_uninstaller-InfoPlist.strings.jinja2',
    576             'host/setup/native_messaging_host-InfoPlist.strings.jinja2',
    577             'host/it2me/remote_assistance_host-InfoPlist.strings.jinja2',
    578           ],
    579           'rules': [{
    580             'rule_name': 'generate_strings',
    581             'extension': 'jinja2',
    582             'inputs': [
    583               '<(remoting_localize_path)',
    584             ],
    585             'outputs': [
    586               '<!@pymod_do_main(remoting_localize --locale_output '
    587                   '"<(SHARED_INTERMEDIATE_DIR)/remoting/<(RULE_INPUT_ROOT)/@{json_suffix}.lproj/InfoPlist.strings" '
    588                   '--print_only <(remoting_locales))',
    589             ],
    590             'action': [
    591               'python', '<(remoting_localize_path)',
    592               '--locale_dir', '<(webapp_locale_dir)',
    593               '--template', '<(RULE_INPUT_PATH)',
    594               '--locale_output',
    595               '<(SHARED_INTERMEDIATE_DIR)/remoting/<(RULE_INPUT_ROOT)/@{json_suffix}.lproj/InfoPlist.strings',
    596               '<@(remoting_locales)',
    597             ]},
    598           ],
    599         },  # end of target 'remoting_infoplist_strings'
    600       ],  # end of 'targets'
    601     }],  # 'enable_remoting_host==1'
    602 
    603     ['enable_me2me_host==1', {
    604       'targets': [
    605         {
    606           'target_name': 'remoting_me2me_host_static',
    607           'type': 'static_library',
    608           'variables': { 'enable_wexit_time_destructors': 1, },
    609           'dependencies': [
    610             '../base/base.gyp:base',
    611             '../base/base.gyp:base_i18n',
    612             '../net/net.gyp:net',
    613             '../third_party/webrtc/modules/modules.gyp:desktop_capture',
    614             'remoting_base',
    615             'remoting_breakpad',
    616             'remoting_host',
    617             'remoting_protocol',
    618           ],
    619           'defines': [
    620             'VERSION=<(version_full)',
    621           ],
    622           'sources': [
    623             'host/curtain_mode.h',
    624             'host/curtain_mode_linux.cc',
    625             'host/curtain_mode_mac.cc',
    626             'host/curtain_mode_win.cc',
    627             'host/posix/signal_handler.cc',
    628             'host/posix/signal_handler.h',
    629           ],
    630           'conditions': [
    631             ['os_posix != 1', {
    632               'sources/': [
    633                 ['exclude', '^host/posix/'],
    634               ],
    635             }],
    636           ],  # end of 'conditions'
    637         },  # end of target 'remoting_me2me_host_static'
    638       ] # end of targets
    639     }], # end of enable_me2me_host==1
    640 
    641     ['enable_it2me_host==1', {
    642       'targets': [
    643         {
    644           'target_name': 'remoting_it2me_host_static',
    645           'type': 'static_library',
    646           'variables': { 'enable_wexit_time_destructors': 1, },
    647           'dependencies': [
    648             '../base/base.gyp:base_i18n',
    649             '../net/net.gyp:net',
    650             'remoting_base',
    651             'remoting_host',
    652             'remoting_infoplist_strings',
    653             'remoting_protocol',
    654             'remoting_resources',
    655           ],
    656           'defines': [
    657             'VERSION=<(version_full)',
    658           ],
    659           'sources': [
    660             'host/it2me/it2me_host.cc',
    661             'host/it2me/it2me_host.h',
    662             'host/it2me/it2me_native_messaging_host.cc',
    663             'host/it2me/it2me_native_messaging_host.h',
    664           ],
    665         },  # end of target 'remoting_it2me_host_static'
    666       ] # end of targets
    667     }], # end of 'enable_it2me_host==1'
    668 
    669     ['OS!="win" and enable_me2me_host==1', {
    670       'targets': [
    671         {
    672           'target_name': 'remoting_me2me_host',
    673           'type': 'executable',
    674           'variables': { 'enable_wexit_time_destructors': 1, },
    675           'dependencies': [
    676             '../base/base.gyp:base',
    677             '../base/base.gyp:base_i18n',
    678             '<(icu_gyp_path):icudata',
    679             '../net/net.gyp:net',
    680             '../third_party/webrtc/modules/modules.gyp:desktop_capture',
    681             'remoting_base',
    682             'remoting_breakpad',
    683             'remoting_host',
    684             'remoting_infoplist_strings',
    685             'remoting_me2me_host_static',
    686             'remoting_protocol',
    687           ],
    688           'defines': [
    689             'VERSION=<(version_full)',
    690           ],
    691           'sources': [
    692             'host/host_main.cc',
    693             'host/host_main.h',
    694           ],
    695           'conditions': [
    696             ['OS=="mac"', {
    697               'mac_bundle': 1,
    698               'variables': {
    699                  'host_bundle_id': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_HOST_BUNDLE_ID@")',
    700               },
    701               'xcode_settings': {
    702                 'INFOPLIST_FILE': 'host/remoting_me2me_host-Info.plist',
    703                 'INFOPLIST_PREPROCESS': 'YES',
    704                 'INFOPLIST_PREPROCESSOR_DEFINITIONS': 'VERSION_FULL="<(version_full)" VERSION_SHORT="<(version_short)" BUNDLE_ID="<(host_bundle_id)"',
    705               },
    706               'mac_bundle_resources': [
    707                 '<(PRODUCT_DIR)/icudtl.dat',
    708                 'host/disconnect_window.xib',
    709                 'host/remoting_me2me_host.icns',
    710                 'host/remoting_me2me_host-Info.plist',
    711                 '<!@pymod_do_main(remoting_copy_locales -o -p <(OS) -x <(PRODUCT_DIR) <(remoting_locales))',
    712 
    713                 # Localized strings for 'Info.plist'
    714                 '<!@pymod_do_main(remoting_localize --locale_output '
    715                     '"<(SHARED_INTERMEDIATE_DIR)/remoting/remoting_me2me_host-InfoPlist.strings/@{json_suffix}.lproj/InfoPlist.strings" '
    716                     '--print_only <(remoting_locales))',
    717               ],
    718               'mac_bundle_resources!': [
    719                 'host/remoting_me2me_host-Info.plist',
    720               ],
    721               'conditions': [
    722                 ['mac_breakpad==1', {
    723                   'variables': {
    724                     # A real .dSYM is needed for dump_syms to operate on.
    725                     'mac_real_dsym': 1,
    726                   },
    727                   'copies': [
    728                     {
    729                       'destination': '<(PRODUCT_DIR)/$(CONTENTS_FOLDER_PATH)/Resources',
    730                       'files': [
    731                         '<(PRODUCT_DIR)/crash_inspector',
    732                         '<(PRODUCT_DIR)/crash_report_sender.app'
    733                       ],
    734                     },
    735                   ],
    736                   'dependencies': [
    737                     '../breakpad/breakpad.gyp:dump_syms',
    738                   ],
    739                   'postbuilds': [
    740                     {
    741                       'postbuild_name': 'Dump Symbols',
    742                       'variables': {
    743                         'dump_product_syms_path':
    744                             'scripts/mac/dump_product_syms',
    745                       },
    746                       'action': [
    747                         '<(dump_product_syms_path)',
    748                         '<(version_full)',
    749                       ],
    750                     },  # end of postbuild 'dump_symbols'
    751                   ],  # end of 'postbuilds'
    752                 }],  # mac_breakpad==1
    753               ],  # conditions
    754             }],  # OS=mac
    755             ['OS=="linux" and use_allocator!="none"', {
    756               'dependencies': [
    757                 '../base/allocator/allocator.gyp:allocator',
    758               ],
    759             }],  # OS=linux
    760           ],  # end of 'conditions'
    761         },  # end of target 'remoting_me2me_host'
    762         {
    763           'target_name': 'remoting_me2me_native_messaging_host',
    764           'type': 'executable',
    765           'product_name': 'native_messaging_host',
    766           'variables': { 'enable_wexit_time_destructors': 1, },
    767           'dependencies': [
    768             '../base/base.gyp:base',
    769             'remoting_breakpad',
    770             'remoting_host',
    771             'remoting_host_setup_base',
    772             'remoting_infoplist_strings',
    773             'remoting_native_messaging_base',
    774           ],
    775           'defines': [
    776             'VERSION=<(version_full)',
    777           ],
    778           'sources': [
    779             'host/setup/me2me_native_messaging_host_entry_point.cc',
    780             'host/setup/me2me_native_messaging_host_main.cc',
    781             'host/setup/me2me_native_messaging_host_main.h',
    782           ],
    783           'conditions': [
    784             ['OS=="linux" and use_allocator!="none"', {
    785               'dependencies': [
    786                 '../base/allocator/allocator.gyp:allocator',
    787               ],
    788             }],
    789             ['OS=="mac"', {
    790               'mac_bundle': 1,
    791               'variables': {
    792                  'host_bundle_id': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_NATIVE_MESSAGING_HOST_BUNDLE_ID@")',
    793               },
    794               'xcode_settings': {
    795                 'INFOPLIST_FILE': 'host/setup/native_messaging_host-Info.plist',
    796                 'INFOPLIST_PREPROCESS': 'YES',
    797                 'INFOPLIST_PREPROCESSOR_DEFINITIONS': 'VERSION_FULL="<(version_full)" VERSION_SHORT="<(version_short)" BUNDLE_ID="<(host_bundle_id)"',
    798               },
    799               'mac_bundle_resources': [
    800                 'host/setup/native_messaging_host-Info.plist',
    801                 '<!@pymod_do_main(remoting_copy_locales -o -p <(OS) -x <(PRODUCT_DIR) <(remoting_locales))',
    802 
    803                 # Localized strings for 'Info.plist'
    804                 '<!@pymod_do_main(remoting_localize --locale_output '
    805                     '"<(SHARED_INTERMEDIATE_DIR)/remoting/native_messaging_host-InfoPlist.strings/@{json_suffix}.lproj/InfoPlist.strings" '
    806                     '--print_only <(remoting_locales))',
    807               ],
    808               'mac_bundle_resources!': [
    809                 'host/setup/native_messaging_host-Info.plist',
    810               ],
    811               'conditions': [
    812                 ['mac_breakpad==1', {
    813                   'variables': {
    814                     # A real .dSYM is needed for dump_syms to operate on.
    815                     'mac_real_dsym': 1,
    816                   },
    817                   'copies': [
    818                     {
    819                       'destination': '<(PRODUCT_DIR)/$(CONTENTS_FOLDER_PATH)/Resources',
    820                       'files': [
    821                         '<(PRODUCT_DIR)/crash_inspector',
    822                         '<(PRODUCT_DIR)/crash_report_sender.app'
    823                       ],
    824                     },
    825                   ],
    826                   'dependencies': [
    827                     '../breakpad/breakpad.gyp:dump_syms',
    828                   ],
    829                   'postbuilds': [
    830                     {
    831                       'postbuild_name': 'Dump Symbols',
    832                       'variables': {
    833                         'dump_product_syms_path':
    834                             'scripts/mac/dump_product_syms',
    835                       },
    836                       'action': [
    837                         '<(dump_product_syms_path)',
    838                         '<(version_full)',
    839                       ],
    840                     },  # end of postbuild 'dump_symbols'
    841                   ],  # end of 'postbuilds'
    842                 }],  # mac_breakpad==1
    843               ],  # conditions
    844             }],  # OS=mac
    845           ],
    846         },  # end of target 'remoting_me2me_native_messaging_host'
    847       ], # targets
    848     }], # end of OS!="win" and enable_me2me_host==1
    849 
    850     ['OS!="win" and enable_it2me_host==1', {
    851       'targets': [
    852         {
    853           'target_name': 'remoting_it2me_native_messaging_host',
    854           'type': 'executable',
    855           'product_name': 'remote_assistance_host',
    856           'variables': { 'enable_wexit_time_destructors': 1, },
    857           'dependencies': [
    858             '../base/base.gyp:base',
    859             'remoting_base',
    860             'remoting_breakpad',
    861             'remoting_host',
    862             'remoting_it2me_host_static',
    863             'remoting_native_messaging_base',
    864             'remoting_protocol',
    865           ],
    866           'defines': [
    867             'VERSION=<(version_full)',
    868           ],
    869           'sources': [
    870             'host/it2me/it2me_native_messaging_host_entry_point.cc',
    871             'host/it2me/it2me_native_messaging_host_main.cc',
    872             'host/it2me/it2me_native_messaging_host_main.h',
    873           ],
    874           'conditions': [
    875             ['OS=="linux" and chromeos==0', {
    876               'dependencies': [
    877                 # Always use GTK on Linux, even for Aura builds.
    878                 '../build/linux/system.gyp:gtk',
    879               ],
    880             }],
    881             ['OS=="linux" and use_allocator!="none"', {
    882               'dependencies': [
    883                 '../base/allocator/allocator.gyp:allocator',
    884               ],
    885             }],
    886             ['OS=="mac"', {
    887               'mac_bundle': 1,
    888               'variables': {
    889                  'host_bundle_id': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_REMOTE_ASSISTANCE_HOST_BUNDLE_ID@")',
    890               },
    891               'xcode_settings': {
    892                 'INFOPLIST_FILE': 'host/it2me/remote_assistance_host-Info.plist',
    893                 'INFOPLIST_PREPROCESS': 'YES',
    894                 'INFOPLIST_PREPROCESSOR_DEFINITIONS': 'VERSION_FULL="<(version_full)" VERSION_SHORT="<(version_short)" BUNDLE_ID="<(host_bundle_id)"',
    895               },
    896               'mac_bundle_resources': [
    897                 '<(PRODUCT_DIR)/icudtl.dat',
    898                 'host/disconnect_window.xib',
    899                 'host/it2me/remote_assistance_host-Info.plist',
    900                 '<!@pymod_do_main(remoting_copy_locales -o -p <(OS) -x <(PRODUCT_DIR) <(remoting_locales))',
    901 
    902                 # Localized strings for 'Info.plist'
    903                 '<!@pymod_do_main(remoting_localize --locale_output '
    904                     '"<(SHARED_INTERMEDIATE_DIR)/remoting/remote_assistance_host-InfoPlist.strings/@{json_suffix}.lproj/InfoPlist.strings" '
    905                     '--print_only <(remoting_locales))',
    906               ],
    907               'mac_bundle_resources!': [
    908                 'host/it2me/remote_assistance_host-Info.plist',
    909               ],
    910               'conditions': [
    911                 ['mac_breakpad==1', {
    912                   'variables': {
    913                     # A real .dSYM is needed for dump_syms to operate on.
    914                     'mac_real_dsym': 1,
    915                   },
    916                   'copies': [
    917                     {
    918                       'destination': '<(PRODUCT_DIR)/$(CONTENTS_FOLDER_PATH)/Resources',
    919                       'files': [
    920                         '<(PRODUCT_DIR)/crash_inspector',
    921                         '<(PRODUCT_DIR)/crash_report_sender.app'
    922                       ],
    923                     },
    924                   ],
    925                   'dependencies': [
    926                     '../breakpad/breakpad.gyp:dump_syms',
    927                   ],
    928                   'postbuilds': [
    929                     {
    930                       'postbuild_name': 'Dump Symbols',
    931                       'variables': {
    932                         'dump_product_syms_path':
    933                             'scripts/mac/dump_product_syms',
    934                       },
    935                       'action': [
    936                         '<(dump_product_syms_path)',
    937                         '<(version_full)',
    938                       ],
    939                     },  # end of postbuild 'dump_symbols'
    940                   ],  # end of 'postbuilds'
    941                 }],  # mac_breakpad==1
    942               ],  # conditions
    943             }],  # OS=mac
    944           ],
    945         },  # end of target 'remoting_it2me_native_messaging_host'
    946       ],  # end of 'targets'
    947     }],  # # end of OS!="win" and enable_it2me_host==1
    948 
    949   ],  # end of 'conditions'
    950 }
    951