Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / remoting / remoting.gyp
index eeb9882..1ac3b84 100644 (file)
@@ -6,6 +6,9 @@
   'variables': {
     'chromium_code': 1,
 
+    # Set this to run the jscompile checks after building the webapp.
+    'run_jscompile%': 0,
+
     'variables': {
       'conditions': [
         # Enable the multi-process host on Windows by default.
     'host_plugin_mime_type': 'application/vnd.chromium.remoting-host',
 
     'conditions': [
-      # Remoting host is supported only on Windows, OSX and Linux (with X11).
-      ['OS=="win" or OS=="mac" or (OS=="linux" and chromeos==0 and use_x11==1)', {
-        'enable_remoting_host': 1,
-      }, {
-        'enable_remoting_host': 0,
-      }],
       ['OS=="mac"', {
         'mac_bundle_id': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_BUNDLE_ID@")',
         'mac_creator': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_CREATOR@")',
       ['OS=="win"', {
         'host_plugin_extension': 'dll',
         'host_plugin_prefix': '',
-        # Use auto-generated CLSIDs to make sure that the newly installed COM
-        # classes will be used during/after upgrade even if there are old
-        # instances running already.
-        # The parameter at the end is ignored, but needed to make sure that the
-        # script will be invoked separately for each CLSID. Otherwise GYP will
-        # reuse the value returned by the first invocation of the script.
+
+        # Each CLSID is a hash of the current version string salted with an
+        # arbitrary GUID. This ensures that the newly installed COM classes will
+        # be used during/after upgrade even if there are old instances running
+        # already.
+        # The IDs are not random to avoid rebuilding host when it's not
+        # necessary.
         'daemon_controller_clsid':
-            '<!(python -c "import uuid; print uuid.uuid4()" 1)',
+            '<!(python -c "import uuid; print uuid.uuid5(uuid.UUID(\'655bd819-c08c-4b04-80c2-f160739ff6ef\'), \'<(version_full)\')")',
         'rdp_desktop_session_clsid':
-            '<!(python -c "import uuid; print uuid.uuid4()" 2)',
+            '<!(python -c "import uuid; print uuid.uuid5(uuid.UUID(\'6a7699f0-ee43-43e7-aa30-a6738f9bd470\'), \'<(version_full)\')")',
       }],
     ],
-
     'remoting_locales': [
       'ar', 'bg', 'ca', 'cs', 'da', 'de', 'el', 'en', 'en-GB', 'es',
       'es-419', 'et', 'fi', 'fil', 'fr', 'he', 'hi', 'hr', 'hu', 'id',
           '"<(webapp_locale_dir)/@{json_suffix}/messages.json" '
           '--print_only <(remoting_locales))',
     ],
-    'remoting_host_installer_mac_roots': [
-      'host/installer/mac/',
-      '<(DEPTH)/chrome/installer/mac/',
-    ],
-    'remoting_host_installer_mac_files': [
-      'host/installer/mac/do_signing.sh',
-      'host/installer/mac/do_signing.props',
-      'host/installer/mac/ChromotingHost.pkgproj',
-      'host/installer/mac/ChromotingHostService.pkgproj',
-      'host/installer/mac/ChromotingHostUninstaller.pkgproj',
-      'host/installer/mac/LaunchAgents/org.chromium.chromoting.plist',
-      'host/installer/mac/PrivilegedHelperTools/org.chromium.chromoting.me2me.sh',
-      'host/installer/mac/Config/org.chromium.chromoting.conf',
-      'host/installer/mac/Scripts/keystone_install.sh',
-      'host/installer/mac/Scripts/remoting_postflight.sh',
-      'host/installer/mac/Scripts/remoting_preflight.sh',
-      'host/installer/mac/Keystone/GoogleSoftwareUpdate.pkg',
-      '<(DEPTH)/chrome/installer/mac/pkg-dmg',
-    ],
-    'remoting_host_installer_win_roots': [
-      'host/installer/win/',
-    ],
-    'remoting_host_installer_win_files': [
-      'host/installer/win/chromoting.wxs',
-      'host/installer/win/parameters.json',
-    ],
   },
 
   'includes': [
     '../chrome/js_unittest_vars.gypi',
     'remoting_android.gypi',
-    'remoting_webapp.gypi',
+    'remoting_client.gypi',
+    'remoting_host.gypi',
+    'remoting_test.gypi',
     'remoting_version.gypi',
+    'remoting_webapp_files.gypi',
   ],
 
   'target_defaults': {
     ],
   },
 
-  'conditions': [
-    ['enable_remoting_host==1', {
-      'targets': [
-        {
-          'target_name': 'remoting_host',
-          'type': 'static_library',
-          'variables': { 'enable_wexit_time_destructors': 1, },
-          'dependencies': [
-            'remoting_base',
-            'remoting_protocol',
-            'remoting_resources',
-            '../crypto/crypto.gyp:crypto',
-            '../google_apis/google_apis.gyp:google_apis',
-            '../ipc/ipc.gyp:ipc',
-            '../third_party/webrtc/modules/modules.gyp:desktop_capture',
-            '../ui/events/events.gyp:dom4_keycode_converter',
-          ],
-          'defines': [
-            'VERSION=<(version_full)',
-          ],
-          'sources': [
-            'host/audio_capturer.cc',
-            'host/audio_capturer.h',
-            'host/audio_capturer_linux.cc',
-            'host/audio_capturer_linux.h',
-            'host/audio_capturer_mac.cc',
-            'host/audio_capturer_win.cc',
-            'host/audio_capturer_win.h',
-            'host/audio_scheduler.cc',
-            'host/audio_scheduler.h',
-            'host/audio_silence_detector.cc',
-            'host/audio_silence_detector.h',
-            'host/basic_desktop_environment.cc',
-            'host/basic_desktop_environment.h',
-            'host/branding.cc',
-            'host/branding.h',
-            'host/capture_scheduler.cc',
-            'host/capture_scheduler.h',
-            'host/chromoting_host.cc',
-            'host/chromoting_host.h',
-            'host/chromoting_host_context.cc',
-            'host/chromoting_host_context.h',
-            'host/chromoting_messages.cc',
-            'host/chromoting_messages.h',
-            'host/chromoting_param_traits.cc',
-            'host/chromoting_param_traits.h',
-            'host/client_session.cc',
-            'host/client_session.h',
-            'host/client_session_control.h',
-            'host/clipboard.h',
-            'host/clipboard_mac.mm',
-            'host/clipboard_win.cc',
-            'host/clipboard_x11.cc',
-            'host/config_file_watcher.cc',
-            'host/config_file_watcher.h',
-            'host/config_watcher.h',
-            'host/constants_mac.cc',
-            'host/constants_mac.h',
-            'host/continue_window.cc',
-            'host/continue_window.h',
-            'host/continue_window_aura.cc',
-            'host/continue_window_gtk.cc',
-            'host/continue_window_mac.mm',
-            'host/continue_window_win.cc',
-            'host/daemon_process.cc',
-            'host/daemon_process.h',
-            'host/daemon_process_win.cc',
-            'host/desktop_environment.h',
-            'host/desktop_process.cc',
-            'host/desktop_process.h',
-            'host/desktop_resizer.h',
-            'host/desktop_resizer_linux.cc',
-            'host/desktop_session.cc',
-            'host/desktop_session.h',
-            'host/desktop_session_agent.cc',
-            'host/desktop_session_agent.h',
-            'host/desktop_session_win.cc',
-            'host/desktop_session_win.h',
-            'host/desktop_resizer_mac.cc',
-            'host/desktop_resizer_win.cc',
-            'host/desktop_session_connector.h',
-            'host/desktop_session_proxy.cc',
-            'host/desktop_session_proxy.h',
-            'host/desktop_shape_tracker.h',
-            'host/desktop_shape_tracker_mac.cc',
-            'host/desktop_shape_tracker_win.cc',
-            'host/desktop_shape_tracker_x11.cc',
-            'host/disconnect_window_aura.cc',
-            'host/disconnect_window_gtk.cc',
-            'host/disconnect_window_mac.h',
-            'host/disconnect_window_mac.mm',
-            'host/disconnect_window_win.cc',
-            'host/dns_blackhole_checker.cc',
-            'host/dns_blackhole_checker.h',
-            'host/heartbeat_sender.cc',
-            'host/heartbeat_sender.h',
-            'host/host_change_notification_listener.cc',
-            'host/host_change_notification_listener.h',
-            'host/host_config.cc',
-            'host/host_config.h',
-            'host/host_event_logger.h',
-            'host/host_event_logger_posix.cc',
-            'host/host_event_logger_win.cc',
-            'host/host_exit_codes.cc',
-            'host/host_exit_codes.h',
-            'host/host_export.h',
-            'host/host_secret.cc',
-            'host/host_secret.h',
-            'host/host_status_monitor.h',
-            'host/host_status_observer.h',
-            'host/host_status_sender.cc',
-            'host/host_status_sender.h',
-            'host/host_window.h',
-            'host/host_window_proxy.cc',
-            'host/host_window_proxy.h',
-            'host/in_memory_host_config.cc',
-            'host/in_memory_host_config.h',
-            'host/input_injector.h',
-            'host/input_injector_linux.cc',
-            'host/input_injector_mac.cc',
-            'host/input_injector_win.cc',
-            'host/ipc_audio_capturer.cc',
-            'host/ipc_audio_capturer.h',
-            'host/ipc_constants.cc',
-            'host/ipc_constants.h',
-            'host/ipc_desktop_environment.cc',
-            'host/ipc_desktop_environment.h',
-            'host/ipc_host_event_logger.cc',
-            'host/ipc_host_event_logger.h',
-            'host/ipc_input_injector.cc',
-            'host/ipc_input_injector.h',
-            'host/ipc_screen_controls.cc',
-            'host/ipc_screen_controls.h',
-            'host/ipc_util.h',
-            'host/ipc_util_posix.cc',
-            'host/ipc_util_win.cc',
-            'host/ipc_video_frame_capturer.cc',
-            'host/ipc_video_frame_capturer.h',
-            'host/it2me_desktop_environment.cc',
-            'host/it2me_desktop_environment.h',
-            'host/json_host_config.cc',
-            'host/json_host_config.h',
-            'host/linux/audio_pipe_reader.cc',
-            'host/linux/audio_pipe_reader.h',
-            'host/linux/x11_util.cc',
-            'host/linux/x11_util.h',
-            'host/linux/x_server_clipboard.cc',
-            'host/linux/x_server_clipboard.h',
-            'host/local_input_monitor.h',
-            'host/local_input_monitor_linux.cc',
-            'host/local_input_monitor_mac.mm',
-            'host/local_input_monitor_win.cc',
-            'host/log_to_server.cc',
-            'host/log_to_server.h',
-            'host/logging.h',
-            'host/logging_posix.cc',
-            'host/logging_win.cc',
-            'host/me2me_desktop_environment.cc',
-            'host/me2me_desktop_environment.h',
-            'host/mouse_clamping_filter.cc',
-            'host/mouse_clamping_filter.h',
-            'host/pairing_registry_delegate.cc',
-            'host/pairing_registry_delegate.h',
-            'host/pairing_registry_delegate_linux.cc',
-            'host/pairing_registry_delegate_linux.h',
-            'host/pairing_registry_delegate_mac.cc',
-            'host/pairing_registry_delegate_win.cc',
-            'host/pairing_registry_delegate_win.h',
-            'host/pam_authorization_factory_posix.cc',
-            'host/pam_authorization_factory_posix.h',
-            'host/pin_hash.cc',
-            'host/pin_hash.h',
-            'host/policy_hack/policy_watcher.cc',
-            'host/policy_hack/policy_watcher.h',
-            'host/policy_hack/policy_watcher_linux.cc',
-            'host/policy_hack/policy_watcher_mac.mm',
-            'host/policy_hack/policy_watcher_win.cc',
-            'host/register_support_host_request.cc',
-            'host/register_support_host_request.h',
-            'host/remote_input_filter.cc',
-            'host/remote_input_filter.h',
-            'host/resizing_host_observer.cc',
-            'host/resizing_host_observer.h',
-            'host/sas_injector.h',
-            'host/sas_injector_win.cc',
-            'host/screen_controls.h',
-            'host/screen_resolution.cc',
-            'host/screen_resolution.h',
-            'host/server_log_entry.cc',
-            'host/server_log_entry.h',
-            'host/service_urls.cc',
-            'host/service_urls.h',
-            'host/session_manager_factory.cc',
-            'host/session_manager_factory.h',
-            'host/shaped_screen_capturer.cc',
-            'host/shaped_screen_capturer.h',
-            'host/signaling_connector.cc',
-            'host/signaling_connector.h',
-            'host/token_validator_factory_impl.cc',
-            'host/token_validator_factory_impl.h',
-            'host/usage_stats_consent.h',
-            'host/usage_stats_consent_mac.cc',
-            'host/usage_stats_consent_win.cc',
-            'host/username.cc',
-            'host/username.h',
-            'host/video_scheduler.cc',
-            'host/video_scheduler.h',
-            'host/win/com_security.cc',
-            'host/win/com_security.h',
-            'host/win/launch_process_with_token.cc',
-            'host/win/launch_process_with_token.h',
-            'host/win/omaha.cc',
-            'host/win/omaha.h',
-            'host/win/rdp_client.cc',
-            'host/win/rdp_client.h',
-            'host/win/rdp_client_window.cc',
-            'host/win/rdp_client_window.h',
-            'host/win/security_descriptor.cc',
-            'host/win/security_descriptor.h',
-            'host/win/session_desktop_environment.cc',
-            'host/win/session_desktop_environment.h',
-            'host/win/session_input_injector.cc',
-            'host/win/session_input_injector.h',
-            'host/win/window_station_and_desktop.cc',
-            'host/win/window_station_and_desktop.h',
-            'host/win/wts_terminal_monitor.cc',
-            'host/win/wts_terminal_monitor.h',
-            'host/win/wts_terminal_observer.h',
-          ],
-          'conditions': [
-            ['OS=="linux"', {
-              'dependencies': [
-                # Always use GTK on Linux, even for Aura builds.
-                #
-                # TODO(lambroslambrou): Once the DisconnectWindow and
-                # ContinueWindow classes have been implemented for Aura,
-                # remove this dependency.
-                '../build/linux/system.gyp:gtk',
-              ],
-              'link_settings': {
-                'libraries': [
-                  '-lX11',
-                  '-lXext',
-                  '-lXfixes',
-                  '-lXtst',
-                  '-lXi',
-                  '-lXrandr',
-                  '-lpam',
-                ],
-              },
-            }, {  # else OS != "linux"
-              'sources!': [
-                'host/continue_window_aura.cc',
-                'host/disconnect_window_aura.cc',
-              ],
-            }],
-            ['OS=="mac"', {
-              'dependencies': [
-                '../third_party/google_toolbox_for_mac/google_toolbox_for_mac.gyp:google_toolbox_for_mac',
-              ],
-              'link_settings': {
-                'libraries': [
-                  '$(SDKROOT)/System/Library/Frameworks/OpenGL.framework',
-                  'libpam.a',
-               ],
-              },
-            }],
-            ['OS=="win"', {
-              'defines': [
-                '_ATL_NO_EXCEPTIONS',
-                'ISOLATION_AWARE_ENABLED=1',
-              ],
-              'dependencies': [
-                '../sandbox/sandbox.gyp:sandbox',
-                'remoting_host_messages',
-              ],
-              'msvs_settings': {
-                'VCCLCompilerTool': {
-                  # /MP conflicts with #import directive so we limit the number
-                  # of processes to spawn to 1.
-                  'AdditionalOptions': ['/MP1'],
-                },
-              },
-              'variables': {
-                'output_dir': '<(SHARED_INTERMEDIATE_DIR)/remoting/host',
-              },
-              'sources': [
-                '<(output_dir)/remoting_host_messages.mc',
-              ],
-              'include_dirs': [
-                '<(output_dir)',
-              ],
-              'direct_dependent_settings': {
-                'include_dirs': [
-                  '<(output_dir)',
-                ],
-              },
-              'rules': [{
-                # Rule to run the message compiler.
-                'rule_name': 'message_compiler',
-                'extension': 'mc',
-                'inputs': [ '<(RULE_INPUT_PATH)' ],
-                'outputs': [
-                  '<(output_dir)/<(RULE_INPUT_ROOT).h',
-                  '<(output_dir)/<(RULE_INPUT_ROOT).rc',
-                ],
-                'action': [
-                  'mc.exe',
-                  '-h', '<(output_dir)',
-                  '-r', '<(output_dir)/.',
-                  '-u',
-                  '<(RULE_INPUT_PATH)',
-                ],
-                'process_outputs_as_sources': 1,
-                'message': 'Running message compiler on <(RULE_INPUT_PATH)',
-              }],
-            }],
-          ],
-        },  # end of target 'remoting_host'
-
-        {
-          'target_name': 'remoting_native_messaging_base',
-          'type': 'static_library',
-          'variables': { 'enable_wexit_time_destructors': 1, },
-          'dependencies': [
-            '../base/base.gyp:base',
-          ],
-          'sources': [
-            'host/native_messaging/native_messaging_channel.cc',
-            'host/native_messaging/native_messaging_channel.h',
-            'host/native_messaging/native_messaging_reader.cc',
-            'host/native_messaging/native_messaging_reader.h',
-            'host/native_messaging/native_messaging_writer.cc',
-            'host/native_messaging/native_messaging_writer.h',
-          ],
-        },  # end of target 'remoting_native_messaging_base'
-
-        {
-          'target_name': 'remoting_me2me_host_static',
-          'type': 'static_library',
-          'variables': { 'enable_wexit_time_destructors': 1, },
-          'dependencies': [
-            '../base/base.gyp:base',
-            '../base/base.gyp:base_i18n',
-            '../net/net.gyp:net',
-            '../third_party/webrtc/modules/modules.gyp:desktop_capture',
-            'remoting_base',
-            'remoting_breakpad',
-            'remoting_host',
-            'remoting_protocol',
-          ],
-          'defines': [
-            'VERSION=<(version_full)',
-          ],
-          'sources': [
-            'host/curtain_mode.h',
-            'host/curtain_mode_linux.cc',
-            'host/curtain_mode_mac.cc',
-            'host/curtain_mode_win.cc',
-            'host/posix/signal_handler.cc',
-            'host/posix/signal_handler.h',
-          ],
-          'conditions': [
-            ['os_posix != 1', {
-              'sources/': [
-                ['exclude', '^host/posix/'],
-              ],
-            }],
-          ],  # end of 'conditions'
-        },  # end of target 'remoting_me2me_host_static'
-
-        {
-          'target_name': 'remoting_host_setup_base',
-          'type': 'static_library',
-          'variables': { 'enable_wexit_time_destructors': 1, },
-          'dependencies': [
-            '../base/base.gyp:base',
-            '../google_apis/google_apis.gyp:google_apis',
-            'remoting_host',
-          ],
-          'defines': [
-            'VERSION=<(version_full)',
-          ],
-          'sources': [
-            'host/setup/daemon_controller.cc',
-            'host/setup/daemon_controller.h',
-            'host/setup/daemon_controller_delegate_linux.cc',
-            'host/setup/daemon_controller_delegate_linux.h',
-            'host/setup/daemon_controller_delegate_mac.h',
-            'host/setup/daemon_controller_delegate_mac.mm',
-            'host/setup/daemon_controller_delegate_win.cc',
-            'host/setup/daemon_controller_delegate_win.h',
-            'host/setup/daemon_installer_win.cc',
-            'host/setup/daemon_installer_win.h',
-            'host/setup/me2me_native_messaging_host.cc',
-            'host/setup/me2me_native_messaging_host.h',
-            'host/setup/oauth_client.cc',
-            'host/setup/oauth_client.h',
-            'host/setup/oauth_helper.cc',
-            'host/setup/oauth_helper.h',
-            'host/setup/pin_validator.cc',
-            'host/setup/pin_validator.h',
-            'host/setup/service_client.cc',
-            'host/setup/service_client.h',
-            'host/setup/test_util.cc',
-            'host/setup/test_util.h',
-            'host/setup/win/auth_code_getter.cc',
-            'host/setup/win/auth_code_getter.h',
-          ],
-          'conditions': [
-            ['OS=="win"', {
-              'dependencies': [
-                '../google_update/google_update.gyp:google_update',
-                'remoting_lib_idl',
-              ],
-              # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
-              'msvs_disabled_warnings': [4267, ],
-            }],
-          ],
-        },  # end of target 'remoting_host_setup_base'
-
-        {
-          'target_name': 'remoting_host_plugin',
-          'type': 'loadable_module',
-          'variables': { 'enable_wexit_time_destructors': 1, },
-          'product_extension': '<(host_plugin_extension)',
-          'product_prefix': '<(host_plugin_prefix)',
-          'defines': [
-            'HOST_PLUGIN_MIME_TYPE=<(host_plugin_mime_type)',
-          ],
-          'dependencies': [
-            '../base/base.gyp:base_i18n',
-            '../net/net.gyp:net',
-            '../third_party/npapi/npapi.gyp:npapi',
-            'remoting_base',
-            'remoting_host',
-            'remoting_host_setup_base',
-            'remoting_infoplist_strings',
-            'remoting_it2me_host_static',
-            'remoting_protocol',
-            'remoting_resources',
-          ],
-          'sources': [
-            'base/dispatch_win.h',
-            'host/plugin/host_log_handler.cc',
-            'host/plugin/host_log_handler.h',
-            'host/plugin/host_plugin.cc',
-            'host/plugin/host_plugin_utils.cc',
-            'host/plugin/host_plugin_utils.h',
-            'host/plugin/host_script_object.cc',
-            'host/plugin/host_script_object.h',
-            'host/win/core_resource.h',
-          ],
-          'conditions': [
-            ['OS=="mac"', {
-              'mac_bundle': 1,
-              'xcode_settings': {
-                'CHROMIUM_BUNDLE_ID': '<(mac_bundle_id)',
-                'INFOPLIST_FILE': 'host/plugin/host_plugin-Info.plist',
-                'INFOPLIST_PREPROCESS': 'YES',
-                # TODO(maruel): Use INFOPLIST_PREFIX_HEADER to remove the need to
-                # duplicate string once
-                # http://code.google.com/p/gyp/issues/detail?id=243 is fixed.
-                'INFOPLIST_PREPROCESSOR_DEFINITIONS': 'HOST_PLUGIN_MIME_TYPE="<(host_plugin_mime_type)" VERSION_FULL="<(version_full)" VERSION_SHORT="<(version_short)"',
-              },
-              # TODO(mark): Come up with a fancier way to do this.  It should
-              # only be necessary to list host_plugin-Info.plist once, not the
-              # three times it is listed here.
-              'mac_bundle_resources': [
-                'host/disconnect_window.xib',
-                'host/plugin/host_plugin-Info.plist',
-                'resources/chromoting16.png',
-                'resources/chromoting48.png',
-                'resources/chromoting128.png',
-                '<!@pymod_do_main(remoting_copy_locales -o -p <(OS) -x <(PRODUCT_DIR) <(remoting_locales))',
-
-                # Localized strings for 'Info.plist'
-                '<!@pymod_do_main(remoting_localize --locale_output '
-                    '"<(SHARED_INTERMEDIATE_DIR)/remoting/host_plugin-InfoPlist.strings/@{json_suffix}.lproj/InfoPlist.strings" '
-                    '--print_only <(remoting_locales))',
-              ],
-              'mac_bundle_resources!': [
-                'host/plugin/host_plugin-Info.plist',
-              ],
-              'conditions': [
-                ['mac_breakpad==1', {
-                  'variables': {
-                    # A real .dSYM is needed for dump_syms to operate on.
-                    'mac_real_dsym': 1,
-                  },
-                }],
-              ],  # conditions
-            }],  # OS=="mac"
-            [ 'OS=="win"', {
-              'defines': [
-                'BINARY=BINARY_HOST_PLUGIN',
-                'ISOLATION_AWARE_ENABLED=1',
-              ],
-              'dependencies': [
-                'remoting_lib_idl',
-                'remoting_windows_resources',
-              ],
-              'include_dirs': [
-                '<(INTERMEDIATE_DIR)',
-              ],
-              'sources': [
-                '<(SHARED_INTERMEDIATE_DIR)/remoting/core.rc',
-                '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc',
-                'host/plugin/host_plugin.def',
-              ],
-              'msvs_settings': {
-                'VCManifestTool': {
-                  'EmbedManifest': 'true',
-                  'AdditionalManifestFiles': [
-                    'host/win/common-controls.manifest',
-                  ],
-                },
-              },
-            }],
-          ],
-        },  # end of target 'remoting_host_plugin'
-        {
-          'target_name': 'remoting_it2me_host_static',
-          'type': 'static_library',
-          'variables': { 'enable_wexit_time_destructors': 1, },
-          'dependencies': [
-            '../base/base.gyp:base_i18n',
-            '../net/net.gyp:net',
-            'remoting_base',
-            'remoting_host',
-            'remoting_infoplist_strings',
-            'remoting_protocol',
-            'remoting_resources',
-          ],
-          'defines': [
-            'VERSION=<(version_full)',
-          ],
-          'sources': [
-            'host/it2me/it2me_host.cc',
-            'host/it2me/it2me_host.h',
-            'host/it2me/it2me_native_messaging_host.cc',
-            'host/it2me/it2me_native_messaging_host.h',
-          ],
-        },  # end of target 'remoting_it2me_host_static'
-        {
-          'target_name': 'remoting_it2me_native_messaging_host',
-          'type': 'executable',
-          'variables': { 'enable_wexit_time_destructors': 1, },
-          'dependencies': [
-            '../base/base.gyp:base',
-            'remoting_base',
-            'remoting_host',
-            'remoting_it2me_host_static',
-            'remoting_native_messaging_base',
-            'remoting_protocol',
-          ],
-          'sources': [
-            'host/it2me/it2me_native_messaging_host_main.cc',
-          ],
-          'conditions': [
-            ['OS=="linux" and linux_use_tcmalloc==1', {
-              'dependencies': [
-                '../base/allocator/allocator.gyp:allocator',
-              ],
-            }],
-          ],
-        },  # end of target 'remoting_it2me_native_messaging_host'
-
-        # Generates native messaging manifest files.
-        {
-          'target_name': 'remoting_native_messaging_manifests',
-          'type': 'none',
-          'conditions': [
-            [ 'OS == "win"', {
-              'variables': {
-                'me2me_host_path': 'remoting_host.exe',
-                'it2me_host_path': 'remoting_assistance_host.exe',
-              },
-            }],
-            [ 'OS == "mac"', {
-              'variables': {
-                'me2me_host_path':
-                    '/Library/PrivilegedHelperTools/org.chromium.chromoting.me2me_host.app/Contents/MacOS/native_messaging_host',
-                'it2me_host_path':
-                    '/Library/PrivilegedHelperTools/org.chromium.chromoting.me2me_host.app/Contents/MacOS/remote_assistance_host',
-              },
-            }],
-            [ 'OS != "mac" and OS != "win"', {
-              'variables': {
-                'me2me_host_path':
-                    '/opt/google/chrome-remote-desktop/native-messaging-host',
-                'it2me_host_path':
-                    '/opt/google/chrome-remote-desktop/remote-assistance-host',
-              },
-            }],
-          ],  # conditions
-          'sources': [
-            'host/it2me/com.google.chrome.remote_assistance.json.jinja2',
-            'host/setup/com.google.chrome.remote_desktop.json.jinja2',
-          ],
-          'rules': [{
-            'rule_name': 'generate_manifest',
-            'extension': 'jinja2',
-            'inputs': [
-              '<(remoting_localize_path)',
-              '<(branding_path)',
-              '<(RULE_INPUT_PATH)',
-            ],
-            'outputs': [
-              '<(PRODUCT_DIR)/remoting/<(RULE_INPUT_ROOT)',
-            ],
-            'action': [
-              'python', '<(remoting_localize_path)',
-              '--define', 'ME2ME_HOST_PATH=<(me2me_host_path)',
-              '--define', 'IT2ME_HOST_PATH=<(me2me_host_path)',
-              '--variables', '<(branding_path)',
-              '--template', '<(RULE_INPUT_PATH)',
-              '--locale_output', '<@(_outputs)',
-              'en',
-            ],
-          }],
-        },  # end of target 'remoting_native_messaging_manifests'
-
-        {
-          'target_name': 'remoting_infoplist_strings',
-          'type': 'none',
-          'dependencies': [
-            'remoting_resources',
-          ],
-          'sources': [
-            'host/plugin/host_plugin-InfoPlist.strings.jinja2',
-            'host/remoting_me2me_host-InfoPlist.strings.jinja2',
-            'host/mac/me2me_preference_pane-InfoPlist.strings.jinja2',
-            'host/installer/mac/uninstaller/remoting_uninstaller-InfoPlist.strings.jinja2',
-          ],
-          'rules': [{
-            'rule_name': 'generate_strings',
-            'extension': 'jinja2',
-            'inputs': [
-              '<(remoting_localize_path)',
-              '<(RULE_INPUT_PATH)',
-            ],
-            'outputs': [
-              '<!@pymod_do_main(remoting_localize --locale_output '
-                  '"<(SHARED_INTERMEDIATE_DIR)/remoting/<(RULE_INPUT_ROOT)/@{json_suffix}.lproj/InfoPlist.strings" '
-                  '--print_only <(remoting_locales))',
-            ],
-            'action': [
-              'python', '<(remoting_localize_path)',
-              '--locale_dir', '<(webapp_locale_dir)',
-              '--template', '<(RULE_INPUT_PATH)',
-              '--locale_output',
-              '<(SHARED_INTERMEDIATE_DIR)/remoting/<(RULE_INPUT_ROOT)/@{json_suffix}.lproj/InfoPlist.strings',
-              '<@(remoting_locales)',
-            ]},
-          ],
-        },  # end of target 'remoting_infoplist_strings'
-      ],  # end of 'targets'
-    }],  # 'enable_remoting_host==1'
-
-    ['OS=="linux" and branding=="Chrome" and enable_remoting_host==1', {
-      'variables': {
-        'build_deb_script': 'host/installer/linux/build-deb.sh',
-        'deb_filename': 'host/installer/<!(["<(build_deb_script)", "-p", "-s", "<(DEPTH)"])',
-        'packaging_outputs': [
-          '<(deb_filename)',
-          '<!(echo <(deb_filename) | sed -e "s/.deb$/.changes/")',
-          '<(PRODUCT_DIR)/remoting_me2me_host.debug',
-          '<(PRODUCT_DIR)/remoting_start_host.debug',
-          '<(PRODUCT_DIR)/remoting_native_messaging_host.debug',
-        ]
-      },
-      'targets': [
-        {
-          # Store the installer package(s) into a zip file so there is a
-          # consistent filename to reference for build archiving (i.e. in
-          # FILES.cfg). This also avoids possible conflicts with "wildcard"
-          # package handling in other build/signing scripts.
-          'target_name': 'remoting_me2me_host_archive',
-          'type': 'none',
-          'dependencies': [
-            'remoting_me2me_host_deb_installer',
-          ],
-          'actions': [
-            {
-              'action_name': 'build_linux_installer_zip',
-              'inputs': [
-                '<@(packaging_outputs)',
-              ],
-              'outputs': [
-                '<(PRODUCT_DIR)/remoting-me2me-host-<(OS).zip',
-              ],
-              'action': [ 'zip', '-j', '-0', '<@(_outputs)', '<@(_inputs)' ],
-            },
-          ],
-        },
-        {
-          'target_name': 'remoting_me2me_host_deb_installer',
-          'type': 'none',
-          'dependencies': [
-            'remoting_it2me_native_messaging_host',
-            'remoting_me2me_host',
-            'remoting_me2me_native_messaging_host',
-            'remoting_native_messaging_manifests',
-            'remoting_resources',
-            'remoting_start_host',
-          ],
-          'actions': [
-            {
-              'action_name': 'build_debian_package',
-              'inputs': [
-                '<(build_deb_script)',
-                'host/installer/linux/Makefile',
-                'host/installer/linux/debian/chrome-remote-desktop.init',
-                'host/installer/linux/debian/chrome-remote-desktop.pam',
-                'host/installer/linux/debian/compat',
-                'host/installer/linux/debian/control',
-                'host/installer/linux/debian/copyright',
-                'host/installer/linux/debian/postinst',
-                'host/installer/linux/debian/preinst',
-                'host/installer/linux/debian/rules',
-              ],
-              'outputs': [
-                '<@(packaging_outputs)',
-              ],
-              'action': [ '<(build_deb_script)', '-s', '<(DEPTH)' ],
-            },
-          ],
-        },
-      ],
-    }],  # OS=="linux" and branding=="Chrome"
-
-    ['OS!="win" and enable_remoting_host==1', {
-      'targets': [
-        {
-          'target_name': 'remoting_me2me_host',
-          'type': 'executable',
-          'variables': { 'enable_wexit_time_destructors': 1, },
-          'dependencies': [
-            '../base/base.gyp:base',
-            '../base/base.gyp:base_i18n',
-            '../net/net.gyp:net',
-            '../third_party/webrtc/modules/modules.gyp:desktop_capture',
-            'remoting_base',
-            'remoting_breakpad',
-            'remoting_host',
-            'remoting_infoplist_strings',
-            'remoting_me2me_host_static',
-            'remoting_protocol',
-          ],
-          'defines': [
-            'VERSION=<(version_full)',
-          ],
-          'sources': [
-            'host/host_main.cc',
-            'host/host_main.h',
-            'host/remoting_me2me_host.cc',
-          ],
-          'conditions': [
-            ['OS=="mac"', {
-              'mac_bundle': 1,
-              'variables': {
-                 'host_bundle_id': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_HOST_BUNDLE_ID@")',
-              },
-              'xcode_settings': {
-                'INFOPLIST_FILE': 'host/remoting_me2me_host-Info.plist',
-                'INFOPLIST_PREPROCESS': 'YES',
-                'INFOPLIST_PREPROCESSOR_DEFINITIONS': 'VERSION_FULL="<(version_full)" VERSION_SHORT="<(version_short)" BUNDLE_ID="<(host_bundle_id)"',
-              },
-              'mac_bundle_resources': [
-                'host/disconnect_window.xib',
-                'host/remoting_me2me_host.icns',
-                'host/remoting_me2me_host-Info.plist',
-                '<!@pymod_do_main(remoting_copy_locales -o -p <(OS) -x <(PRODUCT_DIR) <(remoting_locales))',
-
-                # Localized strings for 'Info.plist'
-                '<!@pymod_do_main(remoting_localize --locale_output '
-                    '"<(SHARED_INTERMEDIATE_DIR)/remoting/remoting_me2me_host-InfoPlist.strings/@{json_suffix}.lproj/InfoPlist.strings" '
-                    '--print_only <(remoting_locales))',
-              ],
-              'mac_bundle_resources!': [
-                'host/remoting_me2me_host-Info.plist',
-              ],
-              'conditions': [
-                ['mac_breakpad==1', {
-                  'variables': {
-                    # A real .dSYM is needed for dump_syms to operate on.
-                    'mac_real_dsym': 1,
-                  },
-                  'copies': [
-                    {
-                      'destination': '<(PRODUCT_DIR)/$(CONTENTS_FOLDER_PATH)/Resources',
-                      'files': [
-                        '<(PRODUCT_DIR)/crash_inspector',
-                        '<(PRODUCT_DIR)/crash_report_sender.app'
-                      ],
-                    },
-                  ],
-                  'dependencies': [
-                    '../breakpad/breakpad.gyp:dump_syms',
-                  ],
-                  'postbuilds': [
-                    {
-                      'postbuild_name': 'Dump Symbols',
-                      'variables': {
-                        'dump_product_syms_path':
-                            'scripts/mac/dump_product_syms',
-                      },
-                      'action': [
-                        '<(dump_product_syms_path)',
-                        '<(version_full)',
-                      ],
-                    },  # end of postbuild 'dump_symbols'
-                  ],  # end of 'postbuilds'
-                }],  # mac_breakpad==1
-              ],  # conditions
-            }],  # OS=mac
-            ['OS=="linux" and linux_use_tcmalloc==1', {
-              'dependencies': [
-                '../base/allocator/allocator.gyp:allocator',
-              ],
-            }],  # OS=linux
-          ],  # end of 'conditions'
-        },  # end of target 'remoting_me2me_host'
-        {
-          'target_name': 'remoting_me2me_native_messaging_host',
-          'type': 'executable',
-          'product_name': 'remoting_native_messaging_host',
-          'variables': { 'enable_wexit_time_destructors': 1, },
-          'dependencies': [
-            '../base/base.gyp:base',
-            'remoting_host',
-            'remoting_host_setup_base',
-            'remoting_native_messaging_base',
-          ],
-          'sources': [
-            'host/setup/me2me_native_messaging_host_main.cc',
-          ],
-          'conditions': [
-            ['OS=="linux" and linux_use_tcmalloc==1', {
-              'dependencies': [
-                '../base/allocator/allocator.gyp:allocator',
-              ],
-            }],
-          ],
-        },  # end of target 'remoting_me2me_native_messaging_host'
-      ],  # end of 'targets'
-    }],  # OS!="win"
-
-    ['OS=="linux" and enable_remoting_host==1', {
-      'targets': [
-        # Linux breakpad processing
-        {
-          'target_name': 'remoting_linux_symbols',
-          'type': 'none',
-          'conditions': [
-            ['linux_dump_symbols==1', {
-              'actions': [
-                {
-                  'action_name': 'dump_symbols',
-                  'variables': {
-                    'plugin_file': '<(host_plugin_prefix)remoting_host_plugin.<(host_plugin_extension)',
-                  },
-                  'inputs': [
-                    '<(DEPTH)/build/linux/dump_app_syms',
-                    '<(PRODUCT_DIR)/dump_syms',
-                    '<(PRODUCT_DIR)/<(plugin_file)',
-                  ],
-                  'outputs': [
-                    '<(PRODUCT_DIR)/<(plugin_file).breakpad.<(target_arch)',
-                  ],
-                  'action': ['<(DEPTH)/build/linux/dump_app_syms',
-                             '<(PRODUCT_DIR)/dump_syms',
-                             '<(linux_strip_binary)',
-                             '<(PRODUCT_DIR)/<(plugin_file)',
-                             '<@(_outputs)'],
-                  'message': 'Dumping breakpad symbols to <(_outputs)',
-                  'process_outputs_as_sources': 1,
-                },
-              ],
-              'dependencies': [
-                'remoting_host_plugin',
-                '../breakpad/breakpad.gyp:dump_syms',
-              ],
-            }],  # 'linux_dump_symbols==1'
-          ],  # end of 'conditions'
-        },  # end of target 'linux_symbols'
-        {
-          'target_name': 'remoting_start_host',
-          'type': 'executable',
-          'dependencies': [
-            'remoting_host_setup_base',
-          ],
-          'sources': [
-            'host/setup/host_starter.cc',
-            'host/setup/host_starter.h',
-            'host/setup/start_host.cc',
-          ],
-          'conditions': [
-            ['linux_use_tcmalloc==1', {
-              'dependencies': [
-                '../base/allocator/allocator.gyp:allocator',
-              ],
-            }],
-          ],
-        },  # end of target 'remoting_start_host'
-      ],  # end of 'targets'
-    }],  # 'OS=="linux"'
-
-    ['OS=="mac"', {
-      'targets': [
-        {
-          'target_name': 'remoting_host_uninstaller',
-          'type': 'executable',
-          'mac_bundle': 1,
-          'variables': {
-            'bundle_id': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_UNINSTALLER_BUNDLE_ID@")',
-          },
-          'dependencies': [
-            '<(DEPTH)/base/base.gyp:base',
-            'remoting_infoplist_strings',
-          ],
-          'sources': [
-            'host/constants_mac.cc',
-            'host/constants_mac.h',
-            'host/installer/mac/uninstaller/remoting_uninstaller.h',
-            'host/installer/mac/uninstaller/remoting_uninstaller.mm',
-            'host/installer/mac/uninstaller/remoting_uninstaller_app.h',
-            'host/installer/mac/uninstaller/remoting_uninstaller_app.mm',
-          ],
-          'xcode_settings': {
-            'INFOPLIST_FILE': 'host/installer/mac/uninstaller/remoting_uninstaller-Info.plist',
-            'INFOPLIST_PREPROCESS': 'YES',
-            'INFOPLIST_PREPROCESSOR_DEFINITIONS': 'VERSION_FULL="<(version_full)" VERSION_SHORT="<(version_short)" BUNDLE_ID="<(bundle_id)"',
-          },
-          'mac_bundle_resources': [
-            'host/installer/mac/uninstaller/remoting_uninstaller.icns',
-            'host/installer/mac/uninstaller/remoting_uninstaller.xib',
-            'host/installer/mac/uninstaller/remoting_uninstaller-Info.plist',
-
-            # Localized strings for 'Info.plist'
-            '<!@pymod_do_main(remoting_localize --locale_output '
-                '"<(SHARED_INTERMEDIATE_DIR)/remoting/remoting_uninstaller-InfoPlist.strings/@{json_suffix}.lproj/InfoPlist.strings" '
-                '--print_only <(remoting_locales))',
-          ],
-          'mac_bundle_resources!': [
-            'host/installer/mac/uninstaller/remoting_uninstaller-Info.plist',
-          ],
-        },  # end of target 'remoting_host_uninstaller'
-
-        # This packages up the files needed for the remoting host installer so
-        # they can be sent off to be signed.
-        # We don't build an installer here because we don't have signed binaries.
-        {
-          'target_name': 'remoting_me2me_host_archive',
-          'type': 'none',
-          'dependencies': [
-            'remoting_host_prefpane',
-            'remoting_host_uninstaller',
-            'remoting_me2me_host',
-            'remoting_me2me_native_messaging_host',
-            'remoting_native_messaging_manifests',
-          ],
-          'variables': {
-            'host_name': '<!(python <(version_py_path) -f <(branding_path) -t "@HOST_PLUGIN_FILE_NAME@")',
-            'host_service_name': '<!(python <(version_py_path) -f <(branding_path) -t "@DAEMON_FILE_NAME@")',
-            'host_uninstaller_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_UNINSTALLER_NAME@")',
-            'bundle_prefix': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_UNINSTALLER_BUNDLE_PREFIX@")',
-          },
-          'actions': [
-            {
-              'action_name': 'Zip installer files for signing',
-              'temp_dir': '<(SHARED_INTERMEDIATE_DIR)/remoting/remoting-me2me-host',
-              'zip_path': '<(PRODUCT_DIR)/remoting-me2me-host-<(OS).zip',
-              'variables': {
-                'host_name_nospace': '<!(echo <(host_name) | sed "s/ //g")',
-                'host_service_name_nospace': '<!(echo <(host_service_name) | sed "s/ //g")',
-                'host_uninstaller_name_nospace': '<!(echo <(host_uninstaller_name) | sed "s/ //g")',
-              },
-              'generated_files': [
-                '<(PRODUCT_DIR)/remoting_host_prefpane.prefPane',
-                '<(PRODUCT_DIR)/remoting_me2me_host.app',
-                '<(PRODUCT_DIR)/remoting_host_uninstaller.app',
-                '<(PRODUCT_DIR)/remoting_native_messaging_host',
-                '<(PRODUCT_DIR)/remoting/com.google.chrome.remote_desktop.json',
-              ],
-              'generated_files_dst': [
-                'PreferencePanes/org.chromium.chromoting.prefPane',
-                'PrivilegedHelperTools/org.chromium.chromoting.me2me_host.app',
-                'Applications/<(host_uninstaller_name).app',
-                'PrivilegedHelperTools/org.chromium.chromoting.me2me_host.app/Contents/MacOS/native_messaging_host',
-                'Config/com.google.chrome.remote_desktop.json',
-              ],
-              'source_files': [
-                '<@(remoting_host_installer_mac_files)',
-              ],
-              'defs': [
-                'VERSION=<(version_full)',
-                'VERSION_SHORT=<(version_short)',
-                'VERSION_MAJOR=<(version_major)',
-                'VERSION_MINOR=<(version_minor)',
-                'HOST_NAME=<(host_name)',
-                'HOST_SERVICE_NAME=<(host_service_name)',
-                'HOST_UNINSTALLER_NAME=<(host_uninstaller_name)',
-                'HOST_PKG=<(host_name)',
-                'HOST_SERVICE_PKG=<(host_service_name_nospace)',
-                'HOST_UNINSTALLER_PKG=<(host_uninstaller_name_nospace)',
-                'BUNDLE_ID_HOST=<(bundle_prefix).<(host_name_nospace)',
-                'BUNDLE_ID_HOST_SERVICE=<(bundle_prefix).<(host_service_name_nospace)',
-                'BUNDLE_ID_HOST_UNINSTALLER=<(bundle_prefix).<(host_uninstaller_name_nospace)',
-                'DMG_VOLUME_NAME=<(host_name) <(version_full)',
-                'DMG_FILE_NAME=<!(echo <(host_name) | sed "s/ //g")-<(version_full)',
-              ],
-              'inputs': [
-                'host/installer/build-installer-archive.py',
-                '<@(_source_files)',
-              ],
-              'outputs': [
-                '<(_zip_path)',
-              ],
-              'action': [
-                'python', 'host/installer/build-installer-archive.py',
-                '<(_temp_dir)',
-                '<(_zip_path)',
-                '--source-file-roots', '<@(remoting_host_installer_mac_roots)',
-                '--source-files', '<@(_source_files)',
-                '--generated-files', '<@(_generated_files)',
-                '--generated-files-dst', '<@(_generated_files_dst)',
-                '--defs', '<@(_defs)',
-              ],
-            },
-          ],  # actions
-        }, # end of target 'remoting_me2me_host_archive'
-
-        {
-          'target_name': 'remoting_host_prefpane',
-          'type': 'loadable_module',
-          'mac_bundle': 1,
-          'product_extension': 'prefPane',
-          'defines': [
-            'JSON_USE_EXCEPTION=0',
-          ],
-          'dependencies': [
-            'remoting_infoplist_strings',
-          ],
-          'include_dirs': [
-            '../third_party/jsoncpp/overrides/include/',
-            '../third_party/jsoncpp/source/include/',
-            '../third_party/jsoncpp/source/src/lib_json/',
-          ],
-
-          # These source files are included directly, instead of adding target
-          # dependencies, because the targets are not yet built for 64-bit on
-          # Mac OS X - http://crbug.com/125116.
-          #
-          # TODO(lambroslambrou): Fix this when Chrome supports building for
-          # Mac OS X 64-bit - http://crbug.com/128122.
-          'sources': [
-            '../third_party/jsoncpp/source/src/lib_json/json_reader.cpp',
-            '../third_party/jsoncpp/overrides/src/lib_json/json_value.cpp',
-            '../third_party/jsoncpp/source/src/lib_json/json_writer.cpp',
-            '../third_party/modp_b64/modp_b64.cc',
-            'host/constants_mac.cc',
-            'host/constants_mac.h',
-            'host/host_config.cc',
-            'host/mac/me2me_preference_pane.h',
-            'host/mac/me2me_preference_pane.mm',
-            'host/mac/me2me_preference_pane_confirm_pin.h',
-            'host/mac/me2me_preference_pane_confirm_pin.mm',
-            'host/mac/me2me_preference_pane_disable.h',
-            'host/mac/me2me_preference_pane_disable.mm',
-          ],
-          'link_settings': {
-            'libraries': [
-              '$(SDKROOT)/System/Library/Frameworks/Cocoa.framework',
-              '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework',
-              '$(SDKROOT)/System/Library/Frameworks/PreferencePanes.framework',
-              '$(SDKROOT)/System/Library/Frameworks/Security.framework',
-            ],
-          },
-          'variables': {
-            'bundle_id': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_PREFPANE_BUNDLE_ID@")',
-          },
-          'xcode_settings': {
-            'ARCHS': ['i386', 'x86_64'],
-            'GCC_ENABLE_OBJC_GC': 'supported',
-            'INFOPLIST_FILE': 'host/mac/me2me_preference_pane-Info.plist',
-            'INFOPLIST_PREPROCESS': 'YES',
-            'INFOPLIST_PREPROCESSOR_DEFINITIONS': 'VERSION_FULL="<(version_full)" VERSION_SHORT="<(version_short)" BUNDLE_ID="<(bundle_id)"',
-          },
-          'mac_bundle_resources': [
-            'host/mac/me2me_preference_pane.xib',
-            'host/mac/me2me_preference_pane_confirm_pin.xib',
-            'host/mac/me2me_preference_pane_disable.xib',
-            'host/mac/me2me_preference_pane-Info.plist',
-            'resources/chromoting128.png',
-
-            # Localized strings for 'Info.plist'
-            '<!@pymod_do_main(remoting_localize --locale_output '
-                '"<(SHARED_INTERMEDIATE_DIR)/remoting/me2me_preference_pane-InfoPlist.strings/@{json_suffix}.lproj/InfoPlist.strings" '
-                '--print_only <(remoting_locales))',
-          ],
-          'mac_bundle_resources!': [
-            'host/mac/me2me_preference_pane-Info.plist',
-          ],
-          'conditions': [
-            ['mac_breakpad==1', {
-              'variables': {
-                # A real .dSYM is needed for dump_syms to operate on.
-                'mac_real_dsym': 1,
-              },
-            }],  # 'mac_breakpad==1'
-          ],  # conditions
-        },  # end of target 'remoting_host_prefpane'
-      ],  # end of 'targets'
-    }],  # 'OS=="mac"'
-
-    ['OS=="win"', {
-      'targets': [
-        {
-          'target_name': 'remoting_breakpad_tester',
-          'type': 'executable',
-          'variables': { 'enable_wexit_time_destructors': 1, },
-          'dependencies': [
-            '../base/base.gyp:base',
-            'remoting_host',
-          ],
-          'sources': [
-            'tools/breakpad_tester_win.cc',
-          ],
-        },  # end of target 'remoting_breakpad_tester'
-        {
-          'target_name': 'remoting_lib_idl',
-          'type': 'static_library',
-          'sources': [
-            'host/win/chromoting_lib_idl.templ',
-            '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib.h',
-            '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib.idl',
-            '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib_i.c',
-          ],
-          # This target exports a hard dependency because dependent targets may
-          # include chromoting_lib.h, a generated header.
-          'hard_dependency': 1,
-          'msvs_settings': {
-            'VCMIDLTool': {
-              'OutputDirectory': '<(SHARED_INTERMEDIATE_DIR)/remoting/host',
-            },
-          },
-          'direct_dependent_settings': {
-            'include_dirs': [
-              '<(SHARED_INTERMEDIATE_DIR)',
-            ],
-          },
-          'rules': [
-            {
-              'rule_name': 'generate_idl',
-              'extension': 'templ',
-              'outputs': [
-                '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib.idl',
-              ],
-              'action': [
-                'python', '<(version_py_path)',
-                '-e', "DAEMON_CONTROLLER_CLSID='<(daemon_controller_clsid)'",
-                '-e', "RDP_DESKTOP_SESSION_CLSID='<(rdp_desktop_session_clsid)'",
-                '<(RULE_INPUT_PATH)',
-                '<@(_outputs)',
-              ],
-              'process_outputs_as_sources': 1,
-              'message': 'Generating <@(_outputs)',
-            },
-          ],
-        },  # end of target 'remoting_lib_idl'
-
-        # remoting_lib_ps builds the proxy/stub code generated by MIDL (see
-        # remoting_lib_idl).
-        {
-          'target_name': 'remoting_lib_ps',
-          'type': 'static_library',
-          'defines': [
-            # Prepend 'Ps' to the MIDL-generated routines. This includes
-            # DllGetClassObject, DllCanUnloadNow, DllRegisterServer,
-            # DllUnregisterServer, and DllMain.
-            'ENTRY_PREFIX=Ps',
-            'REGISTER_PROXY_DLL',
-          ],
-          'dependencies': [
-            'remoting_lib_idl',
-          ],
-          'sources': [
-            '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib.dlldata.c',
-            '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib_p.c',
-          ],
-        },  # end of target 'remoting_lib_ps'
-
-        # Regenerates 'chromoting_lib.rc' (used to embed 'chromoting_lib.tlb'
-        # into remoting_core.dll's resources) every time
-        # 'chromoting_lib_idl.templ' changes. Making remoting_core depend on
-        # both this and 'remoting_lib_idl' targets ensures that the resorces
-        # are rebuilt every time the type library is updated. GYP alone is
-        # not smart enough to figure out this dependency on its own.
-        {
-          'target_name': 'remoting_lib_rc',
-          'type': 'none',
-          'sources': [
-            'host/win/chromoting_lib_idl.templ',
-          ],
-          'hard_dependency': 1,
-          'direct_dependent_settings': {
-            'include_dirs': [
-              '<(SHARED_INTERMEDIATE_DIR)',
-            ],
-          },
-          'rules': [
-            {
-              'rule_name': 'generate_rc',
-              'extension': 'templ',
-              'outputs': [
-                '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib.rc',
-              ],
-              'action': [
-                'echo 1 typelib "remoting/host/chromoting_lib.tlb" > <@(_outputs)',
-              ],
-              'message': 'Generating <@(_outputs)',
-            },
-          ],
-        },  # end of target 'remoting_lib_rc'
-        # The only difference between |remoting_console.exe| and
-        # |remoting_host.exe| is that the former is a console application.
-        # |remoting_console.exe| is used for debugging purposes.
-        {
-          'target_name': 'remoting_console',
-          'type': 'executable',
-          'variables': { 'enable_wexit_time_destructors': 1, },
-          'defines': [
-            'BINARY=BINARY_HOST_ME2ME',
-          ],
-          'dependencies': [
-            'remoting_core',
-            'remoting_windows_resources',
-          ],
-          'sources': [
-            '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc',
-            'host/win/entry_point.cc',
-          ],
-          'msvs_settings': {
-            'VCManifestTool': {
-              'AdditionalManifestFiles': [
-                'host/win/dpi_aware.manifest',
-              ],
-            },
-            'VCLinkerTool': {
-              'EntryPointSymbol': 'HostEntryPoint',
-              'IgnoreAllDefaultLibraries': 'true',
-              'SubSystem': '1', # /SUBSYSTEM:CONSOLE
-            },
-          },
-        },  # end of target 'remoting_console'
-        {
-          'target_name': 'remoting_core',
-          'type': 'shared_library',
-          'variables': { 'enable_wexit_time_destructors': 1, },
-          'defines' : [
-            '_ATL_APARTMENT_THREADED',
-            '_ATL_CSTRING_EXPLICIT_CONSTRUCTORS',
-            '_ATL_NO_AUTOMATIC_NAMESPACE',
-            '_ATL_NO_EXCEPTIONS',
-            'BINARY=BINARY_CORE',
-            'DAEMON_CONTROLLER_CLSID="{<(daemon_controller_clsid)}"',
-            'RDP_DESKTOP_SESSION_CLSID="{<(rdp_desktop_session_clsid)}"',
-            'HOST_IMPLEMENTATION',
-            'ISOLATION_AWARE_ENABLED=1',
-            'STRICT',
-            'VERSION=<(version_full)',
-          ],
-          'dependencies': [
-            '../base/base.gyp:base',
-            '../base/base.gyp:base_static',
-            '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
-            '../ipc/ipc.gyp:ipc',
-            '../net/net.gyp:net',
-            '../third_party/webrtc/modules/modules.gyp:desktop_capture',
-            'remoting_base',
-            'remoting_breakpad',
-            'remoting_host',
-            'remoting_host_setup_base',
-            'remoting_lib_idl',
-            'remoting_lib_ps',
-            'remoting_lib_rc',
-            'remoting_me2me_host_static',
-            'remoting_native_messaging_base',
-            'remoting_protocol',
-            'remoting_windows_resources',
-          ],
-          'sources': [
-            '<(SHARED_INTERMEDIATE_DIR)/remoting/core.rc',
-            '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib.rc',
-            '<(SHARED_INTERMEDIATE_DIR)/remoting/host/remoting_host_messages.rc',
-            '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc',
-            'host/desktop_process_main.cc',
-            'host/host_main.cc',
-            'host/host_main.h',
-            'host/ipc_constants.cc',
-            'host/ipc_constants.h',
-            'host/remoting_me2me_host.cc',
-            'host/sas_injector.h',
-            'host/sas_injector_win.cc',
-            'host/setup/me2me_native_messaging_host_main.cc',
-            'host/verify_config_window_win.cc',
-            'host/verify_config_window_win.h',
-            'host/win/chromoting_module.cc',
-            'host/win/chromoting_module.h',
-            'host/win/core.cc',
-            'host/win/core_resource.h',
-            'host/win/elevated_controller.cc',
-            'host/win/elevated_controller.h',
-            'host/win/host_service.cc',
-            'host/win/host_service.h',
-            'host/win/omaha.cc',
-            'host/win/omaha.h',
-            'host/win/rdp_desktop_session.cc',
-            'host/win/rdp_desktop_session.h',
-            'host/win/unprivileged_process_delegate.cc',
-            'host/win/unprivileged_process_delegate.h',
-            'host/win/worker_process_launcher.cc',
-            'host/win/worker_process_launcher.h',
-            'host/win/wts_session_process_delegate.cc',
-            'host/win/wts_session_process_delegate.h',
-            'host/worker_process_ipc_delegate.h',
-          ],
-          'msvs_settings': {
-            'VCManifestTool': {
-              'EmbedManifest': 'true',
-              'AdditionalManifestFiles': [
-                'host/win/common-controls.manifest',
-              ],
-            },
-            'VCLinkerTool': {
-              'AdditionalDependencies': [
-                'comctl32.lib',
-                'rpcns4.lib',
-                'rpcrt4.lib',
-                'uuid.lib',
-                'wtsapi32.lib',
-              ],
-              'AdditionalOptions': [
-                # Export the proxy/stub entry points. Note that the generated
-                # routines have 'Ps' prefix to avoid conflicts with our own
-                # DllMain().
-                '/EXPORT:DllGetClassObject=PsDllGetClassObject,PRIVATE',
-                '/EXPORT:DllCanUnloadNow=PsDllCanUnloadNow,PRIVATE',
-                '/EXPORT:DllRegisterServer=PsDllRegisterServer,PRIVATE',
-                '/EXPORT:DllUnregisterServer=PsDllUnregisterServer,PRIVATE',
-              ],
-            },
-          },
-        },  # end of target 'remoting_core'
-        {
-          'target_name': 'remoting_desktop',
-          'type': 'executable',
-          'variables': { 'enable_wexit_time_destructors': 1, },
-          'defines': [
-            'BINARY=BINARY_DESKTOP',
-          ],
-          'dependencies': [
-            'remoting_core',
-            'remoting_windows_resources',
-          ],
-          'sources': [
-            '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc',
-            'host/win/entry_point.cc',
-          ],
-          'msvs_settings': {
-            'VCManifestTool': {
-              'AdditionalManifestFiles': [
-                'host/win/dpi_aware.manifest',
-              ],
-            },
-            'VCLinkerTool': {
-              'EnableUAC': 'true',
-              # Add 'level="requireAdministrator" uiAccess="true"' to
-              # the manifest only for the official builds because it requires
-              # the binary to be signed to work.
-              'conditions': [
-                ['buildtype == "Official"', {
-                  'UACExecutionLevel': 2,
-                  'UACUIAccess': 'true',
-                }],
-              ],
-              'EntryPointSymbol': 'HostEntryPoint',
-              'IgnoreAllDefaultLibraries': 'true',
-              'SubSystem': '2', # /SUBSYSTEM:WINDOWS
-            },
-          },
-        },  # end of target 'remoting_desktop'
-        {
-          'target_name': 'remoting_host_exe',
-          'product_name': 'remoting_host',
-          'type': 'executable',
-          'variables': { 'enable_wexit_time_destructors': 1, },
-          'defines': [
-            'BINARY=BINARY_HOST_ME2ME',
-          ],
-          'dependencies': [
-            'remoting_core',
-            'remoting_windows_resources',
-          ],
-          'sources': [
-            '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc',
-            'host/win/entry_point.cc',
-          ],
-          'msvs_settings': {
-            'VCManifestTool': {
-              'AdditionalManifestFiles': [
-                'host/win/dpi_aware.manifest',
-              ],
-            },
-            'VCLinkerTool': {
-              'EntryPointSymbol': 'HostEntryPoint',
-              'IgnoreAllDefaultLibraries': 'true',
-              'ImportLibrary': '$(OutDir)\\lib\\remoting_host_exe.lib',
-              'OutputFile': '$(OutDir)\\remoting_host.exe',
-              'SubSystem': '2', # /SUBSYSTEM:WINDOWS
-            },
-          },
-        },  # end of target 'remoting_host_exe'
-        {
-          'target_name': 'remoting_host_messages',
-          'type': 'none',
-          'dependencies': [
-            'remoting_resources',
-          ],
-          'hard_dependency': 1,
-          'direct_dependent_settings': {
-            'include_dirs': [
-              '<(SHARED_INTERMEDIATE_DIR)',
-            ],
-          },
-          'sources': [
-            'host/win/host_messages.mc.jinja2'
-          ],
-          'rules': [
-            {
-              'rule_name': 'localize',
-              'extension': 'jinja2',
-              'outputs': [
-                '<(SHARED_INTERMEDIATE_DIR)/remoting/host/remoting_host_messages.mc',
-              ],
-              'action': [
-                'python', '<(remoting_localize_path)',
-                '--locale_dir', '<(webapp_locale_dir)',
-                '--template', '<(RULE_INPUT_PATH)',
-                '--output', '<@(_outputs)',
-                '--encoding', 'utf-16',
-                '<@(remoting_locales)',
-              ],
-              'message': 'Localizing the event log messages'
-            },
-          ],
-        },  # end of target 'remoting_host_messages'
-
-        # Generates localized resources for the Windows binaries.
-        # The substitution strings are taken from:
-        #   - build/util/LASTCHANGE - the last source code revision.
-        #   - chrome/VERSION - the major, build & patch versions.
-        #   - remoting/VERSION - the chromoting patch version (and overrides
-        #       for chrome/VERSION).
-        #   - translated webapp strings
-        {
-          'target_name': 'remoting_windows_resources',
-          'type': 'none',
-          'dependencies': [
-            'remoting_resources',
-          ],
-          'hard_dependency': 1,
-          'direct_dependent_settings': {
-            'include_dirs': [
-              '<(SHARED_INTERMEDIATE_DIR)',
-            ],
-          },
-          'sources': [
-            'host/win/core.rc.jinja2',
-            'host/win/version.rc.jinja2',
-          ],
-          'rules': [
-            {
-              'rule_name': 'version',
-              'extension': 'jinja2',
-              'variables': {
-                'lastchange_path': '<(DEPTH)/build/util/LASTCHANGE',
-              },
-              'inputs': [
-                '<(chrome_version_path)',
-                '<(lastchange_path)',
-                '<(remoting_version_path)',
-                '<(RULE_INPUT_PATH)',
-              ],
-              'outputs': [
-                '<(SHARED_INTERMEDIATE_DIR)/remoting/<(RULE_INPUT_ROOT)',
-              ],
-              'action': [
-                'python', '<(remoting_localize_path)',
-                '--variables', '<(chrome_version_path)',
-                # |remoting_version_path| must be after |chrome_version_path|
-                # because it can contain overrides for the version numbers.
-                '--variables', '<(remoting_version_path)',
-                '--variables', '<(lastchange_path)',
-                '--locale_dir', '<(webapp_locale_dir)',
-                '--template', '<(RULE_INPUT_PATH)',
-                '--output', '<@(_outputs)',
-                '--encoding', 'utf-16',
-                '<@(remoting_locales)',
-              ],
-              'message': 'Localizing the version information'
-            },
-          ],
-        },  # end of target 'remoting_windows_resources'
-      ],  # end of 'targets'
-    }],  # 'OS=="win"'
-
-    # The host installation is generated only if WiX is available. If
-    # component build is used the produced installation will not work due to
-    # missing DLLs. We build it anyway to make sure the GYP scripts are executed
-    # by the bots.
-    ['OS == "win" and wix_exists == "True" and sas_dll_exists == "True"', {
-      'targets': [
-        {
-          'target_name': 'remoting_host_installation',
-          'type': 'none',
-          'dependencies': [
-            'remoting_me2me_host_archive',
-          ],
-          'sources': [
-            '<(PRODUCT_DIR)/remoting-me2me-host-<(OS).zip',
-          ],
-          'outputs': [
-            '<(PRODUCT_DIR)/chromoting.msi',
-          ],
-          'rules': [
-            {
-              'rule_name': 'zip2msi',
-              'extension': 'zip',
-              'inputs': [
-                'tools/zip2msi.py',
-              ],
-              'outputs': [
-                '<(PRODUCT_DIR)/chromoting.msi',
-              ],
-              'action': [
-                'python', 'tools/zip2msi.py',
-                '--wix_path', '<(wix_path)',
-                '--intermediate_dir', '<(INTERMEDIATE_DIR)/installation',
-                '<(RULE_INPUT_PATH)',
-                '<@(_outputs)',
-              ],
-              'message': 'Generating <@(_outputs)',
-            },
-          ],
-        },  # end of target 'remoting_host_installation'
-
-        {
-          'target_name': 'remoting_me2me_host_archive',
-          'type': 'none',
-          'dependencies': [
-            'remoting_core',
-            'remoting_desktop',
-            'remoting_host_exe',
-            'remoting_native_messaging_manifests',
-          ],
-          'compiled_inputs': [
-            '<(PRODUCT_DIR)/remoting_core.dll',
-            '<(PRODUCT_DIR)/remoting_desktop.exe',
-            '<(PRODUCT_DIR)/remoting_host.exe',
-          ],
-          'compiled_inputs_dst': [
-            'files/remoting_core.dll',
-            'files/remoting_desktop.exe',
-            'files/remoting_host.exe',
-          ],
-          'conditions': [
-            ['buildtype == "Official"', {
-              'defs': [
-                'OFFICIAL_BUILD=1',
-              ],
-            }, {  # else buildtype != "Official"
-              'defs': [
-                'OFFICIAL_BUILD=0',
-              ],
-            }],
-          ],
-          'defs': [
-            'BRANDING=<(branding)',
-            'DAEMON_CONTROLLER_CLSID={<(daemon_controller_clsid)}',
-            'RDP_DESKTOP_SESSION_CLSID={<(rdp_desktop_session_clsid)}',
-            'VERSION=<(version_full)',
-          ],
-          'generated_files': [
-            '<@(_compiled_inputs)',
-            '<(sas_dll_path)/sas.dll',
-            '<(PRODUCT_DIR)/remoting/com.google.chrome.remote_desktop.json',
-            'resources/chromoting.ico',
-          ],
-          'generated_files_dst': [
-            '<@(_compiled_inputs_dst)',
-            'files/sas.dll',
-            'files/com.google.chrome.remote_desktop.json',
-            'files/chromoting.ico',
-          ],
-          'zip_path': '<(PRODUCT_DIR)/remoting-me2me-host-<(OS).zip',
-          'outputs': [
-            '<(_zip_path)',
-          ],
-          'actions': [
-            {
-              'action_name': 'Zip installer files for signing',
-              'temp_dir': '<(INTERMEDIATE_DIR)/installation',
-              'source_files': [
-                '<@(remoting_host_installer_win_files)',
-              ],
-              'inputs': [
-                '<@(_compiled_inputs)',
-                '<(sas_dll_path)/sas.dll',
-                '<@(_source_files)',
-                'host/installer/build-installer-archive.py',
-                'resources/chromoting.ico',
-              ],
-              'outputs': [
-                '<(_zip_path)',
-              ],
-              'action': [
-                'python', 'host/installer/build-installer-archive.py',
-                '<(_temp_dir)',
-                '<(_zip_path)',
-                '--source-file-roots', '<@(remoting_host_installer_win_roots)',
-                '--source-files', '<@(_source_files)',
-                '--generated-files', '<@(_generated_files)',
-                '--generated-files-dst', '<@(_generated_files_dst)',
-                '--defs', '<@(_defs)',
-              ],
-            },
-          ],  # actions
-        }, # end of target 'remoting_me2me_host_archive'
-      ],  # end of 'targets'
-    }],  # '<(wix_path) != ""'
-
-  ],  # end of 'conditions'
-
   'targets': [
     {
       'target_name': 'remoting_breakpad',
       ],
     },  # end of target 'remoting_breakpad'
 
-    {
-      'target_name': 'remoting_client_plugin',
-      'type': 'static_library',
-      'variables': { 'enable_wexit_time_destructors': 1, },
-      'defines': [
-        'HAVE_STDINT_H',  # Required by on2_integer.h
-      ],
-      'dependencies': [
-        '../net/net.gyp:net',
-        '../ppapi/ppapi.gyp:ppapi_cpp_objects',
-        '../third_party/webrtc/modules/modules.gyp:desktop_capture',
-        '../ui/events/events.gyp:dom4_keycode_converter',
-        'remoting_base',
-        'remoting_client',
-        'remoting_protocol',
-      ],
-      'sources': [
-        'client/plugin/chromoting_instance.cc',
-        'client/plugin/chromoting_instance.h',
-        'client/plugin/delegating_signal_strategy.cc',
-        'client/plugin/delegating_signal_strategy.h',
-        'client/plugin/normalizing_input_filter.cc',
-        'client/plugin/normalizing_input_filter.h',
-        'client/plugin/normalizing_input_filter_cros.cc',
-        'client/plugin/normalizing_input_filter_mac.cc',
-        'client/plugin/pepper_audio_player.cc',
-        'client/plugin/pepper_audio_player.h',
-        'client/plugin/pepper_entrypoints.cc',
-        'client/plugin/pepper_entrypoints.h',
-        'client/plugin/pepper_input_handler.cc',
-        'client/plugin/pepper_input_handler.h',
-        'client/plugin/pepper_network_manager.cc',
-        'client/plugin/pepper_network_manager.h',
-        'client/plugin/pepper_packet_socket_factory.cc',
-        'client/plugin/pepper_packet_socket_factory.h',
-        'client/plugin/pepper_plugin_thread_delegate.cc',
-        'client/plugin/pepper_plugin_thread_delegate.h',
-        'client/plugin/pepper_port_allocator.cc',
-        'client/plugin/pepper_port_allocator.h',
-        'client/plugin/pepper_token_fetcher.cc',
-        'client/plugin/pepper_token_fetcher.h',
-        'client/plugin/pepper_util.cc',
-        'client/plugin/pepper_util.h',
-        'client/plugin/pepper_view.cc',
-        'client/plugin/pepper_view.h',
-      ],
-      'conditions' : [
-        [ 'chromeos==0', {
-          'sources!': [
-            'client/plugin/normalizing_input_filter_cros.cc',
-          ],
-        }],
-      ],
-    },  # end of target 'remoting_client_plugin'
-
+    # TODO(garykac): This target should be moved into remoting_client.gypi.
+    # It can't currently because of an issue with GYP where initialized
+    # path variables in gypi includes cause a GYP failure.
+    # See crrev.com/15968005 and crrev.com/15972007 for context.
     {
       'target_name': 'remoting_webapp',
       'type': 'none',
         'remoting_webapp_apps_v2_js_files': [
           'webapp/background.js',
         ],
+        'output_dir': '<(PRODUCT_DIR)/remoting/remoting.webapp',
+        'zip_path': '<(PRODUCT_DIR)/remoting-webapp.zip',
       },
       'dependencies': [
         'remoting_resources',
             'remoting_host_plugin',
           ],
         }],
+        ['run_jscompile != 0', {
+          'variables': {
+            'success_stamp': '<(PRODUCT_DIR)/remoting_webapp_jscompile.stamp',
+          },
+          'actions': [
+            {
+              'action_name': 'Verify remoting webapp',
+              'inputs': [
+                '<@(remoting_webapp_js_files)',
+                '<@(remoting_webapp_js_proto_files)',
+              ],
+              'outputs': [
+                '<(success_stamp)',
+              ],
+              'action': [
+                'python', 'tools/jscompile.py',
+                '<@(remoting_webapp_js_files)',
+                '<@(remoting_webapp_js_proto_files)',
+                '--success-stamp',
+                '<(success_stamp)'
+              ],
+            },
+          ],  # actions
+        }],
       ],
       'actions': [
         {
           'action_name': 'Build Remoting WebApp',
-          'output_dir': '<(PRODUCT_DIR)/remoting/remoting.webapp',
-          'zip_path': '<(PRODUCT_DIR)/remoting-webapp.zip',
           'inputs': [
             'webapp/build-webapp.py',
             '<(chrome_version_path)',
             }],
           ],
           'outputs': [
-            '<(_output_dir)',
-            '<(_zip_path)',
+            '<(output_dir)',
+            '<(zip_path)',
           ],
           'action': [
             'python', 'webapp/build-webapp.py',
             '<(buildtype)',
             '<(version_full)',
             '<(host_plugin_mime_type)',
-            '<(_output_dir)',
-            '<(_zip_path)',
+            '<(output_dir)',
+            '<(zip_path)',
             '<(plugin_path)',
             '<@(remoting_webapp_files)',
             '--locales',
     },  # end of target 'remoting_base'
 
     {
-      'target_name': 'remoting_client',
-      'type': 'static_library',
-      'variables': { 'enable_wexit_time_destructors': 1, },
-      'dependencies': [
-        'remoting_base',
-        'remoting_protocol',
-        '../third_party/libyuv/libyuv.gyp:libyuv',
-        '../third_party/webrtc/modules/modules.gyp:desktop_capture',
-      ],
-      'sources': [
-        'client/audio_decode_scheduler.cc',
-        'client/audio_decode_scheduler.h',
-        'client/audio_player.cc',
-        'client/audio_player.h',
-        'client/chromoting_client.cc',
-        'client/chromoting_client.h',
-        'client/chromoting_stats.cc',
-        'client/chromoting_stats.h',
-        'client/client_config.cc',
-        'client/client_config.h',
-        'client/client_context.cc',
-        'client/client_context.h',
-        'client/client_user_interface.h',
-        'client/frame_consumer.h',
-        'client/frame_consumer_proxy.cc',
-        'client/frame_consumer_proxy.h',
-        'client/frame_producer.h',
-        'client/key_event_mapper.cc',
-        'client/key_event_mapper.h',
-        'client/software_video_renderer.cc',
-        'client/software_video_renderer.h',
-        'client/video_renderer.h',
-      ],
-    },  # end of target 'remoting_client'
-
-    {
       'target_name': 'remoting_protocol',
       'type': 'static_library',
       'variables': { 'enable_wexit_time_destructors': 1, },
         'protocol/video_writer.h',
       ],
     },  # end of target 'remoting_protocol'
