Index: remoting/host/BUILD.gn |
diff --git a/remoting/host/BUILD.gn b/remoting/host/BUILD.gn |
index 92263a850882578a6dbb04a4e316a151252fe53f..fd1745dc51e5f3963f5c483aa2f10deb425215e6 100644 |
--- a/remoting/host/BUILD.gn |
+++ b/remoting/host/BUILD.gn |
@@ -3,38 +3,6 @@ |
# found in the LICENSE file. |
import("//remoting/build/config/remoting_build.gni") |
- |
-group("all_tests") { |
- testonly = true |
- |
- deps = [ |
- ":unit_tests", |
- ] |
-} |
- |
-group("all") { |
- testonly = true |
- |
- deps = [ |
- ":host", |
- ] |
- if (enable_me2me_host) { |
- deps += [ "//remoting/host:remoting_me2me_host" ] |
- } |
- |
- if (is_chrome_branded) { |
- deps += [ ":remoting_host_branded" ] |
- } |
- |
- if (!is_chromeos && !is_android && !is_ios) { |
- deps += [ |
- "//remoting/host:remoting_native_messaging_host", |
- "//remoting/host:remoting_native_messaging_manifests", |
- "//remoting/host:remoting_start_host", |
- "//remoting/host/it2me:remote_assistance_host", |
- ] |
- } |
-} |
process_version("remoting_version") { |
template_file = "//remoting/host/version.h.in" |
@@ -42,6 +10,85 @@ |
branding_path, |
] |
output = "$target_gen_dir/version.h" |
+} |
+ |
+if (is_win) { |
+ import("//remoting/host/predefines_win.gni") |
+} else if (is_mac) { |
+ import("//build/config/mac/rules.gni") |
+ import("//third_party/icu/config.gni") |
+} |
+ |
+if (is_win) { |
+ # Reference this manifest to indicate that a process is per-monitor DPI aware. |
+ dpi_aware_manifest = "//remoting/host/win/dpi_aware.manifest" |
+ |
+ # Reference this manifest to give the binary the uiAccess privilege. |
+ enable_uiaccess_manifest = "//remoting/host/win/enable_uiaccess.manifest" |
+ |
+ # Depending on this target gives the executable a default manifest with the |
+ # addition of the DPI aware tag. |
+ windows_manifest("dpi_aware_exe_manifest") { |
+ sources = [ |
+ as_invoker_manifest, |
+ common_controls_manifest, |
+ default_compatibility_manifest, |
+ dpi_aware_manifest, |
+ ] |
+ type = "exe" |
+ } |
+ |
+ # Depending on this target gives the executable a default manifest with the |
+ # addition of the DPI aware tag and requestedExecutionLevel of |
+ # requireAdministrator. |
+ windows_manifest("dpi_aware_elevated_exe_manifest") { |
+ sources = [ |
+ common_controls_manifest, |
+ default_compatibility_manifest, |
+ dpi_aware_manifest, |
+ require_administrator_manifest, |
+ ] |
+ type = "exe" |
+ } |
+ |
+ # Depending on this target gives the executable a default manifest with the |
+ # addition of the DPI aware tag and enables uiAccess. |
+ windows_manifest("dpi_aware_uiaccess_exe_manifest") { |
+ sources = [ |
+ common_controls_manifest, |
+ default_compatibility_manifest, |
+ dpi_aware_manifest, |
+ enable_uiaccess_manifest, |
+ ] |
+ type = "exe" |
+ } |
+} |
+ |
+action("credits") { |
+ # We put this in $root_build_dir/gen/remoting instead of |
+ # $root_build_dir/gen/remoting/host (target_gen_dir) for |
+ # compatibility w/ GYP, since the installer needs the file to |
+ # be at the same location. |
+ about_credits_file = "$root_build_dir/gen/remoting/CREDITS.txt" |
+ script = "//tools/licenses.py" |
+ |
+ inputs = [ |
+ "installer/credits.tmpl", |
+ "installer/credits_entry.tmpl", |
+ ] |
+ |
+ outputs = [ |
+ about_credits_file, |
+ ] |
+ |
+ args = [ |
+ "credits", |
+ rebase_path(about_credits_file, root_build_dir), |
+ "--file-template", |
+ rebase_path("installer/credits.tmpl", root_build_dir), |
+ "--entry-template", |
+ rebase_path("installer/credits_entry.tmpl", root_build_dir), |
+ ] |
} |
# This must be a static library instead of a source set because |
@@ -296,6 +343,32 @@ |
"usage_stats_consent_win.cc", |
"username.cc", |
"username.h", |
+ "win/com_imported_mstscax.tlh", |
+ "win/com_security.cc", |
+ "win/com_security.h", |
+ "win/elevation_helpers.cc", |
+ "win/elevation_helpers.h", |
+ "win/launch_process_with_token.cc", |
+ "win/launch_process_with_token.h", |
+ "win/omaha.cc", |
+ "win/omaha.h", |
+ "win/rdp_client.cc", |
+ "win/rdp_client.h", |
+ "win/rdp_client_window.cc", |
+ "win/rdp_client_window.h", |
+ "win/security_descriptor.cc", |
+ "win/security_descriptor.h", |
+ "win/session_desktop_environment.cc", |
+ "win/session_desktop_environment.h", |
+ "win/session_input_injector.cc", |
+ "win/session_input_injector.h", |
+ "win/window_station_and_desktop.cc", |
+ "win/window_station_and_desktop.h", |
+ "win/worker_process_launcher.cc", |
+ "win/worker_process_launcher.h", |
+ "win/wts_terminal_monitor.cc", |
+ "win/wts_terminal_monitor.h", |
+ "win/wts_terminal_observer.h", |
] |
libs = [] |
@@ -324,8 +397,6 @@ |
"//ui/events/platform", |
] |
- public_deps = [] |
- |
if (enable_configuration_policy) { |
deps += [ "//components/policy:generated" ] |
} |
@@ -425,12 +496,9 @@ |
if (is_win) { |
deps += [ |
- "//remoting/host/win", |
- "//remoting/host/win:messages", |
- "//remoting/host/win:remoting_lib_idl", |
- ] |
- |
- public_deps += [ "//remoting/host/win" ] |
+ ":messages", |
+ ":remoting_lib_idl", |
+ ] |
} |
if (enable_webrtc) { |
@@ -539,6 +607,8 @@ |
"third_party_auth_config_unittest.cc", |
"token_validator_factory_impl_unittest.cc", |
"touch_injector_win_unittest.cc", |
+ "win/rdp_client_unittest.cc", |
+ "win/worker_process_launcher_unittest.cc", |
] |
if (!use_x11 && is_linux) { |
@@ -552,6 +622,14 @@ |
} |
if (is_android) { |
sources -= [ "it2me/it2me_native_messaging_host_unittest.cc" ] |
+ } |
+ if (is_win) { |
+ sources += [ |
+ "win/elevated_native_messaging_host.cc", |
+ "win/elevated_native_messaging_host.h", |
+ "win/launch_native_messaging_host_process.cc", |
+ "win/launch_native_messaging_host_process.h", |
+ ] |
} |
configs += [ "//remoting/build/config:version" ] |
@@ -569,33 +647,341 @@ |
"//testing/gmock", |
"//testing/gtest", |
] |
- if (is_win) { |
- deps += [ "//remoting/host/win:unit_tests" ] |
- } |
if (enable_configuration_policy) { |
deps += [ "//components/policy/core/browser:test_support" ] |
} |
} |
-group("remoting_host_branded") { |
- testonly = true |
- deps = [] |
- if (enable_remoting_host) { |
- deps += [ ":remoting_host_installation" ] |
- } |
- if (enable_me2me_host) { |
- deps += [ "//remoting/host:remoting_me2me_host_archive" ] |
- } |
-} |
- |
-if (enable_remoting_host) { |
- group("remoting_host_installation") { |
- deps = [] |
- if (is_win) { |
- deps += [ "//remoting/host/installer/win:remoting_host_installation" ] |
- } |
- } |
+if (is_win) { |
+ import("//build/toolchain/win/midl.gni") |
+ import("//build/win/message_compiler.gni") |
+ |
+ # TODO(brettw) these should not be generated via exec_script. This should be |
+ # part of the build process rather than the metabuild. Instead, a script |
+ # should generate a header containing the #defines for this as well as the |
+ # IDL file with the values. |
+ clsids = exec_script("win/get_clsids.py", |
+ [ |
+ daemon_controller_guid, |
+ rdp_desktop_session_guid, |
+ chrome_version_full, |
+ ], |
+ "value") |
+ daemon_controller_clsid = clsids[0] |
+ rdp_desktop_session_clsid = clsids[1] |
+ |
+ action("generate_idl") { |
+ script = "//build/util/version.py" |
+ |
+ inputs = [ |
+ "win/chromoting_lib_idl.templ", |
+ ] |
+ outputs = [ |
+ "$target_gen_dir/chromoting_lib.idl", |
+ ] |
+ |
+ args = [ |
+ "-e", |
+ "DAEMON_CONTROLLER_CLSID='$daemon_controller_clsid'", |
+ "-e", |
+ "RDP_DESKTOP_SESSION_CLSID='$rdp_desktop_session_clsid'", |
+ rebase_path(inputs[0], root_build_dir), |
+ rebase_path(outputs[0], root_build_dir), |
+ ] |
+ } |
+ |
+ midl("remoting_lib_idl") { |
+ sources = get_target_outputs(":generate_idl") |
+ deps = [ |
+ ":generate_idl", |
+ ] |
+ } |
+ |
+ config("MIDL_config") { |
+ if (is_clang) { |
+ cflags = [ |
+ # MIDL generated code has a habit of omitting optional braces. |
+ "-Wno-missing-braces", |
+ |
+ # Source files generated by the MIDL compiler trigger warnings with |
+ # -Wincompatible-pointer-types enabled. |
+ "-Wno-incompatible-pointer-types", |
+ |
+ # Generated code contains unused variables. |
+ "-Wno-unused-variable", |
+ |
+ # PROXYFILE_LIST_START is an extern with initializer. |
+ "-Wno-extern-initializer", |
+ ] |
+ } |
+ } |
+ |
+ static_library("remoting_lib_ps") { |
+ configs += [ ":MIDL_config" ] |
+ |
+ defines = [ |
+ "ENTRY_PREFIX=Ps", |
+ "REGISTER_PROXY_DLL", |
+ ] |
+ |
+ deps = [ |
+ ":remoting_lib_idl", |
+ ] |
+ |
+ sources = [ |
+ "$root_gen_dir/remoting/host/chromoting_lib.dlldata.c", |
+ "$root_gen_dir/remoting/host/chromoting_lib_p.c", |
+ ] |
+ } |
+ |
+ # Makes the .mc file from the .mc.jinja file. |
+ remoting_localize("messages_localizing") { |
+ sources = [ |
+ "win/host_messages.mc.jinja2", |
+ ] |
+ locales = remoting_locales |
+ locale_dir = webapp_locale_dir |
+ encoding = "utf-16" |
+ |
+ # This target is funny. It only produces one file and the output doesn't |
+ # match the input. We want to generate remoting_host_messages.mc from |
+ # host_messages.mg.jinja2. GN complains if it doesn't see a pattern in the |
+ # output, so the following pattern produces the name we want with a template |
+ # based on the input. |
+ # |
+ # TODO: This is for GYP compat. We should just make the names match instead. |
+ output = "$target_gen_dir/remoting_{{source_name_part}}" |
+ } |
+ |
+ # Makes the .h/.rc files from the .mc file. |
+ message_compiler("messages") { |
+ compile_generated_code = false |
+ sources = get_target_outputs(":messages_localizing") |
+ deps = [ |
+ ":messages_localizing", |
+ ] |
+ } |
+ |
+ executable("remoting_console") { |
+ configs += [ "//build/config/compiler:wexit_time_destructors" ] |
+ |
+ defines = host_predefines + [ "BINARY=BINARY_HOST_ME2ME" ] |
+ |
+ deps = [ |
+ ":dpi_aware_exe_manifest", |
+ ":remoting_core", |
+ ":remoting_windows_resources", |
+ ] |
+ |
+ sources = [ |
+ "$root_gen_dir/remoting/version.rc", |
+ "win/entry_point.cc", |
+ ] |
+ |
+ ldflags = [ |
+ "/ENTRY:HostEntryPoint", |
+ # "/NODEFAULTLIB", |
+ ] |
+ } |
+ |
+ shared_library("remoting_core") { |
+ configs += [ "//build/config/compiler:wexit_time_destructors" ] |
+ |
+ defines = host_predefines + [ |
+ "_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=$chrome_version_full", |
+ ] |
+ |
+ if (remoting_multi_process != 0 && remoting_rdp_session != 0) { |
+ defines += [ "REMOTING_RDP_SESSION" ] |
+ } |
+ |
+ if (remoting_multi_process != 0) { |
+ defines += [ "REMOTING_MULTI_PROCESS" ] |
+ } |
+ |
+ deps = [ |
+ ":host", |
+ ":messages", |
+ ":remoting_lib_idl", |
+ ":remoting_lib_ps", |
+ ":remoting_me2me_host_static", |
+ ":remoting_windows_resources", |
+ "//base", |
+ "//base:base_static", |
+ "//base/allocator", |
+ "//base/third_party/dynamic_annotations", |
+ "//build/win:default_exe_manifest", |
+ "//ipc", |
+ "//net", |
+ "//remoting/base", |
+ "//remoting/base:breakpad", |
+ "//remoting/codec", |
+ "//remoting/host/it2me:common", |
+ "//remoting/host/native_messaging", |
+ "//remoting/host/security_key:main", |
+ "//remoting/host/setup", |
+ "//remoting/protocol", |
+ "//sandbox/win:sandbox", # Should always use Windows version |
+ "//third_party/webrtc/modules/desktop_capture", |
+ ] |
+ |
+ sources = [ |
+ "$root_gen_dir/remoting/core.rc", |
+ "$root_gen_dir/remoting/host/remoting_host_messages.rc", |
+ "$root_gen_dir/remoting/version.rc", |
+ "desktop_process_main.cc", |
+ "host_main.cc", |
+ "host_main.h", |
+ "it2me/it2me_native_messaging_host_main.cc", |
+ "it2me/it2me_native_messaging_host_main.h", |
+ "setup/host_starter.cc", |
+ "setup/host_starter.h", |
+ "setup/me2me_native_messaging_host_main.cc", |
+ "setup/me2me_native_messaging_host_main.h", |
+ "setup/start_host_main.cc", |
+ "setup/start_host_main.h", |
+ "win/chromoting_lib.rc", |
+ "win/chromoting_module.cc", |
+ "win/chromoting_module.h", |
+ "win/core.cc", |
+ "win/core_resource.h", |
+ "win/elevated_native_messaging_host.cc", |
+ "win/elevated_native_messaging_host.h", |
+ "win/host_service.cc", |
+ "win/host_service.h", |
+ "win/launch_native_messaging_host_process.cc", |
+ "win/launch_native_messaging_host_process.h", |
+ "win/omaha.cc", |
+ "win/omaha.h", |
+ "win/rdp_desktop_session.cc", |
+ "win/rdp_desktop_session.h", |
+ "win/unprivileged_process_delegate.cc", |
+ "win/unprivileged_process_delegate.h", |
+ "win/wts_session_process_delegate.cc", |
+ "win/wts_session_process_delegate.h", |
+ "worker_process_ipc_delegate.h", |
+ ] |
+ |
+ ldflags = [ |
+ "/EXPORT:DllGetClassObject=PsDllGetClassObject,PRIVATE", |
+ "/EXPORT:DllCanUnloadNow=PsDllCanUnloadNow,PRIVATE", |
+ "/EXPORT:DllRegisterServer=PsDllRegisterServer,PRIVATE", |
+ "/EXPORT:DllUnregisterServer=PsDllUnregisterServer,PRIVATE", |
+ ] |
+ |
+ libs = [ |
+ "comctl32.lib", |
+ "rpcns4.lib", |
+ "rpcrt4.lib", |
+ "sas.lib", |
+ "uuid.lib", |
+ "wtsapi32.lib", |
+ ] |
+ |
+ if (is_clang) { |
+ cflags = [ "-Wno-header-hygiene" ] |
+ } |
+ } |
+ |
+ executable("remoting_desktop") { |
+ configs += [ |
+ "//build/config/compiler:wexit_time_destructors", |
+ "//build/config/win:windowed", |
+ ] |
+ |
+ defines = host_predefines + [ "BINARY=BINARY_DESKTOP" ] |
+ |
+ deps = [ |
+ ":remoting_core", |
+ ":remoting_windows_resources", |
+ ] |
+ |
+ if (is_official_build) { |
+ deps += [ ":dpi_aware_elevated_exe_manifest" ] |
+ } else { |
+ deps += [ ":dpi_aware_exe_manifest" ] |
+ } |
+ |
+ sources = [ |
+ "$root_gen_dir/remoting/version.rc", |
+ "win/entry_point.cc", |
+ ] |
+ |
+ ldflags = [ |
+ "/ENTRY:HostEntryPoint", |
+ # "/NODEFAULTLIB", |
+ ] |
+ } |
+ |
+ executable("remoting_native_messaging_host") { |
+ configs += [ "//build/config/compiler:wexit_time_destructors" ] |
+ |
+ defines = host_predefines + [ "BINARY=BINARY_NATIVE_MESSAGING_HOST" ] |
+ |
+ deps = [ |
+ ":remoting_core", |
+ ":remoting_windows_resources", |
+ "//build/win:default_exe_manifest", |
+ ] |
+ |
+ if (is_mac) { |
+ foreach(locale, remoting_locales_with_underscores) { |
+ deps += [ |
+ ":native_messaging_host_strings_${locale}_bundle_data", |
+ ":remoting_host_locale_${locale}_bundle_data", |
+ ] |
+ } |
+ deps += [ |
+ ":remoting_infoplist_strings", |
+ "//remoting/resources:copy_locales", |
+ ] |
+ } |
+ |
+ sources = [ |
+ "$root_gen_dir/remoting/version.rc", |
+ "setup/me2me_native_messaging_host_entry_point.cc", |
+ ] |
+ } |
+ |
+ remoting_localize("remoting_windows_resources") { |
+ deps = [ |
+ "//remoting/resources", |
+ ] |
+ |
+ sources = [ |
+ "win/core.rc.jinja2", |
+ "win/version.rc.jinja2", |
+ ] |
+ |
+ # TODO(zijiehe): Export lastchange_path from |
+ # //chrome/version.gni:process_version |
+ variables = [ |
+ rebase_path(chrome_version_file), |
+ rebase_path(remoting_version_file), |
+ rebase_path("//build/util/LASTCHANGE"), |
+ ] |
+ |
+ output = "$root_gen_dir/remoting/{{source_name_part}}" |
+ |
+ locale_dir = webapp_locale_dir |
+ |
+ encoding = "utf-16" |
+ |
+ locales = remoting_locales |
+ } |
+ |
+ # TODO(GYP) More Windows remoting targets from remoting_host_win.gypi |
} |
if (enable_remoting_host && !is_android) { |
@@ -614,9 +1000,9 @@ |
defines = host_predefines + [ "BINARY=BINARY_REMOTING_START_HOST" ] |
deps += [ |
+ ":remoting_core", |
+ ":remoting_windows_resources", |
"//build/win:default_exe_manifest", |
- "//remoting/host/win:remoting_core", |
- "//remoting/host/win:remoting_windows_resources", |
] |
} else { |
sources += [ |
@@ -742,10 +1128,7 @@ |
] |
defines = [] |
- configs += [ |
- "//remoting/build/config:version", |
- "//remoting/build/config:remoting_me2me_host", |
- ] |
+ configs += [ "//remoting/build/config:version" ] |
deps = [ |
"//base", |
@@ -779,18 +1162,43 @@ |
if (is_mac && is_official_build) { |
sources += [ "internal/internal_mac-inl.h" ] |
+ defines += [ "USE_REMOTING_MACOSX_INTERNAL" ] |
+ } |
+ |
+ if (is_win && remoting_multi_process != 0 && remoting_rdp_session != 0) { |
+ defines += [ "REMOTING_RDP_SESSION" ] |
+ } |
+ |
+ if (remoting_multi_process != 0) { |
+ defines += [ "REMOTING_MULTI_PROCESS" ] |
} |
} |
if (is_win) { |
- group("remoting_me2me_host") { |
+ executable("remoting_me2me_host") { |
+ configs += [ |
+ "//build/config/compiler:wexit_time_destructors", |
+ "//build/config/win:windowed", |
+ ] |
+ |
+ defines = host_predefines + [ "BINARY=BINARY_HOST_ME2ME" ] |
+ |
deps = [ |
- "//remoting/host/win:remoting_me2me_host", |
- ] |
- } |
- group("remoting_native_messaging_host") { |
- deps = [ |
- "//remoting/host/win:remoting_native_messaging_host", |
+ ":dpi_aware_exe_manifest", |
+ ":remoting_core", |
+ ":remoting_windows_resources", |
+ ] |
+ |
+ sources = [ |
+ "$root_gen_dir/remoting/version.rc", |
+ "win/entry_point.cc", |
+ ] |
+ |
+ output_name = "remoting_host" |
+ |
+ ldflags = [ |
+ "/ENTRY:HostEntryPoint", |
+ # "/NODEFAULTLIB", |
] |
} |
} else { |
@@ -833,7 +1241,7 @@ |
] |
public_deps = [ |
- "//remoting/host/installer:credits", |
+ ":credits", |
] |
if (icu_use_data_file) { |
@@ -867,10 +1275,10 @@ |
} |
deps = [ |
+ ":credits", |
":remoting_me2me_host_static", |
"//build/config/sanitizers:deps", |
"//remoting/base:breakpad", |
- "//remoting/host/installer:credits", |
"//remoting/resources", |
] |
if (is_mac) { |
@@ -935,7 +1343,7 @@ |
} |
} |
- target(app_target_type, "remoting_native_messaging_host") { |
+ target(app_target_type, "native_messaging_host") { |
if (is_mac) { |
info_plist = "setup/native_messaging_host-Info.plist" |
extra_configs = [ "//build/config/compiler:wexit_time_destructors" ] |
@@ -1064,8 +1472,8 @@ |
] |
deps = [ |
+ ":native_messaging_host", |
":remoting_me2me_host", |
- ":remoting_native_messaging_host", |
":remoting_native_messaging_manifests", |
":remoting_start_host", |
"//remoting/host/it2me:remote_assistance_host", |
@@ -1074,10 +1482,107 @@ |
] |
} |
} else if (is_win) { |
- group("remoting_me2me_host_archive") { |
+ action("remoting_me2me_host_archive") { |
+ script = "//remoting/host/installer/build-installer-archive.py" |
+ |
deps = [ |
- "//remoting/host/installer/win:remoting_me2me_host_archive", |
- ] |
+ ":credits", |
+ ":remoting_core", |
+ ":remoting_desktop", |
+ ":remoting_me2me_host", |
+ ":remoting_native_messaging_host", |
+ ":remoting_native_messaging_manifests", |
+ ":remoting_start_host", |
+ "it2me:remote_assistance_host", |
+ "it2me:remote_assistance_host_uiaccess", |
+ "//remoting/host/security_key:remote_security_key", |
+ "//third_party/icu:icudata", |
+ ] |
+ |
+ _output = "$root_out_dir/remoting-me2me-host-$target_os.zip" |
+ |
+ outputs = [ |
+ _output, |
+ ] |
+ if (is_chrome_branded) { |
+ _branding = "Chrome" |
+ } else { |
+ _branding = "Chromium" |
+ } |
+ |
+ if (is_official_build) { |
+ _official_build = "1" |
+ } else { |
+ _official_build = "0" |
+ } |
+ |
+ # Due to GN build issue http://crbug.com/633650, we need to actively set |
+ # inputs parameter to tell GN to depend on these files. So change to each |
+ # following files will trigger this target to be rebuilt. |
+ # TODO(zijiehe): Remove inputs parameter once bug 633650 has been |
+ # addressed. |
+ inputs = [ |
+ "$root_out_dir/remote_assistance_host.exe", |
+ "$root_out_dir/remote_assistance_host_uiaccess.exe", |
+ "$root_out_dir/remote_security_key.exe", |
+ "$root_out_dir/remoting_core.dll", |
+ "$root_out_dir/remoting_desktop.exe", |
+ "$root_out_dir/remoting_host.exe", |
+ "$root_out_dir/remoting_native_messaging_host.exe", |
+ "$root_out_dir/remoting_start_host.exe", |
+ "$root_gen_dir/remoting/CREDITS.txt", |
+ "$root_out_dir/remoting/com.google.chrome.remote_assistance.json", |
+ "$root_out_dir/remoting/com.google.chrome.remote_desktop.json", |
+ "$root_out_dir/icudtl.dat", |
+ ] |
+ |
+ _generated_files = rebase_path(inputs, root_build_dir) |
+ _generated_files += [ rebase_path("//remoting/resources/chromoting.ico") ] |
+ |
+ # _generated_dst_files must contain the same files in the same order as |
+ # _generated_files, otherwise the Windows MSI will not be built correctly. |
+ _generated_dst_files = [ |
+ "files/remote_assistance_host.exe", |
+ "files/remote_assistance_host_uiaccess.exe", |
+ "files/remote_security_key.exe", |
+ "files/remoting_core.dll", |
+ "files/remoting_desktop.exe", |
+ "files/remoting_host.exe", |
+ "files/remoting_native_messaging_host.exe", |
+ "files/remoting_start_host.exe", |
+ "files/CREDITS.txt", |
+ "files/com.google.chrome.remote_assistance.json", |
+ "files/com.google.chrome.remote_desktop.json", |
+ "files/icudtl.dat", |
+ "files/chromoting.ico", |
+ ] |
+ |
+ args = |
+ [ |
+ rebase_path("$root_gen_dir/remoting_installation", root_build_dir), |
+ rebase_path(_output, root_build_dir), |
+ "--source-file-roots", |
+ rebase_path("//remoting/host/installer/win"), |
+ "--source-files", |
+ rebase_path("//remoting/host/installer/win/chromoting.wxs"), |
+ rebase_path("//remoting/host/installer/win/parameters.json"), |
+ |
+ # Input files |
+ "--generated-files", |
+ ] + _generated_files + |
+ [ |
+ # Position of files in zip file |
+ "--generated-files-dst", |
+ ] + _generated_dst_files + |
+ [ |
+ # Defs |
+ "--defs", |
+ "BRANDING=$_branding", |
+ "DAEMON_CONTROLLER_CLSID={$daemon_controller_clsid}", |
+ "RDP_DESKTOP_SESSION_CLSID={$rdp_desktop_session_clsid}", |
+ "VERSION=$chrome_version_full", |
+ "OFFICIAL_BUILD=$_official_build", |
+ ] |
} |
} else if (is_mac) { |
import("//build/config/zip.gni") |
@@ -1165,10 +1670,10 @@ |
] |
deps = [ |
+ ":native_messaging_host", |
":remoting_host_prefpane.prefPane", |
":remoting_host_uninstaller", |
":remoting_me2me_host", |
- ":remoting_native_messaging_host", |
":remoting_native_messaging_manifests", |
"//remoting/host/it2me:remote_assistance_host", |
] |
@@ -1369,4 +1874,37 @@ |
group("remoting_me2me_host_archive") { |
} |
} |
+ |
+ if (is_win && is_chrome_branded) { |
+ # We do not release a 64 bits binary. So to avoid any potential |
+ # misunderstanding, we only build 32 bits MSI file. |
+ if (!is_component_build && target_cpu == "x86") { |
+ # The script uses "ia32" instead of "x86". |
+ msi_script_arch = "ia32" |
+ |
+ action("remoting_host_installation") { |
+ deps = [ |
+ "//remoting/host:remoting_me2me_host_archive", |
+ ] |
+ script = "../tools/zip2msi.py" |
+ outputs = [ |
+ "$root_out_dir/chromoting.msi", |
+ ] |
+ args = [ |
+ "--wix_path", |
+ rebase_path("//third_party/wix"), |
+ "--intermediate_dir", |
+ rebase_path("$root_gen_dir/remoting_installation", root_build_dir), |
+ "--target_arch", |
+ msi_script_arch, |
+ rebase_path("$root_out_dir/remoting-me2me-host-$current_os.zip", |
+ root_build_dir), |
+ rebase_path(outputs[0], root_build_dir), |
+ ] |
+ } |
+ } else { |
+ group("remoting_host_installation") { |
+ } |
+ } |
+ } |
} |