blob: 8b670e6a5312a2978a00a962507e7445b360e3cd [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_enable.gypi',
],
'conditions': [
['OS=="mac"', {
'includes': [
'remoting_host_mac.gypi',
],
}],
['OS=="win"', {
'includes': [
'remoting_host_win.gypi',
],
}],
['OS=="linux"', {
'includes': [
'remoting_host_linux.gypi',
],
}],
['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_host_credits',
'remoting_protocol',
'remoting_resources',
'../base/base.gyp:base_i18n',
'../components/components.gyp:policy',
'../components/components.gyp:policy_component_common',
'../crypto/crypto.gyp:crypto',
'../device/power_save_blocker/power_save_blocker.gyp:device_power_save_blocker',
'../google_apis/google_apis.gyp:google_apis',
'../ipc/ipc.gyp:ipc',
'../ui/events/events.gyp:dom_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',
],
}, {
'sources!' : [
'host/linux/unicode_to_keysym.cc',
],
}],
['chromeos==0 and use_ozone==0', {
'dependencies': [
# use GTK on Linux, even for Aura builds.
'../build/linux/system.gyp:gtk2',
],
}]
],
}],
['chromeos==1', {
'dependencies' : [
'../cc/cc.gyp:cc',
'../gpu/gpu.gyp:command_buffer_common',
'../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/curtain_mode_linux.cc',
'host/disconnect_window_linux.cc',
'host/linux/x_server_clipboard.cc',
'host/linux/x_server_clipboard.h',
'host/local_input_monitor_x11.cc',
],
'conditions': [
['use_ash==1', {
'dependencies': [
'../ash/ash.gyp:ash',
],
}],
['use_ozone==0', {
'sources!': [
'host/input_injector_chromeos.cc',
'host/input_injector_chromeos.h',
],
}, { # use_ozone==1
'dependencies' : [
'../ui/ozone/ozone.gyp:ozone',
]
}],
],
}],
['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',
],
},
}],
['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',
],
}],
['remoting_use_gcd==1', {
'defines': [
'USE_GCD',
]
}],
],
}, # end of target 'remoting_host'
{
# GN version: //remoting/host:credits
'target_name': 'remoting_host_credits',
'type': 'none',
'actions': [
{
'action_name': 'Build remoting host credits',
'inputs': [
'../tools/licenses.py',
'host/installer/credits.tmpl',
'host/installer/credits_entry.tmpl',
],
'outputs': [
'<(SHARED_INTERMEDIATE_DIR)/remoting/CREDITS.txt',
],
'hard_dependency': 1,
'action': ['python',
'../tools/licenses.py',
'credits',
'<(SHARED_INTERMEDIATE_DIR)/remoting/CREDITS.txt',
'--file-template', 'host/installer/credits.tmpl',
'--entry-template', 'host/installer/credits_entry.tmpl',
],
},
],
},
{
# GN version: //remoting/host/native_messaging
'target_name': 'remoting_native_messaging_base',
'type': 'static_library',
'variables': { 'enable_wexit_time_destructors': 1, },
'dependencies': [
'../base/base.gyp:base',
],
'sources': [
'<@(remoting_host_native_messaging_sources)',
],
}, # end of target 'remoting_native_messaging_base'
{
# GN version: //remoting/host/setup
'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': [
'<@(remoting_host_setup_sources)',
],
'conditions': [
['OS=="win"', {
'dependencies': [
'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.
{
# GN: //remoting/host:remoting_native_messaging_manifests
'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'
{
# GN: //remoting/host:remoting_infoplist_strings
'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'
{
# 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',
'../components/components.gyp:policy',
'../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'
}], # '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',
'../components/components.gyp:policy',
'../components/components.gyp:policy_component_common',
'../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/pam_authorization_factory_posix.cc',
'host/pam_authorization_factory_posix.h',
'host/remoting_me2me_host.cc',
],
'conditions': [
['OS=="linux"', {
'link_settings': {
'libraries': [
'-lpam',
],
},
}],
['OS=="mac"', {
'link_settings': {
'libraries': [
'libpam.a',
],
},
}],
['OS=="mac" and buildtype=="Official"', {
'sources': [
'internal/internal_mac-inl.h'
],
'defines': [
'USE_REMOTING_MACOSX_INTERNAL'
],
}],
['remoting_use_gcd==1', {
'defines': [
'USE_GCD',
]
}],
], # end of 'conditions'
}, # end of target 'remoting_me2me_host_static'
] # end of targets
}], # end of enable_me2me_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',
'VERSION_FULL': '<(version_full)',
'VERSION_SHORT': '<(version_short)',
'BUNDLE_ID': '<(host_bundle_id)',
},
'mac_bundle_resources': [
'<(PRODUCT_DIR)/icudtl.dat',
'<(SHARED_INTERMEDIATE_DIR)/remoting/CREDITS.txt',
'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
], # end of 'conditions'
}, # end of target 'remoting_me2me_host'
{
# GN: //remoting/host:native_messaging_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=="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',
'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_remoting_host==1', {
'targets': [
{
# GN target: //remoting/host:remoting_start_host
'target_name': 'remoting_start_host',
'type': 'executable',
'variables': { 'enable_wexit_time_destructors': 1, },
'dependencies': [
'remoting_host_setup_base',
],
'sources': [
'host/setup/host_starter.cc',
'host/setup/host_starter.h',
'host/setup/start_host_entry_point.cc',
'host/setup/start_host_main.cc',
'host/setup/start_host_main.h',
],
}, # end of target 'remoting_start_host'
],
'conditions': [
['chromeos==0', {
'targets': [
{
# GN: //remoting/host/it2me:remote_assistance_host
'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:gtk2',
],
}],
['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',
'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 conditions
}, # end of target 'remoting_it2me_native_messaging_host'
], # targets
}, { # chromeos==0
'targets': [
{
# Dummy target for chromeos==1
'target_name': 'remoting_it2me_native_messaging_host',
'type': 'executable',
},
], # targets
}], # end of chromeos==0
], # end of conditions
}], # end of OS!="win" and enable_remoting_host==1
], # end of 'conditions'
}