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