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.
9 # Set this to run the jscompile checks after building the webapp.
14 # Enable the multi-process host on Windows by default.
16 'remoting_multi_process%': 1,
18 'remoting_multi_process%': 0,
23 'remoting_multi_process%': '<(remoting_multi_process)',
24 'remoting_rdp_session%': 1,
26 'remoting_localize_path': 'tools/build/remoting_localize.py',
28 'branding_path': '../remoting/branding_<(branding)',
30 'webapp_locale_dir': '<(SHARED_INTERMEDIATE_DIR)/remoting/webapp/_locales',
32 'host_plugin_mime_type': 'application/vnd.chromium.remoting-host',
36 'mac_bundle_id': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_BUNDLE_ID@")',
37 'mac_creator': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_CREATOR@")',
38 'host_plugin_extension': 'plugin',
39 'host_plugin_prefix': '',
41 ['os_posix == 1 and OS != "mac" and target_arch == "ia32"', {
43 'host_plugin_extension': 'ia32.so',
44 'host_plugin_prefix': 'lib',
46 ['os_posix == 1 and OS != "mac" and target_arch == "x64"', {
48 'host_plugin_extension': 'x64.so',
49 'host_plugin_prefix': 'lib',
51 ['os_posix == 1 and OS != "mac" and target_arch == "arm"', {
52 'host_plugin_extension': 'arm.so',
53 'host_plugin_prefix': 'lib',
55 ['os_posix == 1 and OS != "mac" and target_arch == "mipsel"', {
56 'host_plugin_extension': 'mipsel.so',
57 'host_plugin_prefix': 'lib',
60 'host_plugin_extension': 'dll',
61 'host_plugin_prefix': '',
63 # Each CLSID is a hash of the current version string salted with an
64 # arbitrary GUID. This ensures that the newly installed COM classes will
65 # be used during/after upgrade even if there are old instances running
67 # The IDs are not random to avoid rebuilding host when it's not
69 'daemon_controller_clsid':
70 '<!(python -c "import uuid; print uuid.uuid5(uuid.UUID(\'655bd819-c08c-4b04-80c2-f160739ff6ef\'), \'<(version_full)\')")',
71 'rdp_desktop_session_clsid':
72 '<!(python -c "import uuid; print uuid.uuid5(uuid.UUID(\'6a7699f0-ee43-43e7-aa30-a6738f9bd470\'), \'<(version_full)\')")',
76 'ar', 'bg', 'ca', 'cs', 'da', 'de', 'el', 'en', 'en-GB', 'es',
77 'es-419', 'et', 'fi', 'fil', 'fr', 'he', 'hi', 'hr', 'hu', 'id',
78 'it', 'ja', 'ko', 'lt', 'lv', 'nb', 'nl', 'pl', 'pt-BR', 'pt-PT',
79 'ro', 'ru', 'sk', 'sl', 'sr', 'sv', 'th', 'tr', 'uk', 'vi',
82 'remoting_locale_files': [
83 # Build the list of .pak files generated from remoting_strings.grd.
84 '<!@pymod_do_main(remoting_copy_locales -o -p <(OS) -x '
85 '<(PRODUCT_DIR) <(remoting_locales))',
87 'remoting_webapp_locale_files': [
88 # Build the list of .json files generated from remoting_strings.grd.
89 '<!@pymod_do_main(remoting_localize --locale_output '
90 '"<(webapp_locale_dir)/@{json_suffix}/messages.json" '
91 '--print_only <(remoting_locales))',
96 '../chrome/js_unittest_vars.gypi',
97 'remoting_android.gypi',
98 'remoting_client.gypi',
100 'remoting_test.gypi',
101 'remoting_version.gypi',
102 'remoting_webapp_files.gypi',
109 'BINARY_HOST_ME2ME=3',
110 'BINARY_HOST_PLUGIN=4',
111 'BINARY_NATIVE_MESSAGING_HOST=5',
112 'BINARY_REMOTE_ASSISTANCE_HOST=6',
115 '..', # Root of Chrome checkout
118 'win_debug_RuntimeChecks': '0',
121 ['OS=="mac" and mac_breakpad==1', {
123 'REMOTING_ENABLE_BREAKPAD'
126 ['OS=="win" and buildtype == "Official"', {
128 'REMOTING_ENABLE_BREAKPAD'
131 ['OS=="win" and remoting_multi_process != 0 and \
132 remoting_rdp_session != 0', {
134 'REMOTING_RDP_SESSION',
137 ['remoting_multi_process != 0', {
139 'REMOTING_MULTI_PROCESS',
147 'target_name': 'remoting_breakpad',
148 'type': 'static_library',
149 'variables': { 'enable_wexit_time_destructors': 1, },
151 '../base/base.gyp:base',
155 'base/breakpad_linux.cc',
156 'base/breakpad_mac.mm',
157 'base/breakpad_win.cc',
162 '../breakpad/breakpad.gyp:breakpad',
167 '../breakpad/breakpad.gyp:breakpad_handler',
171 }, # end of target 'remoting_breakpad'
173 # TODO(garykac): This target should be moved into remoting_client.gypi.
174 # It can't currently because of an issue with GYP where initialized
175 # path variables in gypi includes cause a GYP failure.
176 # See crrev.com/15968005 and crrev.com/15972007 for context.
178 'target_name': 'remoting_webapp',
181 'remoting_webapp_patch_files': [
182 'webapp/appsv2.patch',
184 'remoting_webapp_apps_v2_js_files': [
185 'webapp/background.js',
187 'output_dir': '<(PRODUCT_DIR)/remoting/remoting.webapp',
188 'zip_path': '<(PRODUCT_DIR)/remoting-webapp.zip',
189 'generated_html_files': [
190 '<(SHARED_INTERMEDIATE_DIR)/main.html',
191 '<(SHARED_INTERMEDIATE_DIR)/wcs_sandbox.html',
195 'remoting_resources',
196 'remoting_host_plugin',
197 'remoting_webapp_html',
200 '<@(remoting_webapp_locale_files)',
203 ['enable_remoting_host==1', {
205 '<@(remoting_locale_files)',
208 'plugin_path': '<(PRODUCT_DIR)/<(host_plugin_prefix)remoting_host_plugin.<(host_plugin_extension)',
215 'remoting_host_plugin',
218 ['run_jscompile != 0', {
220 'success_stamp': '<(PRODUCT_DIR)/remoting_webapp_jscompile.stamp',
224 'action_name': 'Verify remoting webapp',
226 '<@(remoting_webapp_all_js_files)',
227 '<@(remoting_webapp_js_proto_files)',
233 'python', 'tools/jscompile.py',
234 '<@(remoting_webapp_all_js_files)',
235 '<@(remoting_webapp_js_proto_files)',
245 'action_name': 'Build Remoting WebApp',
247 'webapp/build-webapp.py',
248 '<(chrome_version_path)',
249 '<(remoting_version_path)',
250 '<@(generated_html_files)',
251 '<@(remoting_webapp_files)',
255 ['enable_remoting_host==1', {
266 'python', 'webapp/build-webapp.py',
269 '<(host_plugin_mime_type)',
273 '<@(generated_html_files)',
274 '<@(remoting_webapp_files)',
280 'target_conditions': [
281 # We cannot currently build the appsv2 version of WebApp on Windows as
282 # there isn't a version of the "patch" tool available on windows. We
283 # should remove this condition when we remove the reliance on patch.
285 # We define this in a 'target_conditions' section because 'plugin_path'
286 # is defined in a 'conditions' section so its value is not available
287 # when gyp processes the 'actions' in a 'conditions" section.
291 'action_name': 'Build Remoting WebApp V2',
292 'output_dir': '<(PRODUCT_DIR)/remoting/remoting.webapp.v2',
293 'zip_path': '<(PRODUCT_DIR)/remoting-webapp.v2.zip',
295 'webapp/build-webapp.py',
296 '<(chrome_version_path)',
297 '<(remoting_version_path)',
298 '<@(remoting_webapp_apps_v2_js_files)',
299 '<@(remoting_webapp_files)',
300 '<@(remoting_webapp_locale_files)',
301 '<@(remoting_webapp_patch_files)',
304 ['enable_remoting_host==1', {
315 'python', 'webapp/build-webapp.py',
318 '<(host_plugin_mime_type)',
322 '<@(remoting_webapp_apps_v2_js_files)',
323 '<@(remoting_webapp_files)',
325 '<@(remoting_webapp_locale_files)',
327 '<@(remoting_webapp_patch_files)',
333 }, # end of target 'remoting_webapp'
336 'target_name': 'remoting_webapp_html',
340 'action_name': 'Build Remoting Webapp main.html',
342 'webapp/build-html.py',
343 '<(remoting_webapp_template_main)',
344 '<@(remoting_webapp_template_files)',
347 '<(SHARED_INTERMEDIATE_DIR)/main.html',
350 'python', 'webapp/build-html.py',
351 '<(SHARED_INTERMEDIATE_DIR)/main.html',
352 '<(remoting_webapp_template_main)',
353 '<@(remoting_webapp_main_html_js_files)',
357 'action_name': 'Build Remoting Webapp wcs_sandbox.html',
359 'webapp/build-html.py',
360 '<(remoting_webapp_template_wcs_sandbox)',
363 '<(SHARED_INTERMEDIATE_DIR)/wcs_sandbox.html',
366 'python', 'webapp/build-html.py',
367 '<(SHARED_INTERMEDIATE_DIR)/wcs_sandbox.html',
368 '<(remoting_webapp_template_wcs_sandbox)',
369 '<@(remoting_webapp_wcs_sandbox_html_js_files)',
373 }, # end of target 'remoting_webapp_html'
376 'target_name': 'remoting_resources',
379 'remoting_webapp_html',
382 'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)',
383 'grit_resource_ids': 'resources/resource_ids',
385 '<(SHARED_INTERMEDIATE_DIR)/main.html',
386 'base/resources_unittest.cc',
387 'host/continue_window_mac.mm',
388 'host/disconnect_window_mac.mm',
389 'host/installer/mac/uninstaller/remoting_uninstaller-InfoPlist.strings.jinja2',
390 'host/mac/me2me_preference_pane-InfoPlist.strings.jinja2',
391 'host/plugin/host_plugin-InfoPlist.strings.jinja2',
392 'host/win/core.rc.jinja2',
393 'host/win/host_messages.mc.jinja2',
394 'host/win/version.rc.jinja2',
395 'webapp/background.js',
396 'webapp/butter_bar.js',
397 'webapp/client_screen.js',
399 'webapp/host_list.js',
400 'webapp/host_setup_dialog.js',
401 'webapp/host_table_entry.js',
402 'webapp/manifest.json',
403 'webapp/paired_client_manager.js',
404 'webapp/remoting.js',
409 'action_name': 'verify_resources',
411 'resources/remoting_strings.grd',
412 'tools/verify_resources.py',
416 '<(PRODUCT_DIR)/remoting_resources_verified.stamp',
420 'tools/verify_resources.py',
421 '-t', '<(PRODUCT_DIR)/remoting_resources_verified.stamp',
422 '-r', 'resources/remoting_strings.grd',
427 'action_name': 'remoting_strings',
429 'grit_grd_file': 'resources/remoting_strings.grd',
431 'includes': [ '../build/grit_action.gypi' ],
434 'action_name': 'copy_locales',
436 'copy_output_dir%': '<(PRODUCT_DIR)',
439 'tools/build/remoting_copy_locales.py',
440 '<!@pymod_do_main(remoting_copy_locales -i -p <(OS) -g <(grit_out_dir) <(remoting_locales))'
443 '<!@pymod_do_main(remoting_copy_locales -o -p <(OS) -x <(copy_output_dir) <(remoting_locales))'
446 'python', 'tools/build/remoting_copy_locales.py',
448 '-g', '<(grit_out_dir)',
449 '-x', '<(copy_output_dir)/.',
450 '<@(remoting_locales)',
454 'includes': [ '../build/grit_target.gypi' ],
455 }, # end of target 'remoting_resources'
458 'target_name': 'remoting_base',
459 'type': 'static_library',
460 'variables': { 'enable_wexit_time_destructors': 1, },
462 '../base/base.gyp:base',
463 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
464 '../ui/gfx/gfx.gyp:gfx',
465 '../ui/gfx/gfx.gyp:gfx_geometry',
467 '../net/net.gyp:net',
468 '../third_party/libvpx/libvpx.gyp:libvpx',
469 '../third_party/libyuv/libyuv.gyp:libyuv',
470 '../third_party/opus/opus.gyp:opus',
471 '../third_party/protobuf/protobuf.gyp:protobuf_lite',
472 '../media/media.gyp:media',
473 '../media/media.gyp:shared_memory_support',
474 'remoting_resources',
475 'proto/chromotocol.gyp:chromotocol_proto_lib',
476 '../third_party/webrtc/modules/modules.gyp:desktop_capture',
478 'export_dependent_settings': [
479 '../base/base.gyp:base',
480 '../net/net.gyp:net',
481 '../third_party/protobuf/protobuf.gyp:protobuf_lite',
482 'proto/chromotocol.gyp:chromotocol_proto_lib',
484 # This target needs a hard dependency because dependent targets
485 # depend on chromotocol_proto_lib for headers.
486 'hard_dependency': 1,
488 'base/auth_token_util.cc',
489 'base/auth_token_util.h',
490 'base/auto_thread.cc',
491 'base/auto_thread.h',
492 'base/auto_thread_task_runner.cc',
493 'base/auto_thread_task_runner.h',
494 'base/capabilities.cc',
495 'base/capabilities.h',
496 'base/compound_buffer.cc',
497 'base/compound_buffer.h',
500 'base/plugin_thread_task_runner.cc',
501 'base/plugin_thread_task_runner.h',
502 'base/rate_counter.cc',
503 'base/rate_counter.h',
505 'base/resources_linux.cc',
506 'base/resources_mac.cc',
507 'base/resources_win.cc',
508 'base/rsa_key_pair.cc',
509 'base/rsa_key_pair.h',
510 'base/running_average.cc',
511 'base/running_average.h',
512 'base/scoped_sc_handle_win.h',
513 'base/socket_reader.cc',
514 'base/socket_reader.h',
515 'base/typed_buffer.h',
516 'base/url_request_context.cc',
517 'base/url_request_context.h',
520 'base/vlog_net_log.cc',
521 'base/vlog_net_log.h',
522 'codec/audio_decoder.cc',
523 'codec/audio_decoder.h',
524 'codec/audio_decoder_opus.cc',
525 'codec/audio_decoder_opus.h',
526 'codec/audio_decoder_verbatim.cc',
527 'codec/audio_decoder_verbatim.h',
528 'codec/audio_encoder.h',
529 'codec/audio_encoder_opus.cc',
530 'codec/audio_encoder_opus.h',
531 'codec/audio_encoder_verbatim.cc',
532 'codec/audio_encoder_verbatim.h',
533 'codec/scoped_vpx_codec.cc',
534 'codec/scoped_vpx_codec.h',
535 'codec/video_decoder.h',
536 'codec/video_decoder_verbatim.cc',
537 'codec/video_decoder_verbatim.h',
538 'codec/video_decoder_vpx.cc',
539 'codec/video_decoder_vpx.h',
540 'codec/video_encoder.h',
541 'codec/video_encoder_verbatim.cc',
542 'codec/video_encoder_verbatim.h',
543 'codec/video_encoder_vpx.cc',
544 'codec/video_encoder_vpx.h',
546 }, # end of target 'remoting_base'
549 'target_name': 'remoting_protocol',
550 'type': 'static_library',
551 'variables': { 'enable_wexit_time_destructors': 1, },
553 '../base/base.gyp:base',
554 '../crypto/crypto.gyp:crypto',
555 '../jingle/jingle.gyp:jingle_glue',
556 '../jingle/jingle.gyp:notifier',
557 '../net/net.gyp:net',
558 '../third_party/libjingle/libjingle.gyp:libjingle',
561 'export_dependent_settings': [
562 '../third_party/libjingle/libjingle.gyp:libjingle',
565 'jingle_glue/chromium_port_allocator.cc',
566 'jingle_glue/chromium_port_allocator.h',
567 'jingle_glue/chromium_socket_factory.cc',
568 'jingle_glue/chromium_socket_factory.h',
569 'jingle_glue/iq_sender.cc',
570 'jingle_glue/iq_sender.h',
571 'jingle_glue/jingle_info_request.cc',
572 'jingle_glue/jingle_info_request.h',
573 'jingle_glue/network_settings.h',
574 'jingle_glue/signal_strategy.h',
575 'jingle_glue/xmpp_signal_strategy.cc',
576 'jingle_glue/xmpp_signal_strategy.h',
577 'protocol/audio_reader.cc',
578 'protocol/audio_reader.h',
579 'protocol/audio_stub.h',
580 'protocol/audio_writer.cc',
581 'protocol/audio_writer.h',
582 'protocol/auth_util.cc',
583 'protocol/auth_util.h',
584 'protocol/authentication_method.cc',
585 'protocol/authentication_method.h',
586 'protocol/authenticator.cc',
587 'protocol/authenticator.h',
588 'protocol/buffered_socket_writer.cc',
589 'protocol/buffered_socket_writer.h',
590 'protocol/channel_authenticator.h',
591 'protocol/channel_dispatcher_base.cc',
592 'protocol/channel_dispatcher_base.h',
593 'protocol/channel_multiplexer.cc',
594 'protocol/channel_multiplexer.h',
595 'protocol/client_control_dispatcher.cc',
596 'protocol/client_control_dispatcher.h',
597 'protocol/client_event_dispatcher.cc',
598 'protocol/client_event_dispatcher.h',
599 'protocol/client_stub.h',
600 'protocol/clipboard_echo_filter.cc',
601 'protocol/clipboard_echo_filter.h',
602 'protocol/clipboard_filter.cc',
603 'protocol/clipboard_filter.h',
604 'protocol/clipboard_stub.h',
605 'protocol/clipboard_thread_proxy.cc',
606 'protocol/clipboard_thread_proxy.h',
607 'protocol/connection_to_client.cc',
608 'protocol/connection_to_client.h',
609 'protocol/connection_to_host.cc',
610 'protocol/connection_to_host.h',
611 'protocol/content_description.cc',
612 'protocol/content_description.h',
614 'protocol/host_control_dispatcher.cc',
615 'protocol/host_control_dispatcher.h',
616 'protocol/host_event_dispatcher.cc',
617 'protocol/host_event_dispatcher.h',
618 'protocol/host_stub.h',
619 'protocol/input_event_tracker.cc',
620 'protocol/input_event_tracker.h',
621 'protocol/input_filter.cc',
622 'protocol/input_filter.h',
623 'protocol/input_stub.h',
624 'protocol/it2me_host_authenticator_factory.cc',
625 'protocol/it2me_host_authenticator_factory.h',
626 'protocol/jingle_messages.cc',
627 'protocol/jingle_messages.h',
628 'protocol/jingle_session.cc',
629 'protocol/jingle_session.h',
630 'protocol/jingle_session_manager.cc',
631 'protocol/jingle_session_manager.h',
632 'protocol/libjingle_transport_factory.cc',
633 'protocol/libjingle_transport_factory.h',
634 'protocol/me2me_host_authenticator_factory.cc',
635 'protocol/me2me_host_authenticator_factory.h',
636 'protocol/message_decoder.cc',
637 'protocol/message_decoder.h',
638 'protocol/message_reader.cc',
639 'protocol/message_reader.h',
640 'protocol/mouse_input_filter.cc',
641 'protocol/mouse_input_filter.h',
642 'protocol/name_value_map.h',
643 'protocol/negotiating_authenticator_base.cc',
644 'protocol/negotiating_authenticator_base.h',
645 'protocol/negotiating_client_authenticator.cc',
646 'protocol/negotiating_client_authenticator.h',
647 'protocol/negotiating_host_authenticator.cc',
648 'protocol/negotiating_host_authenticator.h',
649 'protocol/pairing_authenticator_base.cc',
650 'protocol/pairing_authenticator_base.h',
651 'protocol/pairing_client_authenticator.cc',
652 'protocol/pairing_client_authenticator.h',
653 'protocol/pairing_host_authenticator.cc',
654 'protocol/pairing_host_authenticator.h',
655 'protocol/pairing_registry.cc',
656 'protocol/pairing_registry.h',
657 'protocol/protobuf_video_reader.cc',
658 'protocol/protobuf_video_reader.h',
659 'protocol/protobuf_video_writer.cc',
660 'protocol/protobuf_video_writer.h',
661 'protocol/session.h',
662 'protocol/session_config.cc',
663 'protocol/session_config.h',
664 'protocol/session_manager.h',
665 'protocol/ssl_hmac_channel_authenticator.cc',
666 'protocol/ssl_hmac_channel_authenticator.h',
667 'protocol/transport.cc',
668 'protocol/transport.h',
671 'protocol/third_party_authenticator_base.cc',
672 'protocol/third_party_authenticator_base.h',
673 'protocol/third_party_client_authenticator.cc',
674 'protocol/third_party_client_authenticator.h',
675 'protocol/third_party_host_authenticator.cc',
676 'protocol/third_party_host_authenticator.h',
677 'protocol/v2_authenticator.cc',
678 'protocol/v2_authenticator.h',
679 'protocol/video_reader.cc',
680 'protocol/video_reader.h',
681 'protocol/video_stub.h',
682 'protocol/video_writer.cc',
683 'protocol/video_writer.h',
685 }, # end of target 'remoting_protocol'