-
-    # Remoting unit tests
-    {
-      'target_name': 'remoting_unittests',
-      'type': '<(gtest_target_type)',
-      'dependencies': [
-        '../base/base.gyp:base',
-        '../base/base.gyp:base_i18n',
-        '../base/base.gyp:test_support_base',
-        '../ipc/ipc.gyp:ipc',
-        '../net/net.gyp:net_test_support',
-        '../ppapi/ppapi.gyp:ppapi_cpp',
-        '../testing/gmock.gyp:gmock',
-        '../testing/gtest.gyp:gtest',
-        '../third_party/webrtc/modules/modules.gyp:desktop_capture',
-        '../ui/gfx/gfx.gyp:gfx',
-        '../ui/gfx/gfx.gyp:gfx_geometry',
-        '../ui/ui.gyp:ui',
-        'remoting_base',
-        'remoting_breakpad',
-        'remoting_client',
-        'remoting_client_plugin',
-        'remoting_host',
-        'remoting_host_setup_base',
-        'remoting_it2me_host_static',
-        'remoting_native_messaging_base',
-        'remoting_protocol',
-        'remoting_resources',
-      ],
-      'defines': [
-        'VERSION=<(version_full)',
-      ],
-      'include_dirs': [
-        '../testing/gmock/include',
-      ],
-      'sources': [
-        '../chrome/test/base/run_all_remoting_unittests.cc',
-        'base/auth_token_util_unittest.cc',
-        'base/auto_thread_task_runner_unittest.cc',
-        'base/auto_thread_unittest.cc',
-        'base/breakpad_win_unittest.cc',
-        'base/capabilities_unittest.cc',
-        'base/compound_buffer_unittest.cc',
-        'base/rate_counter_unittest.cc',
-        'base/resources_unittest.cc',
-        'base/rsa_key_pair_unittest.cc',
-        'base/running_average_unittest.cc',
-        'base/test_rsa_key_pair.h',
-        'base/typed_buffer_unittest.cc',
-        'base/util_unittest.cc',
-        'client/audio_player_unittest.cc',
-        'client/key_event_mapper_unittest.cc',
-        'client/plugin/normalizing_input_filter_cros_unittest.cc',
-        'client/plugin/normalizing_input_filter_mac_unittest.cc',
-        'codec/audio_encoder_opus_unittest.cc',
-        'codec/codec_test.cc',
-        'codec/codec_test.h',
-        'codec/video_decoder_vpx_unittest.cc',
-        'codec/video_encoder_verbatim_unittest.cc',
-        'codec/video_encoder_vpx_unittest.cc',
-        'host/audio_silence_detector_unittest.cc',
-        'host/branding.cc',
-        'host/branding.h',
-        'host/capture_scheduler_unittest.cc',
-        'host/chromoting_host_context_unittest.cc',
-        'host/chromoting_host_unittest.cc',
-        'host/client_session_unittest.cc',
-        'host/config_file_watcher_unittest.cc',
-        'host/daemon_process_unittest.cc',
-        'host/desktop_process_unittest.cc',
-        'host/desktop_shape_tracker_unittest.cc',
-        'host/heartbeat_sender_unittest.cc',
-        'host/host_change_notification_listener_unittest.cc',
-        'host/host_mock_objects.cc',
-        'host/host_status_monitor_fake.h',
-        'host/host_status_sender_unittest.cc',
-        'host/ipc_desktop_environment_unittest.cc',
-        'host/it2me/it2me_native_messaging_host_unittest.cc',
-        'host/json_host_config_unittest.cc',
-        'host/linux/x_server_clipboard_unittest.cc',
-        'host/local_input_monitor_unittest.cc',
-        'host/log_to_server_unittest.cc',
-        'host/native_messaging/native_messaging_reader_unittest.cc',
-        'host/native_messaging/native_messaging_writer_unittest.cc',
-        'host/pairing_registry_delegate_linux_unittest.cc',
-        'host/pairing_registry_delegate_win_unittest.cc',
-        'host/pin_hash_unittest.cc',
-        'host/policy_hack/fake_policy_watcher.cc',
-        'host/policy_hack/fake_policy_watcher.h',
-        'host/policy_hack/mock_policy_callback.cc',
-        'host/policy_hack/mock_policy_callback.h',
-        'host/policy_hack/policy_watcher_unittest.cc',
-        'host/register_support_host_request_unittest.cc',
-        'host/remote_input_filter_unittest.cc',
-        'host/resizing_host_observer_unittest.cc',
-        'host/screen_capturer_fake.cc',
-        'host/screen_capturer_fake.h',
-        'host/screen_resolution_unittest.cc',
-        'host/server_log_entry_unittest.cc',
-        'host/setup/me2me_native_messaging_host_unittest.cc',
-        'host/setup/oauth_helper_unittest.cc',
-        'host/setup/pin_validator_unittest.cc',
-        'host/shaped_screen_capturer_unittest.cc',
-        'host/token_validator_factory_impl_unittest.cc',
-        'host/video_scheduler_unittest.cc',
-        'host/win/rdp_client_unittest.cc',
-        'host/win/worker_process_launcher.cc',
-        'host/win/worker_process_launcher.h',
-        'host/win/worker_process_launcher_unittest.cc',
-        'jingle_glue/chromium_socket_factory_unittest.cc',
-        'jingle_glue/fake_signal_strategy.cc',
-        'jingle_glue/fake_signal_strategy.h',
-        'jingle_glue/iq_sender_unittest.cc',
-        'jingle_glue/mock_objects.cc',
-        'jingle_glue/mock_objects.h',
-        'protocol/authenticator_test_base.cc',
-        'protocol/authenticator_test_base.h',
-        'protocol/buffered_socket_writer_unittest.cc',
-        'protocol/channel_multiplexer_unittest.cc',
-        'protocol/clipboard_echo_filter_unittest.cc',
-        'protocol/clipboard_filter_unittest.cc',
-        'protocol/connection_tester.cc',
-        'protocol/connection_tester.h',
-        'protocol/connection_to_client_unittest.cc',
-        'protocol/content_description_unittest.cc',
-        'protocol/fake_authenticator.cc',
-        'protocol/fake_authenticator.h',
-        'protocol/fake_session.cc',
-        'protocol/fake_session.h',
-        'protocol/input_event_tracker_unittest.cc',
-        'protocol/input_filter_unittest.cc',
-        'protocol/jingle_messages_unittest.cc',
-        'protocol/jingle_session_unittest.cc',
-        'protocol/message_decoder_unittest.cc',
-        'protocol/message_reader_unittest.cc',
-        'protocol/mouse_input_filter_unittest.cc',
-        'protocol/negotiating_authenticator_unittest.cc',
-        'protocol/pairing_registry_unittest.cc',
-        'protocol/ppapi_module_stub.cc',
-        'protocol/protocol_mock_objects.cc',
-        'protocol/protocol_mock_objects.h',
-        'protocol/ssl_hmac_channel_authenticator_unittest.cc',
-        'protocol/third_party_authenticator_unittest.cc',
-        'protocol/v2_authenticator_unittest.cc',
-      ],
-      'conditions': [
-        [ 'OS=="win"', {
-          'defines': [
-            '_ATL_NO_EXCEPTIONS',
-          ],
-          'include_dirs': [
-            '../breakpad/src',
-          ],
-          'link_settings': {
-            'libraries': [
-              '-lrpcrt4.lib',
-              '-lwtsapi32.lib',
-            ],
-          },
-        }],
-        [ 'OS=="mac" or (OS=="linux" and chromeos==0)', {
-          # Javascript unittests are disabled on CrOS because they cause
-          # valgrind and test errors.
-          #
-          # Javascript unittests are disabled on Windows because they add a
-          # dependency on 'common_constants' which (only on Windows) requires
-          # additional dependencies:
-          #   '../content/content.gyp:content_common',
-          #   'installer_util',
-          # These targets are defined in .gypi files that would need to be
-          # included here:
-          #   '../chrome/chrome_common.gypi',
-          #   '../chrome/chrome_installer.gypi',
-          #   '../chrome/chrome_installer_util.gypi',
-          # But we can't do that because ninja will complain about multiple
-          # target definitions.
-          # TODO(garykac): Move installer_util into a proper .gyp file so that
-          # it can be included in multiple .gyp files.
-          'includes': [
-            '../chrome/js_unittest_rules.gypi',
-          ],
-          'dependencies': [
-            '../chrome/common_constants.gyp:common_constants',
-            '../v8/tools/gyp/v8.gyp:v8',
-          ],
-          'sources': [
-            '../chrome/test/base/v8_unit_test.cc',
-            '../chrome/test/base/v8_unit_test.h',
-            'webapp/browser_globals.gtestjs',
-            'webapp/all_js_load.gtestjs',
-            'webapp/format_iq.gtestjs',
-            '<@(remoting_webapp_js_files)',
-          ],
-        }],
-        [ 'OS=="android"', {
-          'dependencies!': [
-            'remoting_client_plugin',
-          ],
-        }],
-        [ 'OS=="android" and gtest_target_type=="shared_library"', {
-          'dependencies': [
-            '../testing/android/native_test.gyp:native_test_native_code',
-          ],
-        }],
-        [ 'chromeos==0', {
-          'sources!': [
-            'client/plugin/normalizing_input_filter_cros_unittest.cc',
-          ],
-        }],
-        ['enable_remoting_host == 0', {
-          'dependencies!': [
-            'remoting_host',
-            'remoting_host_setup_base',
-            'remoting_it2me_host_static',
-            'remoting_native_messaging_base',
-          ],
-          'sources/': [
-            ['exclude', '^codec/'],
-            ['exclude', '^host/'],
-            ['exclude', '^base/resources_unittest\\.cc$'],
-          ]
-        }],
-        ['toolkit_uses_gtk == 1', {
-          'dependencies': [
-            # Needed for the following #include chain:
-            #   base/run_all_unittests.cc
-            #   ../base/test_suite.h
-            #   gtk/gtk.h
-            '../build/linux/system.gyp:gtk',
-            '../build/linux/system.gyp:ssl',
-          ],
-          'conditions': [
-            [ 'linux_use_tcmalloc==1', {
-                'dependencies': [
-                  '../base/allocator/allocator.gyp:allocator',
-                ],
-              },
-            ],
-          ],
-        }],  # end of 'toolkit_uses_gtk == 1'
-      ],  # end of 'conditions'
-    },  # end of target 'remoting_unittests'
   ],  # end of targets
 }