blob: 436e6fef989d50e5a1e2f5f00c811b9bb80bdb97 [file] [log] [blame]
# 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.
{
'includes': [
'remoting_host_linux.gypi',
'remoting_host_mac.gypi',
'remoting_host_win.gypi',
],
'variables': {
'conditions': [
# Remoting host is supported only on Windows, OSX and Linux (with X11).
['OS=="win" or OS=="mac" or (OS=="linux" and use_x11==1)', {
'enable_me2me_host': 1,
'enable_it2me_host': 1,
'enable_remoting_host': 1,
}, {
'enable_me2me_host': 0,
'enable_it2me_host': 0,
'enable_remoting_host': 0,
}],
['chromeos==1', {
'enable_remoting_host': 1,
'enable_me2me_host': 0,
'enable_it2me_host': 1,
}],
],
},
'conditions': [
['enable_remoting_host==1', {
'targets': [
{
# GN version: //remoting/host
'target_name': 'remoting_host',
'type': 'static_library',
'variables': {
'enable_wexit_time_destructors': 1,
'host_bundle_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_HOST_BUNDLE_NAME@")',
'prefpane_bundle_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_PREFPANE_BUNDLE_NAME@")',
},
'dependencies': [
'remoting_base',
'remoting_protocol',
'remoting_resources',
'../base/base.gyp:base_i18n',
'../crypto/crypto.gyp:crypto',
'../google_apis/google_apis.gyp:google_apis',
'../ipc/ipc.gyp:ipc',
'../ui/events/events.gyp:dom4_keycode_converter',
],
'defines': [
'HOST_BUNDLE_NAME="<(host_bundle_name)"',
'PREFPANE_BUNDLE_NAME="<(prefpane_bundle_name)"',
'VERSION=<(version_full)',
],
'sources': [
'<@(remoting_host_sources)',
],
'conditions': [
['OS=="linux"', {
'conditions': [
['use_x11==1', {
'dependencies': [
'../build/linux/system.gyp:x11',
'../build/linux/system.gyp:xext',
'../build/linux/system.gyp:xfixes',
'../build/linux/system.gyp:xi',
'../build/linux/system.gyp:xrandr',
'../build/linux/system.gyp:xtst',
],
}],
['chromeos==0 and use_ozone==0', {
'dependencies': [
# use GTK on Linux, even for Aura builds.
'../build/linux/system.gyp:gtk',
],
}]
],
'link_settings': {
'libraries': [
'-lpam',
],
},
}],
['chromeos==1', {
'dependencies' : [
'../cc/cc.gyp:cc',
'../components/components.gyp:policy_component_common',
'../content/content.gyp:content',
'../ppapi/ppapi_internal.gyp:ppapi_host',
'../skia/skia.gyp:skia',
'../ui/aura/aura.gyp:aura',
'../ui/compositor/compositor.gyp:compositor',
'../ui/events/events.gyp:events',
'../ui/events/platform/events_platform.gyp:events_platform',
'../ui/views/views.gyp:views',
],
'include_dirs': [
'../third_party/skia/include/utils',
],
'sources!' : [
'host/clipboard_x11.cc',
'host/continue_window_linux.cc',
'host/disconnect_window_linux.cc',
'host/linux/x_server_clipboard.cc',
'host/linux/x_server_clipboard.h',
'host/policy_hack/policy_watcher_linux.cc',
'host/remoting_me2me_host.cc',
],
'conditions': [
['use_ash==1', {
'dependencies': [
'../ash/ash.gyp:ash',
],
}],
['use_ozone==0', {
'sources!': [
'host/input_injector_chromeos.cc',
'host/input_injector_chromeos.h',
'host/local_input_monitor_chromeos.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',
'remoting_lib_idl',
],
'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',
'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)',
}],
}],
['enable_webrtc==1', {
'dependencies': [
'../third_party/webrtc/modules/modules.gyp:desktop_capture',
'../third_party/libjingle/libjingle.gyp:libpeerconnection',
],
'sources': [
'<@(remoting_cast_sources)',
],
}],
],
}, # 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/pipe_messaging_channel.cc',
'host/native_messaging/pipe_messaging_channel.h',
'host/native_messaging/native_messaging_pipe.cc',
'host/native_messaging/native_messaging_pipe.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_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'
# Generates native messaging manifest files.
{
'target_name': 'remoting_native_messaging_manifests',
'type': 'none',
'conditions': [
[ 'OS == "win"', {
'variables': {
'me2me_host_path': 'remoting_native_messaging_host.exe',
'it2me_host_path': 'remote_assistance_host.exe',
},
}],
[ 'OS == "mac"', {
'variables': {
'me2me_host_bundle_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_HOST_BUNDLE_NAME@")',
'native_messaging_host_bundle_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_NATIVE_MESSAGING_HOST_BUNDLE_NAME@")',
'remote_assistance_host_bundle_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_REMOTE_ASSISTANCE_HOST_BUNDLE_NAME@")',
'me2me_host_path':
'/Library/PrivilegedHelperTools/<(me2me_host_bundle_name)/Contents/MacOS/<(native_messaging_host_bundle_name)/Contents/MacOS/native_messaging_host',
'it2me_host_path':
'/Library/PrivilegedHelperTools/<(me2me_host_bundle_name)/Contents/MacOS/<(remote_assistance_host_bundle_name)/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)',
],
'outputs': [
'<(PRODUCT_DIR)/remoting/<(RULE_INPUT_ROOT)',
],
'action': [
'python', '<(remoting_localize_path)',
'--define', 'ME2ME_HOST_PATH=<(me2me_host_path)',
'--define', 'IT2ME_HOST_PATH=<(it2me_host_path)',
'--variables', '<(branding_path)',
'--template', '<(RULE_INPUT_PATH)',
'--locale_output', '<@(_outputs)',
'en',
],
}],
}, # end of target 'remoting_native_messaging_manifests'
{
'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': [
['OS=="linux" and use_allocator!="none"', {
'dependencies': [
'../base/allocator/allocator.gyp:allocator',
],
}],
],
}, # end of target 'remoting_start_host'
{
'target_name': 'remoting_infoplist_strings',
'type': 'none',
'dependencies': [
'remoting_resources',
],
'sources': [
'host/remoting_me2me_host-InfoPlist.strings.jinja2',
'host/mac/me2me_preference_pane-InfoPlist.strings.jinja2',
'host/installer/mac/uninstaller/remoting_uninstaller-InfoPlist.strings.jinja2',
'host/setup/native_messaging_host-InfoPlist.strings.jinja2',
'host/it2me/remote_assistance_host-InfoPlist.strings.jinja2',
],
'rules': [{
'rule_name': 'generate_strings',
'extension': 'jinja2',
'inputs': [
'<(remoting_localize_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'
['enable_me2me_host==1', {
'targets': [
{
'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'
] # end of targets
}], # end of enable_me2me_host==1
['enable_it2me_host==1', {
'targets': [
{
# GN version: //remoting/host/it2me:common
'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': [
'<@(remoting_it2me_host_static_sources)',
],
}, # end of target 'remoting_it2me_host_static'
] # end of targets
}], # end of 'enable_it2me_host==1'
['OS!="win" and enable_me2me_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',
'<(icu_gyp_path):icudata',
'../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',
],
'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': [
'<(PRODUCT_DIR)/icudtl.dat',
'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 use_allocator!="none"', {
'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': 'native_messaging_host',
'variables': { 'enable_wexit_time_destructors': 1, },
'dependencies': [
'../base/base.gyp:base',
'remoting_breakpad',
'remoting_host',
'remoting_host_setup_base',
'remoting_infoplist_strings',
'remoting_native_messaging_base',
],
'defines': [
'VERSION=<(version_full)',
],
'sources': [
'host/setup/me2me_native_messaging_host_entry_point.cc',
'host/setup/me2me_native_messaging_host_main.cc',
'host/setup/me2me_native_messaging_host_main.h',
],
'conditions': [
['OS=="linux" and use_allocator!="none"', {
'dependencies': [
'../base/allocator/allocator.gyp:allocator',
],
}],
['OS=="mac"', {
'mac_bundle': 1,
'variables': {
'host_bundle_id': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_NATIVE_MESSAGING_HOST_BUNDLE_ID@")',
},
'xcode_settings': {
'INFOPLIST_FILE': 'host/setup/native_messaging_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/setup/native_messaging_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/native_messaging_host-InfoPlist.strings/@{json_suffix}.lproj/InfoPlist.strings" '
'--print_only <(remoting_locales))',
],
'mac_bundle_resources!': [
'host/setup/native_messaging_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
],
}, # end of target 'remoting_me2me_native_messaging_host'
], # targets
}], # end of OS!="win" and enable_me2me_host==1
['OS!="win" and enable_it2me_host==1 and chromeos==0', {
'targets': [
{
'target_name': 'remoting_it2me_native_messaging_host',
'type': 'executable',
'product_name': 'remote_assistance_host',
'variables': { 'enable_wexit_time_destructors': 1, },
'dependencies': [
'../base/base.gyp:base',
'remoting_base',
'remoting_breakpad',
'remoting_host',
'remoting_it2me_host_static',
'remoting_native_messaging_base',
'remoting_protocol',
],
'defines': [
'VERSION=<(version_full)',
],
'sources': [
'host/it2me/it2me_native_messaging_host_entry_point.cc',
'host/it2me/it2me_native_messaging_host_main.cc',
'host/it2me/it2me_native_messaging_host_main.h',
],
'conditions': [
['OS=="linux" and chromeos==0 and use_ozone==0', {
'dependencies': [
# Always use GTK on Linux, even for Aura builds.
'../build/linux/system.gyp:gtk',
],
}],
['OS=="linux" and use_allocator!="none"', {
'dependencies': [
'../base/allocator/allocator.gyp:allocator',
],
}],
['OS=="mac"', {
'mac_bundle': 1,
'variables': {
'host_bundle_id': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_REMOTE_ASSISTANCE_HOST_BUNDLE_ID@")',
},
'xcode_settings': {
'INFOPLIST_FILE': 'host/it2me/remote_assistance_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': [
'<(PRODUCT_DIR)/icudtl.dat',
'host/disconnect_window.xib',
'host/it2me/remote_assistance_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/remote_assistance_host-InfoPlist.strings/@{json_suffix}.lproj/InfoPlist.strings" '
'--print_only <(remoting_locales))',
],
'mac_bundle_resources!': [
'host/it2me/remote_assistance_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
],
}, # end of target 'remoting_it2me_native_messaging_host'
], # end of 'targets'
}], # # end of OS!="win" and enable_it2me_host==1
], # end of 'conditions'
}