summaryrefslogtreecommitdiffstats
path: root/chromium/remoting/remoting_host_win.gypi
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/remoting/remoting_host_win.gypi')
-rw-r--r--chromium/remoting/remoting_host_win.gypi617
1 files changed, 617 insertions, 0 deletions
diff --git a/chromium/remoting/remoting_host_win.gypi b/chromium/remoting/remoting_host_win.gypi
new file mode 100644
index 00000000000..7182b82bb6d
--- /dev/null
+++ b/chromium/remoting/remoting_host_win.gypi
@@ -0,0 +1,617 @@
+# Copyright 2014 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': {
+ 'remoting_host_installer_win_roots': [
+ 'host/installer/win/',
+ ],
+ 'remoting_host_installer_win_files': [
+ 'host/installer/win/chromoting.wxs',
+ 'host/installer/win/parameters.json',
+ ],
+ },
+
+ 'conditions': [
+ ['OS=="win"', {
+ 'targets': [
+ {
+ 'target_name': 'remoting_breakpad_tester',
+ 'type': 'executable',
+ 'variables': { 'enable_wexit_time_destructors': 1, },
+ 'dependencies': [
+ '../base/base.gyp:base',
+ 'remoting_host',
+ ],
+ 'sources': [
+ 'tools/breakpad_tester_win.cc',
+ ],
+ }, # end of target 'remoting_breakpad_tester'
+ {
+ 'target_name': 'remoting_lib_idl',
+ 'type': 'static_library',
+ 'sources': [
+ 'host/win/chromoting_lib_idl.templ',
+ '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib.h',
+ '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib.idl',
+ '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib_i.c',
+ ],
+ # This target exports a hard dependency because dependent targets may
+ # include chromoting_lib.h, a generated header.
+ 'hard_dependency': 1,
+ 'msvs_settings': {
+ 'VCMIDLTool': {
+ 'OutputDirectory': '<(SHARED_INTERMEDIATE_DIR)/remoting/host',
+ },
+ },
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '<(SHARED_INTERMEDIATE_DIR)',
+ ],
+ },
+ 'rules': [
+ {
+ 'rule_name': 'generate_idl',
+ 'extension': 'templ',
+ 'outputs': [
+ '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib.idl',
+ ],
+ 'action': [
+ 'python', '<(version_py_path)',
+ '-e', "DAEMON_CONTROLLER_CLSID='<(daemon_controller_clsid)'",
+ '-e', "RDP_DESKTOP_SESSION_CLSID='<(rdp_desktop_session_clsid)'",
+ '<(RULE_INPUT_PATH)',
+ '<@(_outputs)',
+ ],
+ 'process_outputs_as_sources': 1,
+ 'message': 'Generating <@(_outputs)',
+ },
+ ],
+ }, # end of target 'remoting_lib_idl'
+
+ # remoting_lib_ps builds the proxy/stub code generated by MIDL (see
+ # remoting_lib_idl).
+ {
+ 'target_name': 'remoting_lib_ps',
+ 'type': 'static_library',
+ 'defines': [
+ # Prepend 'Ps' to the MIDL-generated routines. This includes
+ # DllGetClassObject, DllCanUnloadNow, DllRegisterServer,
+ # DllUnregisterServer, and DllMain.
+ 'ENTRY_PREFIX=Ps',
+ 'REGISTER_PROXY_DLL',
+ ],
+ 'dependencies': [
+ 'remoting_lib_idl',
+ ],
+ 'sources': [
+ '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib.dlldata.c',
+ '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib_p.c',
+ ],
+ }, # end of target 'remoting_lib_ps'
+
+ # Regenerates 'chromoting_lib.rc' (used to embed 'chromoting_lib.tlb'
+ # into remoting_core.dll's resources) every time
+ # 'chromoting_lib_idl.templ' changes. Making remoting_core depend on
+ # both this and 'remoting_lib_idl' targets ensures that the resorces
+ # are rebuilt every time the type library is updated. GYP alone is
+ # not smart enough to figure out this dependency on its own.
+ {
+ 'target_name': 'remoting_lib_rc',
+ 'type': 'none',
+ 'sources': [
+ 'host/win/chromoting_lib_idl.templ',
+ ],
+ 'hard_dependency': 1,
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '<(SHARED_INTERMEDIATE_DIR)',
+ ],
+ },
+ 'rules': [
+ {
+ 'rule_name': 'generate_rc',
+ 'extension': 'templ',
+ 'outputs': [
+ '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib.rc',
+ ],
+ 'action': [
+ 'echo 1 typelib "remoting/host/chromoting_lib.tlb" > <@(_outputs)',
+ ],
+ 'message': 'Generating <@(_outputs)',
+ },
+ ],
+ }, # end of target 'remoting_lib_rc'
+ # The only difference between |remoting_console.exe| and
+ # |remoting_host.exe| is that the former is a console application.
+ # |remoting_console.exe| is used for debugging purposes.
+ {
+ 'target_name': 'remoting_console',
+ 'type': 'executable',
+ 'variables': { 'enable_wexit_time_destructors': 1, },
+ 'defines': [
+ 'BINARY=BINARY_HOST_ME2ME',
+ ],
+ 'dependencies': [
+ 'remoting_core',
+ 'remoting_windows_resources',
+ ],
+ 'sources': [
+ '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc',
+ 'host/win/entry_point.cc',
+ ],
+ 'msvs_settings': {
+ 'VCManifestTool': {
+ 'AdditionalManifestFiles': [
+ 'host/win/dpi_aware.manifest',
+ ],
+ },
+ 'VCLinkerTool': {
+ 'EntryPointSymbol': 'HostEntryPoint',
+ 'IgnoreAllDefaultLibraries': 'true',
+ 'SubSystem': '1', # /SUBSYSTEM:CONSOLE
+ },
+ },
+ }, # end of target 'remoting_console'
+ {
+ 'target_name': 'remoting_core',
+ 'type': 'shared_library',
+ 'variables': { 'enable_wexit_time_destructors': 1, },
+ 'defines' : [
+ '_ATL_APARTMENT_THREADED',
+ '_ATL_CSTRING_EXPLICIT_CONSTRUCTORS',
+ '_ATL_NO_AUTOMATIC_NAMESPACE',
+ '_ATL_NO_EXCEPTIONS',
+ 'BINARY=BINARY_CORE',
+ 'DAEMON_CONTROLLER_CLSID="{<(daemon_controller_clsid)}"',
+ 'RDP_DESKTOP_SESSION_CLSID="{<(rdp_desktop_session_clsid)}"',
+ 'HOST_IMPLEMENTATION',
+ 'ISOLATION_AWARE_ENABLED=1',
+ 'STRICT',
+ 'VERSION=<(version_full)',
+ ],
+ 'dependencies': [
+ '../base/base.gyp:base',
+ '../base/base.gyp:base_static',
+ '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
+ '../ipc/ipc.gyp:ipc',
+ '../net/net.gyp:net',
+ '../third_party/webrtc/modules/modules.gyp:desktop_capture',
+ 'remoting_base',
+ 'remoting_breakpad',
+ 'remoting_host',
+ 'remoting_host_setup_base',
+ 'remoting_it2me_host_static',
+ 'remoting_lib_idl',
+ 'remoting_lib_ps',
+ 'remoting_lib_rc',
+ 'remoting_me2me_host_static',
+ 'remoting_native_messaging_base',
+ 'remoting_protocol',
+ 'remoting_windows_resources',
+ ],
+ 'sources': [
+ '<(SHARED_INTERMEDIATE_DIR)/remoting/core.rc',
+ '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib.rc',
+ '<(SHARED_INTERMEDIATE_DIR)/remoting/host/remoting_host_messages.rc',
+ '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc',
+ 'host/desktop_process_main.cc',
+ 'host/host_main.cc',
+ 'host/host_main.h',
+ 'host/ipc_constants.cc',
+ 'host/ipc_constants.h',
+ 'host/it2me/it2me_native_messaging_host_main.cc',
+ 'host/it2me/it2me_native_messaging_host_main.h',
+ 'host/remoting_me2me_host.cc',
+ 'host/sas_injector.h',
+ 'host/sas_injector_win.cc',
+ 'host/setup/me2me_native_messaging_host.cc',
+ 'host/setup/me2me_native_messaging_host.h',
+ 'host/setup/me2me_native_messaging_host_main.cc',
+ 'host/setup/me2me_native_messaging_host_main.h',
+ 'host/verify_config_window_win.cc',
+ 'host/verify_config_window_win.h',
+ 'host/win/chromoting_module.cc',
+ 'host/win/chromoting_module.h',
+ 'host/win/core.cc',
+ 'host/win/core_resource.h',
+ 'host/win/elevated_controller.cc',
+ 'host/win/elevated_controller.h',
+ 'host/win/host_service.cc',
+ 'host/win/host_service.h',
+ 'host/win/omaha.cc',
+ 'host/win/omaha.h',
+ 'host/win/rdp_desktop_session.cc',
+ 'host/win/rdp_desktop_session.h',
+ 'host/win/unprivileged_process_delegate.cc',
+ 'host/win/unprivileged_process_delegate.h',
+ 'host/win/worker_process_launcher.cc',
+ 'host/win/worker_process_launcher.h',
+ 'host/win/wts_session_process_delegate.cc',
+ 'host/win/wts_session_process_delegate.h',
+ 'host/worker_process_ipc_delegate.h',
+ ],
+ 'msvs_settings': {
+ 'VCManifestTool': {
+ 'EmbedManifest': 'true',
+ 'AdditionalManifestFiles': [
+ 'host/win/common-controls.manifest',
+ ],
+ },
+ 'VCLinkerTool': {
+ 'AdditionalDependencies': [
+ 'comctl32.lib',
+ 'rpcns4.lib',
+ 'rpcrt4.lib',
+ 'uuid.lib',
+ 'wtsapi32.lib',
+ ],
+ 'AdditionalOptions': [
+ # Export the proxy/stub entry points. Note that the generated
+ # routines have 'Ps' prefix to avoid conflicts with our own
+ # DllMain().
+ '/EXPORT:DllGetClassObject=PsDllGetClassObject,PRIVATE',
+ '/EXPORT:DllCanUnloadNow=PsDllCanUnloadNow,PRIVATE',
+ '/EXPORT:DllRegisterServer=PsDllRegisterServer,PRIVATE',
+ '/EXPORT:DllUnregisterServer=PsDllUnregisterServer,PRIVATE',
+ ],
+ },
+ },
+ }, # end of target 'remoting_core'
+ {
+ 'target_name': 'remoting_desktop',
+ 'type': 'executable',
+ 'variables': { 'enable_wexit_time_destructors': 1, },
+ 'defines': [
+ 'BINARY=BINARY_DESKTOP',
+ ],
+ 'dependencies': [
+ 'remoting_core',
+ 'remoting_windows_resources',
+ ],
+ 'sources': [
+ '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc',
+ 'host/win/entry_point.cc',
+ ],
+ 'msvs_settings': {
+ 'VCManifestTool': {
+ 'AdditionalManifestFiles': [
+ 'host/win/dpi_aware.manifest',
+ ],
+ },
+ 'VCLinkerTool': {
+ 'EnableUAC': 'true',
+ # Add 'level="requireAdministrator" uiAccess="true"' to
+ # the manifest only for the official builds because it requires
+ # the binary to be signed to work.
+ 'conditions': [
+ ['buildtype == "Official"', {
+ 'UACExecutionLevel': 2,
+ 'UACUIAccess': 'true',
+ }],
+ ],
+ 'EntryPointSymbol': 'HostEntryPoint',
+ 'IgnoreAllDefaultLibraries': 'true',
+ 'SubSystem': '2', # /SUBSYSTEM:WINDOWS
+ },
+ },
+ }, # end of target 'remoting_desktop'
+ {
+ 'target_name': 'remoting_me2me_host',
+ 'product_name': 'remoting_host',
+ 'type': 'executable',
+ 'variables': { 'enable_wexit_time_destructors': 1, },
+ 'defines': [
+ 'BINARY=BINARY_HOST_ME2ME',
+ ],
+ 'dependencies': [
+ 'remoting_core',
+ 'remoting_windows_resources',
+ ],
+ 'sources': [
+ '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc',
+ 'host/win/entry_point.cc',
+ ],
+ 'msvs_settings': {
+ 'VCManifestTool': {
+ 'AdditionalManifestFiles': [
+ 'host/win/dpi_aware.manifest',
+ ],
+ },
+ 'VCLinkerTool': {
+ 'EntryPointSymbol': 'HostEntryPoint',
+ 'IgnoreAllDefaultLibraries': 'true',
+ 'OutputFile': '$(OutDir)\\remoting_host.exe',
+ 'SubSystem': '2', # /SUBSYSTEM:WINDOWS
+ },
+ },
+ }, # end of target 'remoting_me2me_host'
+ {
+ 'target_name': 'remoting_me2me_native_messaging_host',
+ 'type': 'executable',
+ 'product_name': 'remoting_native_messaging_host',
+ 'variables': { 'enable_wexit_time_destructors': 1, },
+ 'defines' : [
+ 'BINARY=BINARY_NATIVE_MESSAGING_HOST',
+ ],
+ 'dependencies': [
+ 'remoting_core',
+ 'remoting_windows_resources',
+ ],
+ 'sources': [
+ '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc',
+ 'host/setup/me2me_native_messaging_host_entry_point.cc',
+ ],
+ 'msvs_settings': {
+ 'VCLinkerTool': {
+ 'IgnoreAllDefaultLibraries': 'true',
+ 'SubSystem': '1', # /SUBSYSTEM:CONSOLE
+ },
+ },
+ }, # end of target 'remoting_me2me_native_messaging_host'
+ {
+ 'target_name': 'remoting_it2me_native_messaging_host',
+ 'type': 'executable',
+ 'product_name': 'remote_assistance_host',
+ 'variables': { 'enable_wexit_time_destructors': 1, },
+ 'dependencies': [
+ 'remoting_core',
+ 'remoting_windows_resources',
+ ],
+ 'sources': [
+ '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc',
+ 'host/it2me/it2me_native_messaging_host_entry_point.cc',
+ ],
+ 'defines' : [
+ 'BINARY=BINARY_REMOTE_ASSISTANCE_HOST',
+ ],
+ 'msvs_settings': {
+ 'VCManifestTool': {
+ 'EmbedManifest': 'true',
+ 'AdditionalManifestFiles': [
+ 'host/win/common-controls.manifest',
+ 'host/win/dpi_aware.manifest',
+ ],
+ },
+ 'VCLinkerTool': {
+ 'IgnoreAllDefaultLibraries': 'true',
+ 'SubSystem': '1', # /SUBSYSTEM:CONSOLE
+ 'AdditionalDependencies': [
+ 'comctl32.lib',
+ ],
+ },
+ },
+ }, # end of target 'remoting_it2me_native_messaging_host'
+ {
+ 'target_name': 'remoting_host_messages',
+ 'type': 'none',
+ 'dependencies': [
+ 'remoting_resources',
+ ],
+ 'hard_dependency': 1,
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '<(SHARED_INTERMEDIATE_DIR)',
+ ],
+ },
+ 'sources': [
+ 'host/win/host_messages.mc.jinja2'
+ ],
+ 'rules': [
+ {
+ 'rule_name': 'localize',
+ 'extension': 'jinja2',
+ 'outputs': [
+ '<(SHARED_INTERMEDIATE_DIR)/remoting/host/remoting_host_messages.mc',
+ ],
+ 'action': [
+ 'python', '<(remoting_localize_path)',
+ '--locale_dir', '<(webapp_locale_dir)',
+ '--template', '<(RULE_INPUT_PATH)',
+ '--output', '<@(_outputs)',
+ '--encoding', 'utf-16',
+ '<@(remoting_locales)',
+ ],
+ 'message': 'Localizing the event log messages'
+ },
+ ],
+ }, # end of target 'remoting_host_messages'
+
+ # Generates localized resources for the Windows binaries.
+ # The substitution strings are taken from:
+ # - build/util/LASTCHANGE - the last source code revision. There is
+ # no explicit dependency on this file to avoid rebuilding the host
+ # after unrelated changes.
+ # - chrome/VERSION - the major, build & patch versions.
+ # - remoting/VERSION - the chromoting patch version (and overrides
+ # for chrome/VERSION).
+ # - translated webapp strings
+ {
+ 'target_name': 'remoting_windows_resources',
+ 'type': 'none',
+ 'dependencies': [
+ 'remoting_resources',
+ ],
+ 'hard_dependency': 1,
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '<(SHARED_INTERMEDIATE_DIR)',
+ ],
+ },
+ 'sources': [
+ 'host/win/core.rc.jinja2',
+ 'host/win/version.rc.jinja2',
+ ],
+ 'rules': [
+ {
+ 'rule_name': 'version',
+ 'extension': 'jinja2',
+ 'variables': {
+ 'lastchange_path': '<(DEPTH)/build/util/LASTCHANGE',
+ },
+ 'inputs': [
+ '<(chrome_version_path)',
+ '<(remoting_version_path)',
+ ],
+ 'outputs': [
+ '<(SHARED_INTERMEDIATE_DIR)/remoting/<(RULE_INPUT_ROOT)',
+ ],
+ 'action': [
+ 'python', '<(remoting_localize_path)',
+ '--variables', '<(chrome_version_path)',
+ # |remoting_version_path| must be after |chrome_version_path|
+ # because it can contain overrides for the version numbers.
+ '--variables', '<(remoting_version_path)',
+ '--variables', '<(lastchange_path)',
+ '--locale_dir', '<(webapp_locale_dir)',
+ '--template', '<(RULE_INPUT_PATH)',
+ '--output', '<@(_outputs)',
+ '--encoding', 'utf-16',
+ '<@(remoting_locales)',
+ ],
+ 'message': 'Localizing the version information'
+ },
+ ],
+ }, # end of target 'remoting_windows_resources'
+ ], # end of 'targets'
+ }], # 'OS=="win"'
+
+ # The host installation is generated only if WiX is available. If
+ # component build is used the produced installation will not work due to
+ # missing DLLs. We build it anyway to make sure the GYP scripts are executed
+ # by the bots.
+ ['OS == "win" and wix_exists == "True" and sas_dll_exists == "True"', {
+ 'targets': [
+ {
+ 'target_name': 'remoting_host_installation',
+ 'type': 'none',
+ 'dependencies': [
+ 'remoting_me2me_host_archive',
+ ],
+ 'sources': [
+ '<(PRODUCT_DIR)/remoting-me2me-host-<(OS).zip',
+ ],
+ 'outputs': [
+ '<(PRODUCT_DIR)/chromoting.msi',
+ ],
+ 'rules': [
+ {
+ 'rule_name': 'zip2msi',
+ 'extension': 'zip',
+ 'inputs': [
+ 'tools/zip2msi.py',
+ ],
+ 'outputs': [
+ '<(PRODUCT_DIR)/chromoting.msi',
+ ],
+ 'action': [
+ 'python', 'tools/zip2msi.py',
+ '--wix_path', '<(wix_path)',
+ '--intermediate_dir', '<(INTERMEDIATE_DIR)/installation',
+ '<(RULE_INPUT_PATH)',
+ '<@(_outputs)',
+ ],
+ 'message': 'Generating <@(_outputs)',
+ },
+ ],
+ }, # end of target 'remoting_host_installation'
+
+ {
+ 'target_name': 'remoting_me2me_host_archive',
+ 'type': 'none',
+ 'dependencies': [
+ '<(icu_gyp_path):icudata',
+ 'remoting_core',
+ 'remoting_desktop',
+ 'remoting_it2me_native_messaging_host',
+ 'remoting_me2me_host',
+ 'remoting_me2me_native_messaging_host',
+ 'remoting_native_messaging_manifests',
+ ],
+ 'compiled_inputs': [
+ '<(PRODUCT_DIR)/remote_assistance_host.exe',
+ '<(PRODUCT_DIR)/remoting_core.dll',
+ '<(PRODUCT_DIR)/remoting_desktop.exe',
+ '<(PRODUCT_DIR)/remoting_host.exe',
+ '<(PRODUCT_DIR)/remoting_native_messaging_host.exe',
+ ],
+ 'compiled_inputs_dst': [
+ 'files/remote_assistance_host.exe',
+ 'files/remoting_core.dll',
+ 'files/remoting_desktop.exe',
+ 'files/remoting_host.exe',
+ 'files/remoting_native_messaging_host.exe',
+ ],
+ 'conditions': [
+ ['buildtype == "Official"', {
+ 'defs': [
+ 'OFFICIAL_BUILD=1',
+ ],
+ }, { # else buildtype != "Official"
+ 'defs': [
+ 'OFFICIAL_BUILD=0',
+ ],
+ }],
+ ],
+ 'defs': [
+ 'BRANDING=<(branding)',
+ 'DAEMON_CONTROLLER_CLSID={<(daemon_controller_clsid)}',
+ 'RDP_DESKTOP_SESSION_CLSID={<(rdp_desktop_session_clsid)}',
+ 'VERSION=<(version_full)',
+ ],
+ 'generated_files': [
+ '<@(_compiled_inputs)',
+ '<(sas_dll_path)/sas.dll',
+ '<(PRODUCT_DIR)/remoting/com.google.chrome.remote_assistance.json',
+ '<(PRODUCT_DIR)/remoting/com.google.chrome.remote_desktop.json',
+ 'resources/chromoting.ico',
+ '<(PRODUCT_DIR)/icudtl.dat',
+ ],
+ 'generated_files_dst': [
+ '<@(_compiled_inputs_dst)',
+ 'files/sas.dll',
+ 'files/com.google.chrome.remote_assistance.json',
+ 'files/com.google.chrome.remote_desktop.json',
+ 'files/chromoting.ico',
+ 'files/icudtl.dat',
+ ],
+ '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'
+}