summaryrefslogtreecommitdiff
path: root/chromium/remoting
diff options
context:
space:
mode:
authorZeno Albisser <zeno.albisser@digia.com>2013-08-15 21:46:11 +0200
committerZeno Albisser <zeno.albisser@digia.com>2013-08-15 21:46:11 +0200
commit679147eead574d186ebf3069647b4c23e8ccace6 (patch)
treefc247a0ac8ff119f7c8550879ebb6d3dd8d1ff69 /chromium/remoting
downloadqtwebengine-chromium-679147eead574d186ebf3069647b4c23e8ccace6.tar.gz
Initial import.
Diffstat (limited to 'chromium/remoting')
-rw-r--r--chromium/remoting/proto/chromotocol.gyp27
-rw-r--r--chromium/remoting/remoting.gyp2921
2 files changed, 2948 insertions, 0 deletions
diff --git a/chromium/remoting/proto/chromotocol.gyp b/chromium/remoting/proto/chromotocol.gyp
new file mode 100644
index 00000000000..baf8c40e92c
--- /dev/null
+++ b/chromium/remoting/proto/chromotocol.gyp
@@ -0,0 +1,27 @@
+# Copyright (c) 2012 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+{
+ 'variables': {
+ 'chromium_code': 1,
+ },
+ 'targets': [
+ {
+ 'target_name': 'chromotocol_proto_lib',
+ 'type': 'static_library',
+ 'sources': [
+ 'audio.proto',
+ 'control.proto',
+ 'event.proto',
+ 'internal.proto',
+ 'mux.proto',
+ 'video.proto',
+ ],
+ 'variables': {
+ 'proto_out_dir': 'remoting/proto',
+ },
+ 'includes': ['../../build/protoc.gypi'],
+ },
+ ],
+}
diff --git a/chromium/remoting/remoting.gyp b/chromium/remoting/remoting.gyp
new file mode 100644
index 00000000000..6e856a85fb8
--- /dev/null
+++ b/chromium/remoting/remoting.gyp
@@ -0,0 +1,2921 @@
+# Copyright (c) 2012 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+{
+ 'variables': {
+ 'chromium_code': 1,
+
+ 'variables': {
+ 'conditions': [
+ # Enable the multi-process host on Windows by default.
+ ['OS=="win"', {
+ 'remoting_multi_process%': 1,
+ }, {
+ 'remoting_multi_process%': 0,
+ }],
+ ],
+ },
+
+ 'remoting_multi_process%': '<(remoting_multi_process)',
+ 'remoting_rdp_session%': 1,
+
+ 'remoting_localize_path': 'tools/build/remoting_localize.py',
+
+ # The |major|, |build| and |patch| versions are inherited from Chrome.
+ # Since Chrome's |minor| version is always '0', we replace it with a
+ # Chromoting-specific patch version.
+ # Note that we check both the |chrome_version_path| file and the
+ # |remoting_version_path| so that we can override the Chrome version
+ # numbers if needed.
+ 'version_py_path': '../chrome/tools/build/version.py',
+ 'remoting_version_path': '../remoting/VERSION',
+ 'chrome_version_path': '../chrome/VERSION',
+ 'version_major':
+ '<!(python <(version_py_path) -f <(chrome_version_path) -f <(remoting_version_path) -t "@MAJOR@")',
+ 'version_minor':
+ '<!(python <(version_py_path) -f <(remoting_version_path) -t "@REMOTING_PATCH@")',
+ 'version_short':
+ '<(version_major).<(version_minor).'
+ '<!(python <(version_py_path) -f <(chrome_version_path) -f <(remoting_version_path) -t "@BUILD@")',
+ 'version_full':
+ '<(version_short).'
+ '<!(python <(version_py_path) -f <(chrome_version_path) -f <(remoting_version_path) -t "@PATCH@")',
+
+ 'branding_path': '../remoting/branding_<(branding)',
+
+ 'webapp_locale_dir': '<(SHARED_INTERMEDIATE_DIR)/remoting/webapp/_locales',
+
+ '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@")',
+ 'host_plugin_extension': 'plugin',
+ 'host_plugin_prefix': '',
+ }],
+ ['os_posix == 1 and OS != "mac" and target_arch == "ia32"', {
+ # linux 32 bit
+ 'host_plugin_extension': 'ia32.so',
+ 'host_plugin_prefix': 'lib',
+ }],
+ ['os_posix == 1 and OS != "mac" and target_arch == "x64"', {
+ # linux 64 bit
+ 'host_plugin_extension': 'x64.so',
+ 'host_plugin_prefix': 'lib',
+ }],
+ ['os_posix == 1 and OS != "mac" and target_arch == "arm"', {
+ 'host_plugin_extension': 'arm.so',
+ 'host_plugin_prefix': 'lib',
+ }],
+ ['os_posix == 1 and OS != "mac" and target_arch == "mipsel"', {
+ 'host_plugin_extension': 'mipsel.so',
+ 'host_plugin_prefix': 'lib',
+ }],
+ ['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.
+ 'daemon_controller_clsid':
+ '<!(python -c "import uuid; print uuid.uuid4()" 1)',
+ 'rdp_desktop_session_clsid':
+ '<!(python -c "import uuid; print uuid.uuid4()" 2)',
+ }],
+ ],
+
+ 'remoting_locales': [
+ 'ar', 'bg', 'ca', 'cs', 'da', 'de', 'el', 'en', 'en-GB', 'es',
+ 'es-419', 'et', 'fi', 'fil', 'fr', 'he', 'hi', 'hr', 'hu', 'id',
+ 'it', 'ja', 'ko', 'lt', 'lv', 'nb', 'nl', 'pl', 'pt-BR', 'pt-PT',
+ 'ro', 'ru', 'sk', 'sl', 'sr', 'sv', 'th', 'tr', 'uk', 'vi',
+ 'zh-CN', 'zh-TW',
+ ],
+ 'remoting_locale_files': [
+ # Build the list of .pak files generated from remoting_strings.grd.
+ '<!@pymod_do_main(remoting_copy_locales -o -p <(OS) -x '
+ '<(PRODUCT_DIR) <(remoting_locales))',
+ ],
+ 'remoting_webapp_locale_files': [
+ # Build the list of .json files generated from remoting_strings.grd.
+ '<!@pymod_do_main(remoting_localize --locale_output '
+ '"<(webapp_locale_dir)/@{json_suffix}/messages.json" '
+ '--print_only <(remoting_locales))',
+ ],
+ 'remoting_webapp_files': [
+ 'resources/chromoting16.webp',
+ 'resources/chromoting48.webp',
+ 'resources/chromoting128.webp',
+ 'resources/disclosure_arrow_down.webp',
+ 'resources/disclosure_arrow_right.webp',
+ 'resources/host_setup_instructions.webp',
+ 'resources/icon_cross.webp',
+ 'resources/icon_host.webp',
+ 'resources/icon_pencil.webp',
+ 'resources/icon_warning.webp',
+ 'resources/infographic_my_computers.webp',
+ 'resources/infographic_remote_assistance.webp',
+ 'resources/tick.webp',
+ 'webapp/connection_history.css',
+ 'webapp/connection_stats.css',
+ 'webapp/main.css',
+ 'webapp/main.html',
+ 'webapp/manifest.json',
+ 'webapp/menu_button.css',
+ 'webapp/oauth2_callback.html',
+ 'webapp/open_sans.css',
+ 'webapp/open_sans.woff',
+ 'webapp/scale-to-fit.webp',
+ 'webapp/spinner.gif',
+ 'webapp/toolbar.css',
+ 'webapp/wcs_sandbox.html',
+ ],
+ 'remoting_webapp_js_files': [
+ 'webapp/butter_bar.js',
+ 'webapp/client_plugin.js',
+ 'webapp/client_plugin_async.js',
+ 'webapp/client_screen.js',
+ 'webapp/client_session.js',
+ 'webapp/clipboard.js',
+ 'webapp/connection_history.js',
+ 'webapp/connection_stats.js',
+ 'webapp/cs_oauth2_trampoline.js',
+ 'webapp/cs_third_party_auth_trampoline.js',
+ 'webapp/error.js',
+ 'webapp/event_handlers.js',
+ 'webapp/format_iq.js',
+ 'webapp/host.js',
+ 'webapp/host_controller.js',
+ 'webapp/host_dispatcher.js',
+ 'webapp/host_list.js',
+ 'webapp/host_native_messaging.js',
+ 'webapp/host_screen.js',
+ 'webapp/host_session.js',
+ 'webapp/host_settings.js',
+ 'webapp/host_setup_dialog.js',
+ 'webapp/host_table_entry.js',
+ 'webapp/identity.js',
+ 'webapp/l10n.js',
+ 'webapp/log_to_server.js',
+ 'webapp/menu_button.js',
+ 'webapp/oauth2.js',
+ 'webapp/oauth2_api.js',
+ 'webapp/oauth2_callback.js',
+ 'webapp/paired_client_manager.js',
+ 'webapp/plugin_settings.js',
+ 'webapp/remoting.js',
+ 'webapp/server_log_entry.js',
+ 'webapp/session_connector.js',
+ 'webapp/stats_accumulator.js',
+ 'webapp/third_party_host_permissions.js',
+ 'webapp/xhr_proxy.js',
+ 'webapp/third_party_token_fetcher.js',
+ 'webapp/toolbar.js',
+ 'webapp/ui_mode.js',
+ 'webapp/wcs.js',
+ 'webapp/wcs_loader.js',
+ 'webapp/wcs_sandbox_container.js',
+ 'webapp/wcs_sandbox_content.js',
+ 'webapp/xhr.js',
+ ],
+ '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',
+ ],
+
+ 'target_defaults': {
+ 'defines': [
+ 'BINARY_CORE=1',
+ 'BINARY_DESKTOP=2',
+ 'BINARY_HOST_ME2ME=3',
+ 'BINARY_HOST_PLUGIN=4',
+ ],
+ 'include_dirs': [
+ '..', # Root of Chrome checkout
+ ],
+ 'variables': {
+ 'win_debug_RuntimeChecks': '0',
+ },
+ 'conditions': [
+ ['OS=="mac" and mac_breakpad==1', {
+ 'defines': [
+ 'REMOTING_ENABLE_BREAKPAD'
+ ],
+ }],
+ ['OS=="win" and buildtype == "Official"', {
+ 'defines': [
+ 'REMOTING_ENABLE_BREAKPAD'
+ ],
+ }],
+ ['OS=="win" and remoting_multi_process != 0 and \
+ remoting_rdp_session != 0', {
+ 'defines': [
+ 'REMOTING_RDP_SESSION',
+ ],
+ }],
+ ['remoting_multi_process != 0', {
+ 'defines': [
+ 'REMOTING_MULTI_PROCESS',
+ ],
+ }],
+ ],
+ },
+
+ 'conditions': [
+ ['enable_remoting_host==1', {
+ 'targets': [
+ {
+ 'target_name': 'remoting_host',
+ 'type': 'static_library',
+ 'variables': { 'enable_wexit_time_destructors': 1, },
+ 'dependencies': [
+ 'remoting_base',
+ 'remoting_jingle_glue',
+ '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',
+ ],
+ '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/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/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/desktop_environment.h',
+ 'host/desktop_resizer.h',
+ 'host/desktop_resizer_linux.cc',
+ '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/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_status_sender.cc',
+ 'host/host_status_sender.h',
+ 'host/host_change_notification_listener.cc',
+ 'host/host_change_notification_listener.h',
+ 'host/host_config.cc',
+ 'host/host_config.h',
+ 'host/host_exit_codes.h',
+ 'host/host_exit_codes.cc',
+ 'host/host_secret.cc',
+ 'host/host_secret.h',
+ 'host/host_status_monitor.h',
+ 'host/host_status_observer.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/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/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/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"', {
+ 'sources': [
+ '../third_party/GTM/AppKit/GTMCarbonEvent.h',
+ '../third_party/GTM/AppKit/GTMCarbonEvent.m',
+ '../third_party/GTM/DebugUtils/GTMDebugSelectorValidation.h',
+ '../third_party/GTM/DebugUtils/GTMTypeCasting.h',
+ '../third_party/GTM/Foundation/GTMObjectSingleton.h',
+ '../third_party/GTM/GTMDefines.h',
+ ],
+ 'include_dirs': [
+ '../third_party/GTM',
+ '../third_party/GTM/AppKit',
+ '../third_party/GTM/DebugUtils',
+ '../third_party/GTM/Foundation',
+ ],
+ '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',
+ ],
+ 'msvs_settings': {
+ 'VCCLCompilerTool': {
+ # /MP conflicts with #import directive so we limit the number
+ # of processes to spawn to 1.
+ 'AdditionalOptions': ['/MP1'],
+ },
+ },
+ }],
+ ],
+ }, # end of target 'remoting_host'
+
+ {
+ '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_host_event_logger',
+ 'remoting_host_logging',
+ 'remoting_jingle_glue',
+ ],
+ '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.h',
+ 'host/setup/daemon_controller_linux.cc',
+ 'host/setup/daemon_controller_mac.mm',
+ 'host/setup/daemon_controller_win.cc',
+ 'host/setup/daemon_installer_win.cc',
+ 'host/setup/daemon_installer_win.h',
+ 'host/setup/host_starter.cc',
+ 'host/setup/host_starter.h',
+ 'host/setup/native_messaging_host.cc',
+ 'host/setup/native_messaging_host.h',
+ 'host/setup/native_messaging_reader.cc',
+ 'host/setup/native_messaging_reader.h',
+ 'host/setup/native_messaging_writer.cc',
+ 'host/setup/native_messaging_writer.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_event_logger',
+ 'remoting_host_logging',
+ 'remoting_infoplist_strings',
+ 'remoting_host_setup_base',
+ 'remoting_jingle_glue',
+ '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_resources/@{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_core_resources',
+ 'remoting_version_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',
+ },
+ 'VCLinkerTool': {
+ 'AdditionalOptions': [
+ "\"/manifestdependency:type='win32' "
+ "name='Microsoft.Windows.Common-Controls' "
+ "version='6.0.0.0' "
+ "processorArchitecture='*' "
+ "publicKeyToken='6595b64144ccf1df' language='*'\"",
+ ],
+ },
+ },
+ }],
+ ],
+ }, # end of target 'remoting_host_plugin'
+ {
+ 'target_name': 'remoting_infoplist_strings',
+ 'type': 'none',
+ 'dependencies': [
+ 'remoting_resources',
+ ],
+ 'actions': [
+ {
+ 'action_name': 'generate_host_plugin_strings',
+ 'inputs': [
+ '<(remoting_localize_path)',
+ 'host/plugin/host_plugin-InfoPlist.strings.jinja2',
+ ],
+ 'outputs': [
+ '<!@pymod_do_main(remoting_localize --locale_output '
+ '"<(SHARED_INTERMEDIATE_DIR)/remoting/host_plugin_resources/@{json_suffix}.lproj/InfoPlist.strings" '
+ '--print_only <(remoting_locales))',
+ ],
+ 'action': [
+ 'python',
+ '<(remoting_localize_path)',
+ '--locale_dir', '<(webapp_locale_dir)',
+ '--template', 'host/plugin/host_plugin-InfoPlist.strings.jinja2',
+ '--locale_output',
+ '<(SHARED_INTERMEDIATE_DIR)/remoting/host_plugin_resources/@{json_suffix}.lproj/InfoPlist.strings',
+ '--encoding', 'utf-8',
+ '<@(remoting_locales)',
+ ],
+ },
+ {
+ 'action_name': 'generate_host_strings',
+ 'inputs': [
+ '<(remoting_localize_path)',
+ 'host/remoting_me2me_host-InfoPlist.strings.jinja2',
+ ],
+ 'outputs': [
+ '<!@pymod_do_main(remoting_localize --locale_output '
+ '"<(SHARED_INTERMEDIATE_DIR)/remoting/host_resources/@{json_suffix}.lproj/InfoPlist.strings" '
+ '--print_only <(remoting_locales))',
+ ],
+ 'action': [
+ 'python',
+ '<(remoting_localize_path)',
+ '--locale_dir', '<(webapp_locale_dir)',
+ '--template', 'host/remoting_me2me_host-InfoPlist.strings.jinja2',
+ '--locale_output',
+ '<(SHARED_INTERMEDIATE_DIR)/remoting/host_resources/@{json_suffix}.lproj/InfoPlist.strings',
+ '--encoding', 'utf-8',
+ '<@(remoting_locales)',
+ ],
+ },
+ {
+ 'action_name': 'generate_preference_pane_strings',
+ 'inputs': [
+ '<(remoting_localize_path)',
+ 'host/mac/me2me_preference_pane-InfoPlist.strings.jinja2',
+ ],
+ 'outputs': [
+ '<!@pymod_do_main(remoting_localize --locale_output '
+ '"<(SHARED_INTERMEDIATE_DIR)/remoting/preference_pane_resources/@{json_suffix}.lproj/InfoPlist.strings" '
+ '--print_only <(remoting_locales))',
+ ],
+ 'action': [
+ 'python',
+ '<(remoting_localize_path)',
+ '--locale_dir', '<(webapp_locale_dir)',
+ '--template', 'host/mac/me2me_preference_pane-InfoPlist.strings.jinja2',
+ '--locale_output',
+ '<(SHARED_INTERMEDIATE_DIR)/remoting/preference_pane_resources/@{json_suffix}.lproj/InfoPlist.strings',
+ '--encoding', 'utf-8',
+ '<@(remoting_locales)',
+ ],
+ },
+ {
+ 'action_name': 'generate_uninstaller_strings',
+ 'inputs': [
+ '<(remoting_localize_path)',
+ 'host/installer/mac/uninstaller/remoting_uninstaller-InfoPlist.strings.jinja2',
+ ],
+ 'outputs': [
+ '<!@pymod_do_main(remoting_localize --locale_output '
+ '"<(SHARED_INTERMEDIATE_DIR)/remoting/uninstaller_resources/@{json_suffix}.lproj/InfoPlist.strings" '
+ '--print_only <(remoting_locales))',
+ ],
+ 'action': [
+ 'python',
+ '<(remoting_localize_path)',
+ '--locale_dir', '<(webapp_locale_dir)',
+ '--template', 'host/installer/mac/uninstaller/remoting_uninstaller-InfoPlist.strings.jinja2',
+ '--locale_output',
+ '<(SHARED_INTERMEDIATE_DIR)/remoting/uninstaller_resources/@{json_suffix}.lproj/InfoPlist.strings',
+ '--encoding', 'utf-8',
+ '<@(remoting_locales)',
+ ],
+ },
+ ],
+ }, # end of target 'remoting_infoplist_strings'
+ ], # end of 'targets'
+ }], # 'enable_remoting_host==1'
+
+ ['OS!="win" and enable_remoting_host==1', {
+ 'conditions': [
+ ['OS=="linux" and branding=="Chrome" and chromeos==0', {
+ 'variables': {
+ 'deb_cmd': 'host/installer/linux/build-deb.sh',
+ 'deb_filename': 'host/installer/<!(["<(deb_cmd)", "-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': [
+ {
+ #'variables': {
+ # 'deb_cmd': 'host/installer/linux/build-deb.sh',
+ #},
+ '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_me2me_host',
+ 'remoting_start_host',
+ 'remoting_native_messaging_host',
+ ],
+ 'actions': [
+ {
+ 'action_name': 'build_debian_package',
+ 'inputs': [
+ '<(deb_cmd)',
+ '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': [ '<(deb_cmd)', '-s', '<(DEPTH)' ],
+ },
+ ],
+ },
+ ],
+ }],
+ ],
+ '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_host_event_logger',
+ 'remoting_host_logging',
+ 'remoting_host_setup_base',
+ 'remoting_infoplist_strings',
+ 'remoting_jingle_glue',
+ 'remoting_me2me_host_static',
+ ],
+ '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/host_resources/@{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_native_messaging_host',
+ 'type': 'executable',
+ 'variables': { 'enable_wexit_time_destructors': 1, },
+ 'dependencies': [
+ '../base/base.gyp:base',
+ 'remoting_host',
+ 'remoting_host_logging',
+ 'remoting_host_setup_base',
+ 'remoting_native_messaging_manifest',
+ ],
+ 'defines': [
+ 'VERSION=<(version_full)',
+ ],
+ 'sources': [
+ 'host/setup/native_messaging_host_main.cc',
+ ],
+ 'conditions': [
+ ['OS=="linux" and linux_use_tcmalloc==1', {
+ 'dependencies': [
+ '../base/allocator/allocator.gyp:allocator',
+ ],
+ }],
+ ],
+ }, # end of target 'remoting_native_messaging_host'
+ ], # end of 'targets'
+ }], # 'OS!="win" and enable_remoting_host==1'
+
+
+ ['OS=="linux" and chromeos==0 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/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/uninstaller_resources/@{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',
+ ],
+ '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',
+ ],
+ 'generated_files_dst': [
+ 'PreferencePanes/org.chromium.chromoting.prefPane',
+ 'PrivilegedHelperTools/org.chromium.chromoting.me2me_host.app',
+ 'Applications/<(host_uninstaller_name).app',
+ ],
+ '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/preference_pane_resources/@{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_logging',
+ ],
+ '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)',
+ 'msvs_cygwin_shell': 0,
+ },
+ ],
+ }, # 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)',
+ 'msvs_cygwin_shell': 0,
+ },
+ ],
+ }, # end of target 'remoting_lib_rc'
+ {
+ 'target_name': 'remoting_configurer',
+ 'type': 'executable',
+ 'defines': [
+ '_ATL_NO_EXCEPTIONS',
+ ],
+ 'dependencies': [
+ '../base/base.gyp:base',
+ '../crypto/crypto.gyp:crypto',
+ 'remoting_host',
+ 'remoting_host_setup_base',
+ ],
+ 'sources': [
+ 'host/branding.cc',
+ 'host/setup/win/host_configurer.cc',
+ 'host/setup/win/host_configurer.rc',
+ 'host/setup/win/host_configurer_window.cc',
+ 'host/setup/win/host_configurer_window.h',
+ 'host/setup/win/host_configurer_resource.h',
+ 'host/setup/win/load_string_from_resource.cc',
+ 'host/setup/win/load_string_from_resource.h',
+ 'host/setup/win/start_host_window.cc',
+ 'host/setup/win/start_host_window.h',
+ ],
+ 'msvs_settings': {
+ 'VCLinkerTool': {
+ 'AdditionalOptions': [
+ "\"/manifestdependency:type='win32' "
+ "name='Microsoft.Windows.Common-Controls' "
+ "version='6.0.0.0' "
+ "processorArchitecture='*' "
+ "publicKeyToken='6595b64144ccf1df' language='*'\"",
+ ],
+ # 2 == /SUBSYSTEM:WINDOWS
+ 'SubSystem': '2',
+ },
+ },
+ }, # end of target 'remoting_configurer'
+ # 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_version_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_core_resources',
+ 'remoting_host',
+ 'remoting_host_event_logger',
+ 'remoting_host_logging',
+ 'remoting_host_setup_base',
+ 'remoting_lib_idl',
+ 'remoting_lib_ps',
+ 'remoting_lib_rc',
+ 'remoting_me2me_host_static',
+ 'remoting_protocol',
+ 'remoting_version_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/chromoting_messages.cc',
+ 'host/chromoting_messages.h',
+ 'host/config_file_watcher.cc',
+ 'host/config_file_watcher.h',
+ 'host/daemon_process.cc',
+ 'host/daemon_process.h',
+ 'host/daemon_process_win.cc',
+ 'host/desktop_process.cc',
+ 'host/desktop_process.h',
+ 'host/desktop_process_main.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/host_exit_codes.h',
+ 'host/host_exit_codes.cc',
+ 'host/host_export.h',
+ '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/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',
+ },
+ 'VCLinkerTool': {
+ 'AdditionalDependencies': [
+ 'comctl32.lib',
+ 'rpcns4.lib',
+ 'rpcrt4.lib',
+ 'uuid.lib',
+ 'wtsapi32.lib',
+ ],
+ 'AdditionalOptions': [
+ "\"/manifestdependency:type='win32' "
+ "name='Microsoft.Windows.Common-Controls' "
+ "version='6.0.0.0' "
+ "processorArchitecture='*' "
+ "publicKeyToken='6595b64144ccf1df' language='*'\"",
+
+ # 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_core_resources',
+ 'type': 'none',
+ 'dependencies': [
+ 'remoting_resources',
+ ],
+ 'hard_dependency': 1,
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '<(SHARED_INTERMEDIATE_DIR)',
+ ],
+ },
+ 'sources': [
+ 'host/win/core.rc.jinja2'
+ ],
+ 'rules': [
+ {
+ 'rule_name': 'version',
+ 'extension': 'jinja2',
+ 'outputs': [
+ '<(SHARED_INTERMEDIATE_DIR)/remoting/core.rc'
+ ],
+ 'action': [
+ 'python',
+ '<(remoting_localize_path)',
+ '--locale_dir', '<(webapp_locale_dir)',
+ '--template', '<(RULE_INPUT_PATH)',
+ '--output', '<@(_outputs)',
+ '<@(remoting_locales)',
+ ],
+ 'message': 'Localizing the dialogs and strings'
+ },
+ ],
+ }, # end of target 'remoting_core_resources'
+ {
+ 'target_name': 'remoting_desktop',
+ 'type': 'executable',
+ 'variables': { 'enable_wexit_time_destructors': 1, },
+ 'defines': [
+ 'BINARY=BINARY_DESKTOP',
+ ],
+ 'dependencies': [
+ 'remoting_core',
+ 'remoting_version_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_version_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)',
+ '<@(remoting_locales)',
+ ],
+ 'message': 'Localizing the event log messages'
+ },
+ ],
+ }, # end of target 'remoting_host_messages'
+
+ # Generates localized the version information 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_version_resources',
+ 'type': 'none',
+ 'dependencies': [
+ 'remoting_resources',
+ ],
+ 'hard_dependency': 1,
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '<(SHARED_INTERMEDIATE_DIR)',
+ ],
+ },
+ 'sources': [
+ '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)',
+ ],
+ 'outputs': [
+ '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc',
+ ],
+ '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)',
+ '<@(remoting_locales)',
+ ],
+ 'message': 'Localizing the version information'
+ },
+ ],
+ }, # end of target 'remoting_version_resources'
+ ], # end of 'targets'
+ }], # 'OS=="win"'
+
+ ['OS=="android"', {
+ 'targets': [
+ {
+ 'target_name': 'remoting_client_jni',
+ 'type': 'shared_library',
+ 'dependencies': [
+ 'remoting_base',
+ 'remoting_client',
+ 'remoting_jingle_glue',
+ 'remoting_protocol',
+ '../google_apis/google_apis.gyp:google_apis',
+ ],
+ 'sources': [
+ 'client/jni/android_keymap.cc',
+ 'client/jni/android_keymap.h',
+ 'client/jni/chromoting_jni_instance.cc',
+ 'client/jni/chromoting_jni_instance.h',
+ 'client/jni/chromoting_jni_runtime.cc',
+ 'client/jni/chromoting_jni_runtime.h',
+ 'client/jni/jni_frame_consumer.cc',
+ 'client/jni/jni_frame_consumer.h',
+ 'client/jni/jni_interface.cc',
+ ],
+ }, # end of target 'remoting_client_jni'
+ {
+ 'target_name': 'remoting_android_resources',
+ 'type': 'none',
+ 'copies': [
+ {
+ 'destination': '<(SHARED_INTERMEDIATE_DIR)/remoting/android/res/drawable',
+ 'files': [
+ 'resources/chromoting128.png',
+ 'resources/icon_host.png',
+ ],
+ },
+ {
+ 'destination': '<(SHARED_INTERMEDIATE_DIR)/remoting/android/res/layout',
+ 'files': [
+ 'resources/layout/main.xml',
+ 'resources/layout/host.xml',
+ 'resources/layout/pin_dialog.xml',
+ ],
+ },
+ {
+ 'destination': '<(SHARED_INTERMEDIATE_DIR)/remoting/android/res/menu',
+ 'files': [
+ 'resources/menu/chromoting_actionbar.xml',
+ 'resources/menu/desktop_actionbar.xml',
+ ],
+ },
+ {
+ 'destination': '<(SHARED_INTERMEDIATE_DIR)/remoting/android/res/values',
+ 'files': [
+ 'resources/strings.xml',
+ 'resources/styles.xml',
+ ],
+ },
+ ],
+ }, # end of target 'remoting_android_resources'
+ {
+ 'target_name': 'remoting_apk',
+ 'type': 'none',
+ 'dependencies': [
+ 'remoting_client_jni',
+ 'remoting_android_resources',
+ ],
+ 'variables': {
+ 'apk_name': 'Chromoting',
+ 'manifest_package_name': 'org.chromium.chromoting',
+ 'native_lib_target': 'libremoting_client_jni',
+ 'java_in_dir': 'android/java',
+ 'additional_res_dirs': [ '<(SHARED_INTERMEDIATE_DIR)/remoting/android/res' ],
+ 'additional_input_paths': [
+ 'android/java/src/org/chromium/chromoting/Chromoting.java',
+ 'android/java/src/org/chromium/chromoting/Desktop.java',
+ 'android/java/src/org/chromium/chromoting/DesktopView.java',
+ 'android/java/src/org/chromium/chromoting/jni/JniInterface.java',
+ '<(PRODUCT_DIR)/obj/remoting/remoting_android_resources.actions_rules_copies.stamp',
+ ],
+ },
+ 'includes': [ '../build/java_apk.gypi' ],
+ }, # end of target 'remoting_apk'
+ ], # end of 'targets'
+ }], # 'OS=="android"'
+
+ # 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',
+ ],
+ 'msvs_cygwin_shell': 0,
+ '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_manifest',
+ ],
+ '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/native_messaging_manifest.json',
+ 'resources/chromoting.ico',
+ ],
+ 'generated_files_dst': [
+ '<@(_compiled_inputs_dst)',
+ 'files/sas.dll',
+ 'files/native_messaging_manifest.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',
+ 'type': 'static_library',
+ 'variables': { 'enable_wexit_time_destructors': 1, },
+ 'dependencies': [
+ '../base/base.gyp:base',
+ ],
+ 'sources': [
+ 'base/breakpad.h',
+ 'base/breakpad_linux.cc',
+ 'base/breakpad_mac.mm',
+ 'base/breakpad_win.cc',
+ ],
+ 'conditions': [
+ ['OS=="mac"', {
+ 'dependencies': [
+ '../breakpad/breakpad.gyp:breakpad',
+ ],
+ }],
+ ['OS=="win"', {
+ 'dependencies': [
+ '../breakpad/breakpad.gyp:breakpad_handler',
+ ],
+ }],
+ ],
+ }, # 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': [
+ 'remoting_base',
+ 'remoting_client',
+ 'remoting_jingle_glue',
+ '../net/net.gyp:net',
+ '../ppapi/ppapi.gyp:ppapi_cpp_objects',
+ '../skia/skia.gyp:skia',
+ '../third_party/webrtc/modules/modules.gyp:desktop_capture',
+ ],
+ 'sources': [
+ 'client/plugin/chromoting_instance.cc',
+ 'client/plugin/chromoting_instance.h',
+ 'client/plugin/mac_key_event_processor.cc',
+ 'client/plugin/mac_key_event_processor.h',
+ '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_view.cc',
+ 'client/plugin/pepper_view.h',
+ 'client/plugin/pepper_util.cc',
+ 'client/plugin/pepper_util.h',
+ 'client/plugin/pepper_signal_strategy.cc',
+ 'client/plugin/pepper_signal_strategy.h',
+ ],
+ }, # end of target 'remoting_client_plugin'
+
+ {
+ 'target_name': 'remoting_host_event_logger',
+ 'type': 'static_library',
+ 'variables': { 'enable_wexit_time_destructors': 1, },
+ 'dependencies': [
+ 'remoting_base',
+ ],
+ 'sources': [
+ 'host/host_event_logger.h',
+ 'host/host_event_logger_posix.cc',
+ 'host/host_event_logger_win.cc',
+ ],
+ 'conditions': [
+ ['OS=="win"', {
+ 'dependencies': [
+ 'remoting_host_messages',
+ ],
+ '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': [ ],
+ 'outputs': [
+ '<(_output_dir)/remoting_host_messages.h',
+ '<(_output_dir)/remoting_host_messages.rc',
+ ],
+ 'msvs_cygwin_shell': 0,
+ '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 'conditions'
+ }, # end of target 'remoting_host_event_logger'
+
+ {
+ 'target_name': 'remoting_webapp',
+ 'type': 'none',
+ 'variables': {
+ 'remoting_webapp_patch_files': [
+ 'webapp/appsv2.patch',
+ ],
+ 'remoting_webapp_apps_v2_js_files': [
+ 'webapp/background.js',
+ ],
+ },
+ 'dependencies': [
+ 'remoting_resources',
+ 'remoting_host_plugin',
+ ],
+ 'locale_files': [
+ '<@(remoting_webapp_locale_files)',
+ ],
+ 'conditions': [
+ ['enable_remoting_host==1', {
+ 'locale_files': [
+ '<@(remoting_locale_files)',
+ ],
+ 'variables': {
+ 'plugin_path': '<(PRODUCT_DIR)/<(host_plugin_prefix)remoting_host_plugin.<(host_plugin_extension)',
+ },
+ }, {
+ 'variables': {
+ 'plugin_path': '',
+ },
+ 'dependencies!': [
+ 'remoting_host_plugin',
+ ],
+ }],
+ ],
+ '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)',
+ '<(remoting_version_path)',
+ '<@(remoting_webapp_files)',
+ '<@(remoting_webapp_js_files)',
+ '<@(_locale_files)',
+ ],
+ 'conditions': [
+ ['enable_remoting_host==1', {
+ 'inputs': [
+ '<(plugin_path)',
+ ],
+ }],
+ ],
+ 'outputs': [
+ '<(_output_dir)',
+ '<(_zip_path)',
+ ],
+ 'action': [
+ 'python', 'webapp/build-webapp.py',
+ '<(buildtype)',
+ '<(version_full)',
+ '<(host_plugin_mime_type)',
+ '<(_output_dir)',
+ '<(_zip_path)',
+ '<(plugin_path)',
+ '<@(remoting_webapp_files)',
+ '<@(remoting_webapp_js_files)',
+ '--locales',
+ '<@(_locale_files)',
+ ],
+ 'msvs_cygwin_shell': 0,
+ },
+ ],
+ 'target_conditions': [
+ # We cannot currently build the appsv2 version of WebApp on Windows as
+ # there isn't a version of the "patch" tool available on windows. We
+ # should remove this condition when we remove the reliance on the 'patch'.
+
+ # We define this in a 'target_conditions' section because 'plugin_path'
+ # is defined in a 'conditions' section so its value is not available
+ # when gyp processes the 'actions' in a 'conditions" section.
+ ['OS != "win"', {
+ 'actions': [
+ {
+ 'action_name': 'Build Remoting WebApp V2',
+ 'output_dir': '<(PRODUCT_DIR)/remoting/remoting.webapp.v2',
+ 'zip_path': '<(PRODUCT_DIR)/remoting-webapp.v2.zip',
+ 'inputs': [
+ 'webapp/build-webapp.py',
+ '<(chrome_version_path)',
+ '<(remoting_version_path)',
+ '<@(remoting_webapp_apps_v2_js_files)',
+ '<@(remoting_webapp_files)',
+ '<@(remoting_webapp_js_files)',
+ '<@(remoting_webapp_locale_files)',
+ '<@(remoting_webapp_patch_files)',
+ ],
+ 'conditions': [
+ ['enable_remoting_host==1', {
+ 'inputs': [
+ '<(plugin_path)',
+ ],
+ }],
+ ],
+ 'outputs': [
+ '<(_output_dir)',
+ '<(_zip_path)',
+ ],
+ 'action': [
+ 'python', 'webapp/build-webapp.py',
+ '<(buildtype)',
+ '<(version_full)',
+ '<(host_plugin_mime_type)',
+ '<(_output_dir)',
+ '<(_zip_path)',
+ '<(plugin_path)',
+ '<@(remoting_webapp_apps_v2_js_files)',
+ '<@(remoting_webapp_files)',
+ '<@(remoting_webapp_js_files)',
+ '--locales',
+ '<@(remoting_webapp_locale_files)',
+ '--patches',
+ '<@(remoting_webapp_patch_files)',
+ ],
+ 'msvs_cygwin_shell': 0,
+ },
+ ],
+ }],
+ ],
+ }, # end of target 'remoting_webapp'
+
+ # Generates 'native_messaging_manifest.json' to be included in the
+ # installation.
+ {
+ 'target_name': 'remoting_native_messaging_manifest',
+ 'type': 'none',
+ 'dependencies': [
+ 'remoting_resources',
+ ],
+ 'variables': {
+ 'input': 'host/setup/native_messaging_manifest.json',
+ 'output': '<(PRODUCT_DIR)/remoting/native_messaging_manifest.json',
+ },
+ 'conditions': [
+ [ 'OS=="win"', {
+ 'variables': {
+ 'native_messaging_host_path': 'remoting_host.exe',
+ },
+ }, {
+ 'variables': {
+ 'native_messaging_host_path': '/opt/google/chrome-remote-desktop/native-messaging-host',
+ },
+ }],
+ ],
+ 'actions': [
+ {
+ 'action_name': 'generate_manifest',
+ 'inputs': [
+ '<(remoting_localize_path)',
+ '<(input)',
+ ],
+ 'outputs': [
+ '<(output)',
+ ],
+ 'action': [
+ 'python',
+ '<(remoting_localize_path)',
+ '--define', 'NATIVE_MESSAGING_HOST_PATH=<(native_messaging_host_path)',
+ '--locale_dir', '<(webapp_locale_dir)',
+ '--template', '<(input)',
+ '--locale_output',
+ '<(output)',
+ '--encoding', 'utf-8',
+ 'en',
+ ],
+ },
+ ],
+ }, # end of target 'remoting_native_messaging_manifest'
+ {
+ 'target_name': 'remoting_resources',
+ 'type': 'none',
+ 'variables': {
+ 'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)',
+ 'grit_resource_ids': 'resources/resource_ids',
+ 'sources': [
+ 'base/resources_unittest.cc',
+ 'host/continue_window_mac.mm',
+ 'host/disconnect_window_mac.mm',
+ 'host/installer/mac/uninstaller/remoting_uninstaller-InfoPlist.strings.jinja2',
+ 'host/mac/me2me_preference_pane-InfoPlist.strings.jinja2',
+ 'host/plugin/host_plugin-InfoPlist.strings.jinja2',
+ 'host/win/core.rc.jinja2',
+ 'host/win/host_messages.mc.jinja2',
+ 'host/win/version.rc.jinja2',
+ 'webapp/butter_bar.js',
+ 'webapp/client_screen.js',
+ 'webapp/error.js',
+ 'webapp/host_list.js',
+ 'webapp/host_setup_dialog.js',
+ 'webapp/host_table_entry.js',
+ 'webapp/main.html',
+ 'webapp/manifest.json',
+ 'webapp/paired_client_manager.js',
+ 'webapp/remoting.js',
+ ],
+ },
+ 'actions': [
+ {
+ 'action_name': 'verify_resources',
+ 'inputs': [
+ 'resources/remoting_strings.grd',
+ 'tools/verify_resources.py',
+ '<@(sources)'
+ ],
+ 'outputs': [
+ '<(PRODUCT_DIR)/remoting_resources_verified.stamp',
+ ],
+ 'action': [
+ 'python',
+ 'tools/verify_resources.py',
+ '-t', '<(PRODUCT_DIR)/remoting_resources_verified.stamp',
+ '-r', 'resources/remoting_strings.grd',
+ '<@(sources)',
+ ],
+ },
+ {
+ 'action_name': 'remoting_strings',
+ 'variables': {
+ 'grit_grd_file': 'resources/remoting_strings.grd',
+ },
+ 'includes': [ '../build/grit_action.gypi' ],
+ },
+ {
+ 'action_name': 'copy_locales',
+ 'variables': {
+ 'copy_output_dir%': '<(PRODUCT_DIR)',
+ },
+ 'inputs': [
+ 'tools/build/remoting_copy_locales.py',
+ '<!@pymod_do_main(remoting_copy_locales -i -p <(OS) -g <(grit_out_dir) <(remoting_locales))'
+ ],
+ 'outputs': [
+ '<!@pymod_do_main(remoting_copy_locales -o -p <(OS) -x <(copy_output_dir) <(remoting_locales))'
+ ],
+ 'action': [
+ 'python',
+ 'tools/build/remoting_copy_locales.py',
+ '-p', '<(OS)',
+ '-g', '<(grit_out_dir)',
+ '-x', '<(copy_output_dir)/.',
+ '<@(remoting_locales)',
+ ],
+ }
+ ],
+ 'includes': [ '../build/grit_target.gypi' ],
+ }, # end of target 'remoting_resources'
+
+ {
+ 'target_name': 'remoting_base',
+ 'type': 'static_library',
+ 'variables': { 'enable_wexit_time_destructors': 1, },
+ 'dependencies': [
+ '../base/base.gyp:base',
+ '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
+ '../ui/ui.gyp:ui',
+ '../net/net.gyp:net',
+ '../skia/skia.gyp:skia',
+ '../third_party/libvpx/libvpx.gyp:libvpx',
+ '../third_party/libyuv/libyuv.gyp:libyuv',
+ '../third_party/opus/opus.gyp:opus',
+ '../third_party/protobuf/protobuf.gyp:protobuf_lite',
+ '../third_party/speex/speex.gyp:libspeex',
+ '../media/media.gyp:media',
+ '../media/media.gyp:shared_memory_support',
+ 'remoting_jingle_glue',
+ 'remoting_resources',
+ 'proto/chromotocol.gyp:chromotocol_proto_lib',
+ '../third_party/webrtc/modules/modules.gyp:desktop_capture',
+ ],
+ 'export_dependent_settings': [
+ '../base/base.gyp:base',
+ '../net/net.gyp:net',
+ '../skia/skia.gyp:skia',
+ '../third_party/protobuf/protobuf.gyp:protobuf_lite',
+ 'proto/chromotocol.gyp:chromotocol_proto_lib',
+ ],
+ # This target needs a hard dependency because dependent targets
+ # depend on chromotocol_proto_lib for headers.
+ 'hard_dependency': 1,
+ 'sources': [
+ 'base/auth_token_util.cc',
+ 'base/auth_token_util.h',
+ 'base/auto_thread.cc',
+ 'base/auto_thread.h',
+ 'base/auto_thread_task_runner.cc',
+ 'base/auto_thread_task_runner.h',
+ 'base/capabilities.cc',
+ 'base/capabilities.h',
+ 'base/compound_buffer.cc',
+ 'base/compound_buffer.h',
+ 'base/constants.cc',
+ 'base/constants.h',
+ 'base/plugin_thread_task_runner.cc',
+ 'base/plugin_thread_task_runner.h',
+ 'base/rate_counter.cc',
+ 'base/rate_counter.h',
+ 'base/resources.h',
+ 'base/resources_linux.cc',
+ 'base/resources_mac.cc',
+ 'base/resources_win.cc',
+ 'base/rsa_key_pair.cc',
+ 'base/rsa_key_pair.h',
+ 'base/running_average.cc',
+ 'base/running_average.h',
+ 'base/scoped_sc_handle_win.h',
+ 'base/socket_reader.cc',
+ 'base/socket_reader.h',
+ 'base/typed_buffer.h',
+ 'base/url_request_context.cc',
+ 'base/url_request_context.h',
+ 'base/util.cc',
+ 'base/util.h',
+ 'base/vlog_net_log.cc',
+ 'base/vlog_net_log.h',
+ 'codec/audio_decoder.cc',
+ 'codec/audio_decoder.h',
+ 'codec/audio_decoder_opus.cc',
+ 'codec/audio_decoder_opus.h',
+ 'codec/audio_decoder_speex.cc',
+ 'codec/audio_decoder_speex.h',
+ 'codec/audio_decoder_verbatim.cc',
+ 'codec/audio_decoder_verbatim.h',
+ 'codec/audio_encoder.h',
+ 'codec/audio_encoder_opus.cc',
+ 'codec/audio_encoder_opus.h',
+ 'codec/audio_encoder_speex.cc',
+ 'codec/audio_encoder_speex.h',
+ 'codec/audio_encoder_verbatim.cc',
+ 'codec/audio_encoder_verbatim.h',
+ 'codec/video_decoder.h',
+ 'codec/video_decoder_verbatim.cc',
+ 'codec/video_decoder_verbatim.h',
+ 'codec/video_decoder_vp8.cc',
+ 'codec/video_decoder_vp8.h',
+ 'codec/video_encoder.h',
+ 'codec/video_encoder_verbatim.cc',
+ 'codec/video_encoder_verbatim.h',
+ 'codec/video_encoder_vp8.cc',
+ 'codec/video_encoder_vp8.h',
+ ],
+ }, # end of target 'remoting_base'
+
+ {
+ 'target_name': 'remoting_host_logging',
+ 'type': 'static_library',
+ 'variables': { 'enable_wexit_time_destructors': 1, },
+ 'dependencies': [
+ '../base/base.gyp:base',
+ ],
+ 'sources': [
+ 'host/branding.cc',
+ 'host/branding.h',
+ 'host/logging.h',
+ 'host/logging_posix.cc',
+ 'host/logging_win.cc',
+ ],
+ }, # end of target 'remoting_host_logging'
+
+ {
+ 'target_name': 'remoting_client',
+ 'type': 'static_library',
+ 'variables': { 'enable_wexit_time_destructors': 1, },
+ 'dependencies': [
+ 'remoting_base',
+ 'remoting_jingle_glue',
+ 'remoting_protocol',
+ '../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/rectangle_update_decoder.cc',
+ 'client/rectangle_update_decoder.h',
+ ],
+ }, # end of target 'remoting_client'
+
+ {
+ 'target_name': 'remoting_jingle_glue',
+ 'type': 'static_library',
+ 'variables': { 'enable_wexit_time_destructors': 1, },
+ 'dependencies': [
+ '../base/base.gyp:base',
+ '../jingle/jingle.gyp:jingle_glue',
+ '../jingle/jingle.gyp:notifier',
+ '../third_party/libjingle/libjingle.gyp:libjingle',
+ ],
+ 'export_dependent_settings': [
+ '../third_party/libjingle/libjingle.gyp:libjingle',
+ ],
+ 'sources': [
+ 'jingle_glue/chromium_port_allocator.cc',
+ 'jingle_glue/chromium_port_allocator.h',
+ 'jingle_glue/chromium_socket_factory.cc',
+ 'jingle_glue/chromium_socket_factory.h',
+ 'jingle_glue/iq_sender.cc',
+ 'jingle_glue/iq_sender.h',
+ 'jingle_glue/jingle_info_request.cc',
+ 'jingle_glue/jingle_info_request.h',
+ 'jingle_glue/network_settings.h',
+ 'jingle_glue/signal_strategy.h',
+ 'jingle_glue/xmpp_signal_strategy.cc',
+ 'jingle_glue/xmpp_signal_strategy.h',
+ ],
+ }, # end of target 'remoting_jingle_glue'
+
+ {
+ 'target_name': 'remoting_protocol',
+ 'type': 'static_library',
+ 'variables': { 'enable_wexit_time_destructors': 1, },
+ 'dependencies': [
+ 'remoting_base',
+ 'remoting_jingle_glue',
+ '../crypto/crypto.gyp:crypto',
+ '../jingle/jingle.gyp:jingle_glue',
+ '../net/net.gyp:net',
+ ],
+ 'export_dependent_settings': [
+ 'remoting_jingle_glue',
+ ],
+ 'sources': [
+ 'protocol/audio_reader.cc',
+ 'protocol/audio_reader.h',
+ 'protocol/audio_stub.h',
+ 'protocol/audio_writer.cc',
+ 'protocol/audio_writer.h',
+ 'protocol/auth_util.cc',
+ 'protocol/auth_util.h',
+ 'protocol/authentication_method.cc',
+ 'protocol/authentication_method.h',
+ 'protocol/authenticator.cc',
+ 'protocol/authenticator.h',
+ 'protocol/buffered_socket_writer.cc',
+ 'protocol/buffered_socket_writer.h',
+ 'protocol/channel_authenticator.h',
+ 'protocol/channel_dispatcher_base.cc',
+ 'protocol/channel_dispatcher_base.h',
+ 'protocol/channel_multiplexer.cc',
+ 'protocol/channel_multiplexer.h',
+ 'protocol/client_control_dispatcher.cc',
+ 'protocol/client_control_dispatcher.h',
+ 'protocol/client_event_dispatcher.cc',
+ 'protocol/client_event_dispatcher.h',
+ 'protocol/client_stub.h',
+ 'protocol/clipboard_echo_filter.cc',
+ 'protocol/clipboard_echo_filter.h',
+ 'protocol/clipboard_filter.cc',
+ 'protocol/clipboard_filter.h',
+ 'protocol/clipboard_stub.h',
+ 'protocol/clipboard_thread_proxy.cc',
+ 'protocol/clipboard_thread_proxy.h',
+ 'protocol/connection_to_client.cc',
+ 'protocol/connection_to_client.h',
+ 'protocol/connection_to_host.cc',
+ 'protocol/connection_to_host.h',
+ 'protocol/content_description.cc',
+ 'protocol/content_description.h',
+ 'protocol/errors.h',
+ 'protocol/host_control_dispatcher.cc',
+ 'protocol/host_control_dispatcher.h',
+ 'protocol/host_event_dispatcher.cc',
+ 'protocol/host_event_dispatcher.h',
+ 'protocol/host_stub.h',
+ 'protocol/input_event_tracker.cc',
+ 'protocol/input_event_tracker.h',
+ 'protocol/input_filter.cc',
+ 'protocol/input_filter.h',
+ 'protocol/input_stub.h',
+ 'protocol/it2me_host_authenticator_factory.cc',
+ 'protocol/it2me_host_authenticator_factory.h',
+ 'protocol/jingle_messages.cc',
+ 'protocol/jingle_messages.h',
+ 'protocol/jingle_session.cc',
+ 'protocol/jingle_session.h',
+ 'protocol/jingle_session_manager.cc',
+ 'protocol/jingle_session_manager.h',
+ 'protocol/libjingle_transport_factory.cc',
+ 'protocol/libjingle_transport_factory.h',
+ 'protocol/me2me_host_authenticator_factory.cc',
+ 'protocol/me2me_host_authenticator_factory.h',
+ 'protocol/message_decoder.cc',
+ 'protocol/message_decoder.h',
+ 'protocol/message_reader.cc',
+ 'protocol/message_reader.h',
+ 'protocol/mouse_input_filter.cc',
+ 'protocol/mouse_input_filter.h',
+ 'protocol/name_value_map.h',
+ 'protocol/negotiating_authenticator_base.cc',
+ 'protocol/negotiating_authenticator_base.h',
+ 'protocol/negotiating_client_authenticator.cc',
+ 'protocol/negotiating_client_authenticator.h',
+ 'protocol/negotiating_host_authenticator.cc',
+ 'protocol/negotiating_host_authenticator.h',
+ 'protocol/pairing_authenticator_base.cc',
+ 'protocol/pairing_authenticator_base.h',
+ 'protocol/pairing_client_authenticator.cc',
+ 'protocol/pairing_client_authenticator.h',
+ 'protocol/pairing_host_authenticator.cc',
+ 'protocol/pairing_host_authenticator.h',
+ 'protocol/pairing_registry.cc',
+ 'protocol/pairing_registry.h',
+ 'protocol/protobuf_video_reader.cc',
+ 'protocol/protobuf_video_reader.h',
+ 'protocol/protobuf_video_writer.cc',
+ 'protocol/protobuf_video_writer.h',
+ 'protocol/session.h',
+ 'protocol/session_config.cc',
+ 'protocol/session_config.h',
+ 'protocol/session_manager.h',
+ 'protocol/ssl_hmac_channel_authenticator.cc',
+ 'protocol/ssl_hmac_channel_authenticator.h',
+ 'protocol/transport.cc',
+ 'protocol/transport.h',
+ 'protocol/transport_config.cc',
+ 'protocol/transport_config.h',
+ 'protocol/util.cc',
+ 'protocol/util.h',
+ 'protocol/third_party_authenticator_base.cc',
+ 'protocol/third_party_authenticator_base.h',
+ 'protocol/third_party_client_authenticator.cc',
+ 'protocol/third_party_client_authenticator.h',
+ 'protocol/third_party_host_authenticator.cc',
+ 'protocol/third_party_host_authenticator.h',
+ 'protocol/v2_authenticator.cc',
+ 'protocol/v2_authenticator.h',
+ 'protocol/video_reader.cc',
+ 'protocol/video_reader.h',
+ 'protocol/video_stub.h',
+ 'protocol/video_writer.cc',
+ 'protocol/video_writer.h',
+ ],
+ }, # end of target 'remoting_protocol'
+
+ # Remoting unit tests
+ {
+ 'target_name': 'remoting_unittests',
+ 'type': 'executable',
+ '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',
+ '../ui/ui.gyp:ui',
+ 'remoting_base',
+ 'remoting_breakpad',
+ 'remoting_client',
+ 'remoting_client_plugin',
+ 'remoting_host',
+ 'remoting_host_event_logger',
+ 'remoting_host_setup_base',
+ 'remoting_jingle_glue',
+ 'remoting_protocol',
+ 'remoting_resources',
+ '../third_party/webrtc/modules/modules.gyp:desktop_capture',
+ ],
+ '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/mac_key_event_processor_unittest.cc',
+ 'codec/audio_encoder_opus_unittest.cc',
+ 'codec/codec_test.cc',
+ 'codec/codec_test.h',
+ 'codec/video_decoder_vp8_unittest.cc',
+ 'codec/video_encoder_verbatim_unittest.cc',
+ 'codec/video_encoder_vp8_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.cc',
+ 'host/daemon_process.h',
+ 'host/daemon_process_unittest.cc',
+ 'host/desktop_process.cc',
+ 'host/desktop_process.h',
+ 'host/desktop_process_unittest.cc',
+ 'host/desktop_session.cc',
+ 'host/desktop_session.h',
+ 'host/desktop_session_agent.cc',
+ 'host/desktop_session_agent.h',
+ 'host/heartbeat_sender_unittest.cc',
+ 'host/host_status_sender_unittest.cc',
+ 'host/host_change_notification_listener_unittest.cc',
+ 'host/host_mock_objects.cc',
+ 'host/host_mock_objects.h',
+ 'host/host_status_monitor_fake.h',
+ 'host/ipc_desktop_environment_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/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/native_messaging_host_unittest.cc',
+ 'host/setup/native_messaging_reader_unittest.cc',
+ 'host/setup/native_messaging_writer_unittest.cc',
+ 'host/setup/oauth_helper_unittest.cc',
+ 'host/setup/pin_validator_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)',
+ ],
+ }],
+ ['enable_remoting_host == 0', {
+ 'dependencies!': [
+ 'remoting_host',
+ 'remoting_host_setup_base',
+ ],
+ 'sources/': [
+ ['exclude', 'codec/*'],
+ ['exclude', 'host/*'],
+ ]
+ }],
+ ['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
+}