Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(217)

Unified Diff: remoting/host/BUILD.gn

Issue 2034513002: Adding mac support for Remoting host GN builds. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Adding Carbon.framework Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « remoting/BUILD.gn ('k') | remoting/host/constants_mac.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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),
+ ]
}
}
}
« no previous file with comments | « remoting/BUILD.gn ('k') | remoting/host/constants_mac.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698