Index: remoting/host/BUILD.gn |
diff --git a/remoting/host/BUILD.gn b/remoting/host/BUILD.gn |
index 16d6cdf6303624912baac3c4de53f3c22f09b7de..2ea13a8188cfbffc869bab407deda420586eec7c 100644 |
--- a/remoting/host/BUILD.gn |
+++ b/remoting/host/BUILD.gn |
@@ -6,6 +6,7 @@ import("//build/config/features.gni") |
import("//build/config/ui.gni") |
import("//build/config/win/manifest.gni") |
import("//build/util/version.gni") |
+import("//chrome/version.gni") |
import("//remoting/remoting_enable.gni") |
import("//remoting/remoting_locales.gni") |
import("//remoting/remoting_options.gni") |
@@ -13,6 +14,14 @@ import("//remoting/remoting_srcs.gni") |
import("//remoting/remoting_version.gni") |
import("//remoting/tools/build/remoting_localize.gni") |
+process_version("remoting_version") { |
+ template_file = "//remoting/host/version.h.in" |
+ sources = [ |
+ branding_path, |
+ ] |
+ output = "$target_gen_dir/version.h" |
+} |
+ |
if (is_win) { |
import("//remoting/host/predefines_win.gni") |
} |
@@ -72,1116 +81,1096 @@ action("credits") { |
] |
} |
-if (is_mac) { |
- # TODO(GYP) Mac build of remoting host, https://crbug.com/611859 |
- # If you fix this, also enable in //remoting/remoting_enable.gni |
- # on mac. |
- group("host") { |
- } |
- group("test_support") { |
+# This must be a static library instead of a source set because |
+# remoting_unittests requires that remoting_me2me_host.cc not be pulled in, |
+# which in turn depends on remoting_me2me_host_static which isn't part of that |
+# build. |
+# |
+# TODO fix this, successful builds should not depend on static libraries |
+# stripping code. |
+static_library("host") { |
+ sources = rebase_path(remoting_host_srcs_gypi_values.remoting_host_sources, |
+ ".", |
+ "//remoting") |
+ |
+ libs = [] |
+ |
+ configs += [ |
+ "//build/config/compiler:wexit_time_destructors", |
+ "//remoting:version", |
+ ] |
+ |
+ defines = [ "WEBRTC_CHROMIUM_BUILD" ] |
+ |
+ deps = [ |
+ "//base:i18n", |
+ "//components/policy:policy_component_common", |
+ "//crypto", |
+ "//google_apis", |
+ "//ipc", |
+ "//remoting/base", |
+ "//remoting/protocol", |
+ "//remoting/resources", |
+ "//ui/base", |
+ "//ui/events:dom_keycode_converter", |
+ "//ui/events/platform", |
+ ] |
+ |
+ if (enable_configuration_policy) { |
+ deps += [ "//components/policy:policy" ] |
} |
- group("unit_tests") { |
+ |
+ if (is_linux && !is_chromeos) { |
+ libs += [ "pam" ] |
} |
-} else { |
- # This must be a static library instead of a source set because |
- # remoting_unittests requires that remoting_me2me_host.cc not be pulled in, |
- # which in turn depends on remoting_me2me_host_static which isn't part of that |
- # build. |
- # |
- # TODO fix this, successful builds should not depend on static libraries |
- # stripping code. |
- static_library("host") { |
- sources = rebase_path(remoting_host_srcs_gypi_values.remoting_host_sources, |
- ".", |
- "//remoting") |
- |
- libs = [] |
+ if (use_x11) { |
configs += [ |
- "//build/config/compiler:wexit_time_destructors", |
- "//remoting:version", |
+ "//build/config/linux:x11", |
+ "//build/config/linux:xrandr", |
+ ] |
+ if (is_desktop_linux) { |
+ deps += [ "//build/config/linux/gtk2" ] |
+ } |
+ } else { |
+ sources -= [ |
+ "clipboard_x11.cc", |
+ "desktop_resizer_x11.cc", |
+ "input_injector_x11.cc", |
+ "local_input_monitor_x11.cc", |
] |
+ if (is_linux) { |
+ # These will already be filtered out on non-Linux. |
+ sources -= [ |
+ "linux/unicode_to_keysym.cc", |
+ "linux/x11_util.cc", |
+ "linux/x_server_clipboard.cc", |
+ "linux/x_server_clipboard.h", |
+ ] |
+ } |
+ } |
- defines = [ "WEBRTC_CHROMIUM_BUILD" ] |
+ if (!use_ozone) { |
+ sources -= [ "desktop_resizer_ozone.cc" ] |
+ } |
- deps = [ |
- "//base:i18n", |
- "//components/policy:policy_component_common", |
- "//crypto", |
- "//google_apis", |
- "//ipc", |
- "//remoting/base", |
- "//remoting/protocol", |
- "//remoting/resources", |
- "//ui/base", |
- "//ui/events:dom_keycode_converter", |
- "//ui/events/platform", |
+ if (is_chromeos) { |
+ # TODO(GYP): crbug.com/481627. These should only be included |
+ # when enable_me2me_host is true. |
+ sources -= [ |
+ "me2me_desktop_environment.cc", |
+ "me2me_desktop_environment.h", |
+ ] |
+ deps += [ |
+ "//cc", |
+ "//gpu/command_buffer/common", |
+ "//ppapi/host", |
+ "//skia", |
+ "//ui/aura", |
+ "//ui/compositor", |
+ "//ui/events", |
+ "//ui/views", |
] |
- if (enable_configuration_policy) { |
- deps += [ "//components/policy:policy" ] |
- } |
- |
- if (is_linux && !is_chromeos) { |
- libs += [ "pam" ] |
+ if (use_ash) { |
+ deps += [ "//ash" ] |
} |
- if (use_x11) { |
- configs += [ |
- "//build/config/linux:x11", |
- "//build/config/linux:xrandr", |
- ] |
- if (is_desktop_linux) { |
- deps += [ "//build/config/linux/gtk2" ] |
- } |
+ if (use_ozone) { |
+ deps += [ "//ui/ozone" ] |
+ sources -= [ "desktop_resizer_ozone.cc" ] |
} else { |
sources -= [ |
"clipboard_x11.cc", |
"desktop_resizer_x11.cc", |
- "input_injector_x11.cc", |
+ "input_injector_chromeos.cc", |
+ "input_injector_chromeos.h", |
+ "linux/x_server_clipboard.cc", |
+ "linux/x_server_clipboard.h", |
"local_input_monitor_x11.cc", |
] |
- if (is_linux) { |
- # These will already be filtered out on non-Linux. |
- sources -= [ |
- "linux/unicode_to_keysym.cc", |
- "linux/x11_util.cc", |
- "linux/x_server_clipboard.cc", |
- "linux/x_server_clipboard.h", |
- ] |
- } |
} |
- if (!use_ozone) { |
- sources -= [ "desktop_resizer_ozone.cc" ] |
- } |
+ sources -= [ |
+ "continue_window_linux.cc", |
+ "curtain_mode_linux.cc", |
+ "disconnect_window_linux.cc", |
+ ] |
+ } |
- if (is_chromeos) { |
- # TODO(GYP): crbug.com/481627. These should only be included |
- # when enable_me2me_host is true. |
- sources -= [ |
- "me2me_desktop_environment.cc", |
- "me2me_desktop_environment.h", |
- ] |
- deps += [ |
- "//cc", |
- "//gpu/command_buffer/common", |
- "//ppapi/host", |
- "//skia", |
- "//ui/aura", |
- "//ui/compositor", |
- "//ui/events", |
- "//ui/views", |
- ] |
+ if (is_mac) { |
+ libs += [ |
+ "Accelerate.framework", |
+ "Carbon.framework", |
+ ] |
- if (use_ash) { |
- deps += [ "//ash" ] |
- } |
+ # TODO(nicholss): When we can delete GYP builds, |
+ # this flag and usage can be removed. |
+ defines += [ "GN_BUILD=1" ] |
+ deps += [ |
+ ":remoting_version", |
+ "//third_party/google_toolbox_for_mac", |
+ ] |
+ } |
- if (use_ozone) { |
- deps += [ "//ui/ozone" ] |
- sources -= [ "desktop_resizer_ozone.cc" ] |
- } else { |
- sources -= [ |
- "clipboard_x11.cc", |
- "desktop_resizer_x11.cc", |
- "input_injector_chromeos.cc", |
- "input_injector_chromeos.h", |
- "linux/x_server_clipboard.cc", |
- "linux/x_server_clipboard.h", |
- "local_input_monitor_x11.cc", |
- ] |
- } |
+ if (is_win) { |
+ deps += [ |
+ ":messages", |
+ ":remoting_lib_idl", |
+ ] |
+ } |
- sources -= [ |
- "continue_window_linux.cc", |
- "curtain_mode_linux.cc", |
- "disconnect_window_linux.cc", |
- ] |
- } |
+ if (enable_webrtc) { |
+ deps += [ "//third_party/webrtc/modules/desktop_capture" ] |
+ } |
- if (is_mac) { |
- # TODO(GYP) Mac host_bundle_name and prefpane_bundle_name. |
- # Note if you are looking at this: It really sucks to have to synchronously |
- # call into python twice to get these values. They should instead be |
- # written into a generated header via the process_version template, and we |
- # change the source files to include that header rather than rely on these |
- # defines being set in the build. |
- #defines += [ |
- # "HOST_BUNDLE_NAME=\"$host_bundle_name\"", |
- # "PREFPANE_BUNDLE_NAME=\"$prefpane_bundle_name\"", |
- #] |
- |
- libs += [ |
- "Accelerate.framework", |
- "libpam.a", |
- ] |
+ if (is_android) { |
+ sources -= [ |
+ "single_window_desktop_environment.cc", |
+ "single_window_desktop_environment.h", |
+ ] |
+ } |
+} |
- deps += [ "//third_party/google_toolbox_for_mac" ] |
- } |
+source_set("test_support") { |
+ testonly = true |
- if (is_win) { |
- deps += [ |
- ":messages", |
- ":remoting_lib_idl", |
- ] |
- } |
+ sources = [ |
+ "fake_desktop_environment.cc", |
+ "fake_desktop_environment.h", |
+ "fake_host_extension.cc", |
+ "fake_host_extension.h", |
+ "fake_host_status_monitor.h", |
+ "fake_host_status_monitor.h", |
+ "fake_mouse_cursor_monitor.cc", |
+ "fake_mouse_cursor_monitor.h", |
+ "fake_oauth_token_getter.cc", |
+ "fake_oauth_token_getter.h", |
+ "host_mock_objects.cc", |
+ "host_mock_objects.h", |
+ "security_key/fake_ipc_gnubby_auth_handler.cc", |
+ "security_key/fake_ipc_gnubby_auth_handler.h", |
+ "security_key/fake_remote_security_key_ipc_client.cc", |
+ "security_key/fake_remote_security_key_ipc_client.h", |
+ "security_key/fake_remote_security_key_ipc_server.cc", |
+ "security_key/fake_remote_security_key_ipc_server.h", |
+ "security_key/fake_remote_security_key_message_reader.cc", |
+ "security_key/fake_remote_security_key_message_reader.h", |
+ "security_key/fake_remote_security_key_message_writer.cc", |
+ "security_key/fake_remote_security_key_message_writer.h", |
+ "setup/mock_oauth_client.cc", |
+ "setup/mock_oauth_client.h", |
+ ] |
- if (enable_webrtc) { |
- deps += [ "//third_party/webrtc/modules/desktop_capture" ] |
- } |
+ configs += [ "//remoting:version" ] |
- if (is_android) { |
- sources -= [ |
- "single_window_desktop_environment.cc", |
- "single_window_desktop_environment.h", |
- ] |
- } |
+ deps = [ |
+ "//remoting/proto", |
+ "//testing/gmock", |
+ "//testing/gtest", |
+ ] |
+ public_deps = [ |
+ ":host", |
+ "//third_party/protobuf:protobuf_lite", |
+ ] |
+ |
+ if (enable_webrtc) { |
+ public_deps += [ |
+ "//third_party/libjingle:libjingle_webrtc", |
+ "//third_party/webrtc/modules/desktop_capture", |
+ ] |
+ } |
+} |
+ |
+# The host portions of the remoting unit tests. |
+source_set("unit_tests") { |
+ testonly = true |
+ |
+ sources = [ |
+ "audio_pump_unittest.cc", |
+ "audio_silence_detector_unittest.cc", |
+ "backoff_timer_unittest.cc", |
+ "chromeos/aura_desktop_capturer_unittest.cc", |
+ "chromeos/clipboard_aura_unittest.cc", |
+ "chromoting_host_context_unittest.cc", |
+ "chromoting_host_unittest.cc", |
+ "client_session_unittest.cc", |
+ "config_file_watcher_unittest.cc", |
+ "daemon_process_unittest.cc", |
+ "desktop_process_unittest.cc", |
+ "gcd_rest_client_unittest.cc", |
+ "gcd_state_updater_unittest.cc", |
+ "heartbeat_sender_unittest.cc", |
+ "host_change_notification_listener_unittest.cc", |
+ "host_config_unittest.cc", |
+ "host_extension_session_manager_unittest.cc", |
+ "host_status_logger_unittest.cc", |
+ "ipc_desktop_environment_unittest.cc", |
+ "it2me/it2me_confirmation_dialog_proxy_unittest.cc", |
+ "it2me/it2me_native_messaging_host_unittest.cc", |
+ "linux/audio_pipe_reader_unittest.cc", |
+ "linux/certificate_watcher_unittest.cc", |
+ "linux/unicode_to_keysym_unittest.cc", |
+ "linux/x_server_clipboard_unittest.cc", |
+ "local_input_monitor_unittest.cc", |
+ "mouse_cursor_monitor_proxy_unittest.cc", |
+ "mouse_shape_pump_unittest.cc", |
+ "native_messaging/native_messaging_reader_unittest.cc", |
+ "native_messaging/native_messaging_writer_unittest.cc", |
+ "pairing_registry_delegate_linux_unittest.cc", |
+ "pairing_registry_delegate_win_unittest.cc", |
+ "pin_hash_unittest.cc", |
+ "policy_watcher_unittest.cc", |
+ "register_support_host_request_unittest.cc", |
+ "remote_input_filter_unittest.cc", |
+ "resizing_host_observer_unittest.cc", |
+ "resources_unittest.cc", |
+ "screen_resolution_unittest.cc", |
+ "security_key/gnubby_auth_handler_linux_unittest.cc", |
+ "security_key/gnubby_auth_handler_win_unittest.cc", |
+ "security_key/gnubby_extension_session_unittest.cc", |
+ "security_key/remote_security_key_ipc_client_unittest.cc", |
+ "security_key/remote_security_key_ipc_server_unittest.cc", |
+ "security_key/remote_security_key_message_handler_unittest.cc", |
+ "security_key/remote_security_key_message_reader_impl_unittest.cc", |
+ "security_key/remote_security_key_message_writer_impl_unittest.cc", |
+ "server_log_entry_host_unittest.cc", |
+ "setup/me2me_native_messaging_host_unittest.cc", |
+ "setup/oauth_helper_unittest.cc", |
+ "setup/pin_validator_unittest.cc", |
+ "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) { |
+ sources -= [ "linux/unicode_to_keysym_unittest.cc" ] |
+ } |
+ if (use_ozone || is_chromeos) { |
+ sources -= [ "local_input_monitor_unittest.cc" ] |
+ } |
+ if (is_chromeos) { |
+ sources -= [ "linux/x_server_clipboard_unittest.cc" ] |
+ } |
+ if (is_android) { |
+ sources -= [ "it2me/it2me_native_messaging_host_unittest.cc" ] |
} |
- source_set("test_support") { |
- testonly = true |
+ configs += [ "//remoting:version" ] |
+ |
+ deps = [ |
+ ":host", |
+ ":test_support", |
+ "//remoting/host/it2me:common", |
+ "//remoting/host/native_messaging", |
+ "//remoting/host/setup", |
+ "//remoting/proto", |
+ "//skia", |
+ "//testing/gmock", |
+ "//testing/gtest", |
+ ] |
- sources = [ |
- "fake_desktop_environment.cc", |
- "fake_desktop_environment.h", |
- "fake_host_extension.cc", |
- "fake_host_extension.h", |
- "fake_host_status_monitor.h", |
- "fake_host_status_monitor.h", |
- "fake_mouse_cursor_monitor.cc", |
- "fake_mouse_cursor_monitor.h", |
- "fake_oauth_token_getter.cc", |
- "fake_oauth_token_getter.h", |
- "host_mock_objects.cc", |
- "host_mock_objects.h", |
- "security_key/fake_ipc_gnubby_auth_handler.cc", |
- "security_key/fake_ipc_gnubby_auth_handler.h", |
- "security_key/fake_remote_security_key_ipc_client.cc", |
- "security_key/fake_remote_security_key_ipc_client.h", |
- "security_key/fake_remote_security_key_ipc_server.cc", |
- "security_key/fake_remote_security_key_ipc_server.h", |
- "security_key/fake_remote_security_key_message_reader.cc", |
- "security_key/fake_remote_security_key_message_reader.h", |
- "security_key/fake_remote_security_key_message_writer.cc", |
- "security_key/fake_remote_security_key_message_writer.h", |
- "setup/mock_oauth_client.cc", |
- "setup/mock_oauth_client.h", |
+ if (enable_configuration_policy) { |
+ deps += [ "//components/policy:policy_component_test_support" ] |
+ } |
+} |
+ |
+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", |
+ [ |
+ remoting_srcs_gypi_values.daemon_controller_guid, |
+ remoting_srcs_gypi_values.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", |
] |
- configs += [ "//remoting:version" ] |
+ 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 = [ |
- "//remoting/proto", |
- "//testing/gmock", |
- "//testing/gtest", |
- ] |
- public_deps = [ |
- ":host", |
- "//third_party/protobuf:protobuf_lite", |
+ ":generate_idl", |
] |
+ } |
- if (enable_webrtc) { |
- public_deps += [ |
- "//third_party/libjingle:libjingle_webrtc", |
- "//third_party/webrtc/modules/desktop_capture", |
+ 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", |
] |
} |
} |
- # The host portions of the remoting unit tests. |
- source_set("unit_tests") { |
- testonly = true |
+ # GYP version: remoting/remoting_host_win.gypi:remoting_lib_ps |
+ 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 = [ |
- "audio_pump_unittest.cc", |
- "audio_silence_detector_unittest.cc", |
- "backoff_timer_unittest.cc", |
- "chromeos/aura_desktop_capturer_unittest.cc", |
- "chromeos/clipboard_aura_unittest.cc", |
- "chromoting_host_context_unittest.cc", |
- "chromoting_host_unittest.cc", |
- "client_session_unittest.cc", |
- "config_file_watcher_unittest.cc", |
- "daemon_process_unittest.cc", |
- "desktop_process_unittest.cc", |
- "gcd_rest_client_unittest.cc", |
- "gcd_state_updater_unittest.cc", |
- "heartbeat_sender_unittest.cc", |
- "host_change_notification_listener_unittest.cc", |
- "host_config_unittest.cc", |
- "host_extension_session_manager_unittest.cc", |
- "host_status_logger_unittest.cc", |
- "ipc_desktop_environment_unittest.cc", |
- "it2me/it2me_confirmation_dialog_proxy_unittest.cc", |
- "it2me/it2me_native_messaging_host_unittest.cc", |
- "linux/audio_pipe_reader_unittest.cc", |
- "linux/certificate_watcher_unittest.cc", |
- "linux/unicode_to_keysym_unittest.cc", |
- "linux/x_server_clipboard_unittest.cc", |
- "local_input_monitor_unittest.cc", |
- "mouse_cursor_monitor_proxy_unittest.cc", |
- "mouse_shape_pump_unittest.cc", |
- "native_messaging/native_messaging_reader_unittest.cc", |
- "native_messaging/native_messaging_writer_unittest.cc", |
- "pairing_registry_delegate_linux_unittest.cc", |
- "pairing_registry_delegate_win_unittest.cc", |
- "pin_hash_unittest.cc", |
- "policy_watcher_unittest.cc", |
- "register_support_host_request_unittest.cc", |
- "remote_input_filter_unittest.cc", |
- "resizing_host_observer_unittest.cc", |
- "resources_unittest.cc", |
- "screen_resolution_unittest.cc", |
- "security_key/gnubby_auth_handler_linux_unittest.cc", |
- "security_key/gnubby_auth_handler_win_unittest.cc", |
- "security_key/gnubby_extension_session_unittest.cc", |
- "security_key/remote_security_key_ipc_client_unittest.cc", |
- "security_key/remote_security_key_ipc_server_unittest.cc", |
- "security_key/remote_security_key_message_handler_unittest.cc", |
- "security_key/remote_security_key_message_reader_impl_unittest.cc", |
- "security_key/remote_security_key_message_writer_impl_unittest.cc", |
- "server_log_entry_host_unittest.cc", |
- "setup/me2me_native_messaging_host_unittest.cc", |
- "setup/oauth_helper_unittest.cc", |
- "setup/pin_validator_unittest.cc", |
- "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", |
+ "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}}" |
+ } |
- if (!use_x11 && is_linux) { |
- sources -= [ "linux/unicode_to_keysym_unittest.cc" ] |
- } |
- if (use_ozone || is_chromeos) { |
- sources -= [ "local_input_monitor_unittest.cc" ] |
- } |
- if (is_chromeos) { |
- sources -= [ "linux/x_server_clipboard_unittest.cc" ] |
- } |
- if (is_android) { |
- sources -= [ "it2me/it2me_native_messaging_host_unittest.cc" ] |
+ # 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", |
+ ] |
+ } |
+ |
+ # GYP version: remoting/remoting_host_win.gypi:remoting_console |
+ 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", |
+ ] |
+ } |
+ |
+ # GYP version: //remoting/remoting_host_win.gypi:remoting_core |
+ 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" ] |
} |
- configs += [ "//remoting:version" ] |
+ if (remoting_multi_process != 0) { |
+ defines += [ "REMOTING_MULTI_PROCESS" ] |
+ } |
deps = [ |
":host", |
- ":test_support", |
+ ":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/setup", |
- "//remoting/proto", |
- "//skia", |
- "//testing/gmock", |
- "//testing/gtest", |
+ "//remoting/protocol", |
+ "//sandbox/win:sandbox", # Should always use Windows version |
+ "//third_party/webrtc/modules/desktop_capture", |
] |
- if (enable_configuration_policy) { |
- deps += [ "//components/policy:policy_component_test_support" ] |
+ 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", |
+ "security_key/remote_security_key_main.cc", |
+ "security_key/remote_security_key_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/host_service.cc", |
+ "win/host_service.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" ] |
} |
} |
- 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", |
- [ |
- remoting_srcs_gypi_values.daemon_controller_guid, |
- remoting_srcs_gypi_values.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" |
+ # GYP version: //remoting/remoting_host_win.gypi:remoting_desktop |
+ executable("remoting_desktop") { |
+ configs += [ |
+ "//build/config/compiler:wexit_time_destructors", |
+ "//build/config/win:windowed", |
+ ] |
- inputs = [ |
- "win/chromoting_lib_idl.templ", |
- ] |
- outputs = [ |
- "$target_gen_dir/chromoting_lib.idl", |
- ] |
+ defines = host_predefines + [ "BINARY=BINARY_DESKTOP" ] |
- 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), |
- ] |
- } |
+ deps = [ |
+ ":remoting_core", |
+ ":remoting_windows_resources", |
+ ] |
- midl("remoting_lib_idl") { |
- sources = get_target_outputs(":generate_idl") |
- deps = [ |
- ":generate_idl", |
- ] |
+ if (is_official_build) { |
+ deps += [ ":dpi_aware_elevated_exe_manifest" ] |
+ } else { |
+ deps += [ ":dpi_aware_exe_manifest" ] |
} |
- config("MIDL_config") { |
- if (is_clang) { |
- cflags = [ |
- # MIDL generated code has a habit of omitting optional braces. |
- "-Wno-missing-braces", |
+ sources = [ |
+ "$root_gen_dir/remoting/version.rc", |
+ "win/entry_point.cc", |
+ ] |
- # Source files generated by the MIDL compiler trigger warnings with |
- # -Wincompatible-pointer-types enabled. |
- "-Wno-incompatible-pointer-types", |
+ ldflags = [ |
+ "/ENTRY:HostEntryPoint", |
+ # "/NODEFAULTLIB", |
+ ] |
+ } |
- # Generated code contains unused variables. |
- "-Wno-unused-variable", |
+ # GYP version: //remoting/remoting_host_win.gypi:remote_security_key |
+ executable("remote_security_key") { |
+ configs += [ "//build/config/compiler:wexit_time_destructors" ] |
- # PROXYFILE_LIST_START is an extern with initializer. |
- "-Wno-extern-initializer", |
- ] |
- } |
- } |
+ defines = host_predefines + [ "BINARY=BINARY_REMOTE_SECURITY_KEY" ] |
- # GYP version: remoting/remoting_host_win.gypi:remoting_lib_ps |
- static_library("remoting_lib_ps") { |
- configs += [ ":MIDL_config" ] |
+ deps = [ |
+ ":remoting_core", |
+ ":remoting_windows_resources", |
+ "//build/win:default_exe_manifest", |
+ ] |
- defines = [ |
- "ENTRY_PREFIX=Ps", |
- "REGISTER_PROXY_DLL", |
- ] |
+ sources = [ |
+ "$root_gen_dir/remoting/version.rc", |
+ "security_key/remote_security_key_entry_point.cc", |
+ ] |
+ } |
- deps = [ |
- ":remoting_lib_idl", |
- ] |
+ # GYP version: |
+ # //remoting/remoting_host_win.gypi:remoting_me2me_native_messaging_host |
+ executable("remoting_native_messaging_host") { |
+ configs += [ "//build/config/compiler:wexit_time_destructors" ] |
- sources = [ |
- "$root_gen_dir/remoting/host/chromoting_lib.dlldata.c", |
- "$root_gen_dir/remoting/host/chromoting_lib_p.c", |
- ] |
- } |
+ defines = host_predefines + [ "BINARY=BINARY_NATIVE_MESSAGING_HOST" ] |
- # 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}}" |
- } |
+ deps = [ |
+ ":remoting_core", |
+ ":remoting_windows_resources", |
+ "//build/win:default_exe_manifest", |
+ ] |
- # 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", |
- ] |
- } |
+ sources = [ |
+ "$root_gen_dir/remoting/version.rc", |
+ "setup/me2me_native_messaging_host_entry_point.cc", |
+ ] |
+ } |
- # GYP version: remoting/remoting_host_win.gypi:remoting_console |
- executable("remoting_console") { |
- configs += [ "//build/config/compiler:wexit_time_destructors" ] |
+ # GYP version: //remoting/remoting_host_win.gypi:remoting_windows_resources |
+ remoting_localize("remoting_windows_resources") { |
+ deps = [ |
+ "//remoting/resources", |
+ ] |
- defines = host_predefines + [ "BINARY=BINARY_HOST_ME2ME" ] |
+ sources = [ |
+ "win/core.rc.jinja2", |
+ "win/version.rc.jinja2", |
+ ] |
- deps = [ |
- ":dpi_aware_exe_manifest", |
- ":remoting_core", |
- ":remoting_windows_resources", |
- ] |
+ # 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"), |
+ ] |
- sources = [ |
- "$root_gen_dir/remoting/version.rc", |
- "win/entry_point.cc", |
- ] |
+ output = "$root_gen_dir/remoting/{{source_name_part}}" |
- ldflags = [ |
- "/ENTRY:HostEntryPoint", |
- # "/NODEFAULTLIB", |
- ] |
- } |
+ locale_dir = webapp_locale_dir |
- # GYP version: //remoting/remoting_host_win.gypi:remoting_core |
- shared_library("remoting_core") { |
- configs += [ "//build/config/compiler:wexit_time_destructors" ] |
+ encoding = "utf-16" |
- 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" ] |
- } |
+ locales = remoting_locales |
+ } |
- if (remoting_multi_process != 0) { |
- defines += [ "REMOTING_MULTI_PROCESS" ] |
- } |
+ # TODO(GYP) More Windows remoting targets from remoting_host_win.gypi |
+} |
- deps = [ |
- ":host", |
- ":messages", |
- ":remoting_lib_idl", |
- ":remoting_lib_ps", |
- ":remoting_me2me_host_static", |
+if (enable_remoting_host && !is_android) { |
+ executable("remoting_start_host") { |
+ sources = [ |
+ "setup/start_host_entry_point.cc", |
+ ] |
+ |
+ deps = [ |
+ "//build/config/sanitizers:deps", |
+ ] |
+ |
+ configs += [ "//build/config/compiler:wexit_time_destructors" ] |
+ |
+ if (is_win) { |
+ defines = host_predefines + [ "BINARY=BINARY_REMOTING_START_HOST" ] |
+ |
+ deps += [ |
+ ":remoting_core", |
":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/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", |
- "security_key/remote_security_key_main.cc", |
- "security_key/remote_security_key_main.h", |
+ } else { |
+ sources += [ |
"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/host_service.cc", |
- "win/host_service.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", |
- ] |
+ deps += [ "//remoting/host/setup" ] |
+ } |
- libs = [ |
- "comctl32.lib", |
- "rpcns4.lib", |
- "rpcrt4.lib", |
- "sas.lib", |
- "uuid.lib", |
- "wtsapi32.lib", |
- ] |
+ if (enable_webrtc) { |
+ deps += [ "//third_party/libjingle:libjingle_webrtc" ] |
+ } |
+ } |
- if (is_clang) { |
- cflags = [ "-Wno-header-hygiene" ] |
- } |
+ action_foreach("remoting_native_messaging_manifests") { |
+ if (is_mac) { |
+ 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" |
+ } else if (is_win) { |
+ me2me_host_path = "remoting_native_messaging_host.exe" |
+ it2me_host_path = "remote_assistance_host.exe" |
+ } else { |
+ me2me_host_path = |
+ "/opt/google/chrome-remote-desktop/native-messaging-host" |
+ it2me_host_path = |
+ "/opt/google/chrome-remote-desktop/remote-assistance-host" |
+ } |
+ |
+ script = "../tools/build/remoting_localize.py" |
+ |
+ sources = [ |
+ "it2me/com.google.chrome.remote_assistance.json.jinja2", |
+ "setup/com.google.chrome.remote_desktop.json.jinja2", |
+ ] |
+ |
+ inputs = [ |
+ branding_path, |
+ ] |
+ |
+ outputs = [ |
+ "$root_build_dir/remoting/{{source_name_part}}", |
+ ] |
+ |
+ args = [ |
+ "--define", |
+ "ME2ME_HOST_PATH=$me2me_host_path", |
+ "--define", |
+ "IT2ME_HOST_PATH=$it2me_host_path", |
+ "--variables", |
+ rebase_path(branding_path), |
+ "--template", |
+ "{{source}}", |
+ "--locale_output", |
+ "remoting/{{source_name_part}}", |
+ "en", |
+ ] |
+ } |
+ |
+ # TODO(crbug.com/512899) This still needs to be ported to GN. |
+ group("remoting_infoplist_strings") { |
+ } |
+} |
+ |
+if (enable_me2me_host) { |
+ source_set("remoting_me2me_host_static") { |
+ sources = [ |
+ "pam_authorization_factory_posix.cc", |
+ "pam_authorization_factory_posix.h", |
+ "remoting_me2me_host.cc", |
+ ] |
+ defines = [] |
+ |
+ configs += [ "//remoting:version" ] |
+ |
+ deps = [ |
+ "//base", |
+ "//base:i18n", |
+ "//components/policy:policy_component_common", |
+ "//net", |
+ "//remoting/base", |
+ "//remoting/host", |
+ "//remoting/proto", |
+ "//third_party/webrtc/modules/desktop_capture", |
+ ] |
+ |
+ if (enable_configuration_policy) { |
+ deps += [ "//components/policy" ] |
+ } |
+ |
+ if (enable_webrtc) { |
+ deps += [ "//third_party/libjingle:libjingle_webrtc" ] |
+ } |
+ |
+ if (is_desktop_linux) { |
+ deps += [ "//build/config/linux/gtk2" ] |
+ } |
+ if ((is_linux && !is_chromeos) || is_mac) { |
+ libs = [ "pam" ] |
+ } |
+ |
+ 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" ] |
} |
+ } |
- # GYP version: //remoting/remoting_host_win.gypi:remoting_desktop |
- executable("remoting_desktop") { |
+ if (is_win) { |
+ # GYP version: //remoting/remoting_host_win.gypi:remoting_me2me_host |
+ executable("remoting_me2me_host") { |
configs += [ |
"//build/config/compiler:wexit_time_destructors", |
"//build/config/win:windowed", |
] |
- defines = host_predefines + [ "BINARY=BINARY_DESKTOP" ] |
+ defines = host_predefines + [ "BINARY=BINARY_HOST_ME2ME" ] |
deps = [ |
+ ":dpi_aware_exe_manifest", |
":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", |
] |
+ output_name = "remoting_host" |
+ |
ldflags = [ |
"/ENTRY:HostEntryPoint", |
# "/NODEFAULTLIB", |
] |
} |
- |
- # GYP version: //remoting/remoting_host_win.gypi:remote_security_key |
- executable("remote_security_key") { |
- configs += [ "//build/config/compiler:wexit_time_destructors" ] |
- |
- defines = host_predefines + [ "BINARY=BINARY_REMOTE_SECURITY_KEY" ] |
- |
- deps = [ |
- ":remoting_core", |
- ":remoting_windows_resources", |
- "//build/win:default_exe_manifest", |
- ] |
+ } else { |
+ executable("remoting_me2me_host") { |
+ configs += [ "//remoting:version" ] |
sources = [ |
- "$root_gen_dir/remoting/version.rc", |
- "security_key/remote_security_key_entry_point.cc", |
+ "host_main.cc", |
+ "host_main.h", |
] |
- } |
- # GYP version: |
- # //remoting/remoting_host_win.gypi:remoting_me2me_native_messaging_host |
- executable("remoting_native_messaging_host") { |
- configs += [ "//build/config/compiler:wexit_time_destructors" ] |
- |
- defines = host_predefines + [ "BINARY=BINARY_NATIVE_MESSAGING_HOST" ] |
+ if (is_mac && is_chrome_branded && is_official_build) { |
+ defines = [ "REMOTING_ENABLE_BREAKPAD" ] |
+ } |
deps = [ |
- ":remoting_core", |
- ":remoting_windows_resources", |
- "//build/win:default_exe_manifest", |
- ] |
- |
- sources = [ |
- "$root_gen_dir/remoting/version.rc", |
- "setup/me2me_native_messaging_host_entry_point.cc", |
+ ":credits", |
+ ":remoting_me2me_host_static", |
+ "//build/config/sanitizers:deps", |
] |
} |
- # GYP version: //remoting/remoting_host_win.gypi:remoting_windows_resources |
- remoting_localize("remoting_windows_resources") { |
- deps = [ |
- "//remoting/resources", |
- ] |
+ if (is_linux) { |
+ copy("remoting_me2me_host_copy_script") { |
+ sources = [ |
+ "linux/linux_me2me_host.py", |
+ ] |
+ outputs = [ |
+ "$root_build_dir/remoting/chrome-remote-desktop", |
+ ] |
+ } |
+ copy("remoting_me2me_host_copy_host") { |
+ sources = [ |
+ "linux/remoting_me2me_host_wrapper.sh", |
+ ] |
+ outputs = [ |
+ "$root_build_dir/remoting/chrome-remote-desktop-host", |
+ ] |
+ deps = [ |
+ ":remoting_me2me_host", |
+ ] |
+ } |
+ group("remoting_dev_me2me_host") { |
+ deps = [ |
+ ":remoting_me2me_host", |
+ ":remoting_me2me_host_copy_host", |
+ ":remoting_me2me_host_copy_script", |
+ ] |
+ } |
+ } |
+ executable("native_messaging_host") { |
sources = [ |
- "win/core.rc.jinja2", |
- "win/version.rc.jinja2", |
+ "setup/me2me_native_messaging_host_entry_point.cc", |
+ "setup/me2me_native_messaging_host_main.cc", |
+ "setup/me2me_native_messaging_host_main.h", |
] |
- # 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"), |
+ deps = [ |
+ ":remoting_infoplist_strings", |
+ "//base", |
+ "//remoting/base:breakpad", |
+ "//remoting/host", |
+ "//remoting/host/native_messaging", |
+ "//remoting/host/setup", |
] |
- output = "$root_gen_dir/remoting/{{source_name_part}}" |
- |
- locale_dir = webapp_locale_dir |
- |
- encoding = "utf-16" |
+ configs += [ "//build/config/compiler:wexit_time_destructors" ] |
- locales = remoting_locales |
+ # 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. |
+ defines = [ "VERSION=" + "$chrome_version_major" + "." + |
+ "$remoting_version_patch" + "." + "$chrome_version_build" + |
+ "." + "$chrome_version_patch" ] |
} |
- |
- # TODO(GYP) More Windows remoting targets from remoting_host_win.gypi |
} |
- if (enable_remoting_host && !is_android) { |
- executable("remoting_start_host") { |
- sources = [ |
- "setup/start_host_entry_point.cc", |
- ] |
+ if (is_chrome_branded && enable_me2me_host && is_linux && !is_chromeos) { |
+ # TODO(GYP): add support for archive_chromoting_tests variable? |
+ |
+ import("//build/config/zip.gni") |
+ |
+ build_deb_script = "installer/linux/build_deb.py" |
+ deb_filename = |
+ "$root_build_dir/" + exec_script(build_deb_script, |
+ [ |
+ "-p", |
+ "-s", |
+ rebase_path("//"), |
+ ], |
+ "string", |
+ [ "installer/linux/build-deb.sh" ]) |
+ changes_filename = |
+ "$root_build_dir/" + get_path_info(deb_filename, "name") + ".changes" |
+ |
+ packaging_outputs = [ |
+ deb_filename, |
+ changes_filename, |
+ |
+ # TODO(GYP): Check that these are generated by build_deb.py. |
+ #"$root_build_dir/remoting_me2me_host.debug", |
+ #"$root_build_dir/remoting_start_host.debug", |
+ #"$root_build_dir/native_messaging_host.debug", |
+ #"$root_build_dir/remote_assistance_host.debug", |
+ ] |
+ zip("remoting_me2me_host_archive") { |
+ # 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. |
+ inputs = packaging_outputs |
+ output = "$root_build_dir/remoting-me2me-host-linux.zip" |
deps = [ |
- "//build/config/sanitizers:deps", |
+ ":remoting_me2me_host_copy", |
] |
- |
- configs += [ "//build/config/compiler:wexit_time_destructors" ] |
- |
- if (is_win) { |
- defines = host_predefines + [ "BINARY=BINARY_REMOTING_START_HOST" ] |
- |
- deps += [ |
- ":remoting_core", |
- ":remoting_windows_resources", |
- "//build/win:default_exe_manifest", |
- ] |
- } else { |
- sources += [ |
- "setup/host_starter.cc", |
- "setup/host_starter.h", |
- "setup/start_host_main.cc", |
- "setup/start_host_main.h", |
- ] |
- |
- deps += [ "//remoting/host/setup" ] |
- } |
- |
- if (enable_webrtc) { |
- deps += [ "//third_party/libjingle:libjingle_webrtc" ] |
- } |
} |
- action_foreach("remoting_native_messaging_manifests") { |
- if (is_mac) { |
- assert(false, "not implemented on mac yet") |
- } else if (is_win) { |
- me2me_host_path = "remoting_native_messaging_host.exe" |
- it2me_host_path = "remote_assistance_host.exe" |
- } else { |
- me2me_host_path = |
- "/opt/google/chrome-remote-desktop/native-messaging-host" |
- it2me_host_path = |
- "/opt/google/chrome-remote-desktop/remote-assistance-host" |
- } |
- |
- script = "../tools/build/remoting_localize.py" |
- |
+ copy("remoting_me2me_host_copy") { |
+ # Copy the debian package file, which has version info in it, |
+ # to a consistewnt filename for use on Chromoting swarming bots. |
sources = [ |
- "it2me/com.google.chrome.remote_assistance.json.jinja2", |
- "setup/com.google.chrome.remote_desktop.json.jinja2", |
- ] |
- |
- inputs = [ |
- branding_path, |
+ deb_filename, |
] |
- |
outputs = [ |
- "$root_build_dir/remoting/{{source_name_part}}", |
+ "$root_build_dir/remoting-me2me-host.deb", |
] |
- |
- args = [ |
- "--define", |
- "ME2ME_HOST_PATH=$me2me_host_path", |
- "--define", |
- "IT2ME_HOST_PATH=$it2me_host_path", |
- "--variables", |
- rebase_path(branding_path), |
- "--template", |
- "{{source}}", |
- "--locale_output", |
- "remoting/{{source_name_part}}", |
- "en", |
+ public_deps = [ |
+ ":remoting_me2me_host_deb_installer", |
] |
} |
- # TODO(crbug.com/512899) This still needs to be ported to GN. |
- group("remoting_infoplist_strings") { |
- } |
- } |
- |
- if (enable_me2me_host) { |
- source_set("remoting_me2me_host_static") { |
+ action("remoting_me2me_host_deb_installer") { |
+ script = build_deb_script |
+ inputs = [ |
+ build_deb_script, |
+ "installer/linux/Makefile", |
+ "installer/linux/debian/chrome-remote-desktop.init", |
+ "installer/linux/debian/chrome-remote-desktop.pam", |
+ "installer/linux/debian/compat", |
+ "installer/linux/debian/control", |
+ "installer/linux/debian/copyright", |
+ "installer/linux/debian/postinst", |
+ "installer/linux/debian/preinst", |
+ "installer/linux/debian/rules", |
+ ] |
+ outputs = packaging_outputs |
sources = [ |
- "pam_authorization_factory_posix.cc", |
- "pam_authorization_factory_posix.h", |
- "remoting_me2me_host.cc", |
+ "installer/linux/build-deb.sh", |
+ ] |
+ args = [ |
+ "-s", |
+ rebase_path("//"), |
+ "-o", |
+ rebase_path("$root_build_dir"), |
] |
- defines = [] |
- |
- configs += [ "//remoting:version" ] |
deps = [ |
- "//base", |
- "//base:i18n", |
- "//components/policy:policy_component_common", |
- "//net", |
- "//remoting/base", |
- "//remoting/host", |
- "//remoting/proto", |
- "//third_party/webrtc/modules/desktop_capture", |
+ ":native_messaging_host", |
+ ":remoting_me2me_host", |
+ ":remoting_native_messaging_manifests", |
+ ":remoting_start_host", |
+ "//remoting/host/it2me:remote_assistance_host", |
+ "//remoting/resources", |
+ "//third_party/icu:icudata", |
] |
- |
- if (enable_configuration_policy) { |
- deps += [ "//components/policy" ] |
- } |
- |
- if (enable_webrtc) { |
- deps += [ "//third_party/libjingle:libjingle_webrtc" ] |
- } |
- |
- if (is_desktop_linux) { |
- deps += [ "//build/config/linux/gtk2" ] |
- } |
- if ((is_linux && !is_chromeos) || is_mac) { |
- libs = [ "pam" ] |
- } |
- |
- 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" ] |
- } |
} |
+ } else if (is_win) { |
+ # GYP version: //remoting/remoting_host_win.gypi:remoting_me2me_host_archive |
+ action("remoting_me2me_host_archive") { |
+ script = "//remoting/host/installer/build-installer-archive.py" |
- if (is_win) { |
- # GYP version: //remoting/remoting_host_win.gypi: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 = [ |
- ":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 { |
- executable("remoting_me2me_host") { |
- configs += [ "//remoting:version" ] |
- |
- sources = [ |
- "host_main.cc", |
- "host_main.h", |
- ] |
- |
- if (is_mac && is_chrome_branded && is_official_build) { |
- defines = [ "REMOTING_ENABLE_BREAKPAD" ] |
- } |
- |
- deps = [ |
- ":credits", |
- ":remoting_me2me_host_static", |
- "//build/config/sanitizers:deps", |
- ] |
- } |
- |
- if (is_linux) { |
- copy("remoting_me2me_host_copy_script") { |
- sources = [ |
- "linux/linux_me2me_host.py", |
- ] |
- outputs = [ |
- "$root_build_dir/remoting/chrome-remote-desktop", |
- ] |
- } |
- copy("remoting_me2me_host_copy_host") { |
- sources = [ |
- "linux/remoting_me2me_host_wrapper.sh", |
- ] |
- outputs = [ |
- "$root_build_dir/remoting/chrome-remote-desktop-host", |
- ] |
- deps = [ |
- ":remoting_me2me_host", |
- ] |
- } |
- group("remoting_dev_me2me_host") { |
- deps = [ |
- ":remoting_me2me_host", |
- ":remoting_me2me_host_copy_host", |
- ":remoting_me2me_host_copy_script", |
- ] |
- } |
- } |
- |
- executable("native_messaging_host") { |
- sources = [ |
- "setup/me2me_native_messaging_host_entry_point.cc", |
- "setup/me2me_native_messaging_host_main.cc", |
- "setup/me2me_native_messaging_host_main.h", |
- ] |
- |
- deps = [ |
- ":remoting_infoplist_strings", |
- "//base", |
- "//remoting/base:breakpad", |
- "//remoting/host", |
- "//remoting/host/native_messaging", |
- "//remoting/host/setup", |
- ] |
- |
- configs += [ "//build/config/compiler:wexit_time_destructors" ] |
- |
- # 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. |
- defines = [ "VERSION=" + "$chrome_version_major" + "." + |
- "$remoting_version_patch" + "." + "$chrome_version_build" + |
- "." + "$chrome_version_patch" ] |
- |
- if (is_mac) { |
- assert(false, "not implemented on mac yet") |
- } |
- } |
- } |
- |
- if (is_chrome_branded && enable_me2me_host && is_linux && !is_chromeos) { |
- # TODO(GYP): add support for archive_chromoting_tests variable? |
- |
- import("//build/config/zip.gni") |
- |
- build_deb_script = "installer/linux/build_deb.py" |
- deb_filename = |
- "$root_build_dir/" + exec_script(build_deb_script, |
- [ |
- "-p", |
- "-s", |
- rebase_path("//"), |
- ], |
- "string", |
- [ "installer/linux/build-deb.sh" ]) |
- changes_filename = |
- "$root_build_dir/" + get_path_info(deb_filename, "name") + ".changes" |
- |
- packaging_outputs = [ |
- deb_filename, |
- changes_filename, |
- |
- # TODO(GYP): Check that these are generated by build_deb.py. |
- #"$root_build_dir/remoting_me2me_host.debug", |
- #"$root_build_dir/remoting_start_host.debug", |
- #"$root_build_dir/native_messaging_host.debug", |
- #"$root_build_dir/remote_assistance_host.debug", |
+ deps = [ |
+ ":credits", |
+ ":remote_security_key", |
+ ":remoting_core", |
+ ":remoting_desktop", |
+ ":remoting_me2me_host", |
+ ":remoting_native_messaging_host", |
+ ":remoting_native_messaging_manifests", |
+ ":remoting_start_host", |
+ "it2me:remote_assistance_host", |
+ "//third_party/icu:icudata", |
] |
- zip("remoting_me2me_host_archive") { |
- # 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. |
- inputs = packaging_outputs |
- output = "$root_build_dir/remoting-me2me-host-linux.zip" |
- deps = [ |
- ":remoting_me2me_host_copy", |
- ] |
- } |
+ _output = "$root_out_dir/remoting-me2me-host-$target_os.zip" |
- copy("remoting_me2me_host_copy") { |
- # Copy the debian package file, which has version info in it, |
- # to a consistewnt filename for use on Chromoting swarming bots. |
- sources = [ |
- deb_filename, |
- ] |
- outputs = [ |
- "$root_build_dir/remoting-me2me-host.deb", |
- ] |
- public_deps = [ |
- ":remoting_me2me_host_deb_installer", |
- ] |
+ outputs = [ |
+ _output, |
+ ] |
+ if (is_chrome_branded) { |
+ _branding = "Chrome" |
+ } else { |
+ _branding = "Chromium" |
} |
- action("remoting_me2me_host_deb_installer") { |
- script = build_deb_script |
- inputs = [ |
- build_deb_script, |
- "installer/linux/Makefile", |
- "installer/linux/debian/chrome-remote-desktop.init", |
- "installer/linux/debian/chrome-remote-desktop.pam", |
- "installer/linux/debian/compat", |
- "installer/linux/debian/control", |
- "installer/linux/debian/copyright", |
- "installer/linux/debian/postinst", |
- "installer/linux/debian/preinst", |
- "installer/linux/debian/rules", |
- ] |
- outputs = packaging_outputs |
- sources = [ |
- "installer/linux/build-deb.sh", |
- ] |
- args = [ |
- "-s", |
- rebase_path("//"), |
- "-o", |
- rebase_path("$root_build_dir"), |
- ] |
- |
- deps = [ |
- ":native_messaging_host", |
- ":remoting_me2me_host", |
- ":remoting_native_messaging_manifests", |
- ":remoting_start_host", |
- "//remoting/host/it2me:remote_assistance_host", |
- "//remoting/resources", |
- "//third_party/icu:icudata", |
- ] |
+ if (is_official_build) { |
+ _official_build = "1" |
+ } else { |
+ _official_build = "0" |
} |
- } else if (is_win) { |
- # GYP version: //remoting/remoting_host_win.gypi:remoting_me2me_host_archive |
- action("remoting_me2me_host_archive") { |
- script = "//remoting/host/installer/build-installer-archive.py" |
- deps = [ |
- ":credits", |
- ":remote_security_key", |
- ":remoting_core", |
- ":remoting_desktop", |
- ":remoting_me2me_host", |
- ":remoting_native_messaging_host", |
- ":remoting_native_messaging_manifests", |
- ":remoting_start_host", |
- "it2me:remote_assistance_host", |
- "//third_party/icu:icudata", |
- ] |
+ _generated_files = rebase_path( |
+ [ |
+ "$root_out_dir/remote_assistance_host.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", |
+ ], |
+ root_build_dir) |
+ _extra_files = [] |
- _output = "$root_out_dir/remoting-me2me-host-$target_os.zip" |
+ args = [ |
+ rebase_path("$root_gen_dir/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 + |
+ [ |
+ rebase_path("//remoting/resources/chromoting.ico"), |
+ |
+ # Position of files in zip file |
+ "--generated-files-dst", |
+ "files/remote_assistance_host.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/chromoting.ico", |
+ "files/icudtl.dat", |
+ ] + _extra_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 { |
+ group("remoting_me2me_host_archive") { |
+ } |
+ } |
- outputs = [ |
- _output, |
- ] |
- if (is_chrome_branded) { |
- _branding = "Chrome" |
- } else { |
- _branding = "Chromium" |
- } |
- |
- if (is_official_build) { |
- _official_build = "1" |
- } else { |
- _official_build = "0" |
- } |
- |
- _generated_files = rebase_path( |
- [ |
- "$root_out_dir/remote_assistance_host.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", |
- ], |
- root_build_dir) |
- _extra_files = [] |
- |
- args = [ |
- rebase_path("$root_gen_dir/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 + |
- [ |
- rebase_path("//remoting/resources/chromoting.ico"), |
- |
- # Position of files in zip file |
- "--generated-files-dst", |
- "files/remote_assistance_host.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/chromoting.ico", |
- "files/icudtl.dat", |
- ] + _extra_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", |
- ] |
- } |
+ if (is_win && is_chrome_branded) { |
+ if (target_cpu == "x86") { |
+ # The script uses "ia32" instead of "x86". |
+ msi_script_arch = "ia32" |
} else { |
- group("remoting_me2me_host_archive") { |
- } |
+ msi_script_arch = target_cpu |
} |
- if (is_win && is_chrome_branded) { |
- if (target_cpu == "x86") { |
- # The script uses "ia32" instead of "x86". |
- msi_script_arch = "ia32" |
- } else { |
- msi_script_arch = target_cpu |
- } |
- |
- # GYP version: remoting/remoting_host_win.gyp:remoting_host_installation |
- 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/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), |
- ] |
- } |
+ # GYP version: remoting/remoting_host_win.gyp:remoting_host_installation |
+ 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/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), |
+ ] |
} |
} |
} |