| Index: remoting/host/BUILD.gn
|
| diff --git a/remoting/host/BUILD.gn b/remoting/host/BUILD.gn
|
| index 2b380378655f00bb26d9c85ffb491d559e4ca0a3..417fc010f3f7dcae8468a23a4f4bb28bf0339de7 100644
|
| --- a/remoting/host/BUILD.gn
|
| +++ b/remoting/host/BUILD.gn
|
| @@ -9,322 +9,332 @@ import("//remoting/remoting_srcs.gni")
|
| import("//remoting/remoting_version.gni")
|
| import("//remoting/tools/build/remoting_localize.gni")
|
|
|
| -# 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" ]
|
| -
|
| - defines = [ "WEBRTC_CHROMIUM_BUILD" ]
|
| -
|
| - deps = [
|
| - "//base:i18n",
|
| - "//components/policy:policy",
|
| - "//components/policy:policy_component_common",
|
| - "//crypto",
|
| - "//google_apis",
|
| - "//ipc",
|
| - "//remoting/base",
|
| - "//remoting/protocol",
|
| - "//remoting/resources",
|
| - "//ui/events/platform",
|
| - "//ui/events:dom4_keycode_converter",
|
| - ]
|
| -
|
| - if (is_linux && !is_chromeos) {
|
| - libs += [ "pam" ]
|
| +if (is_mac) { # TODO(GYP) Mac build of remoting host.
|
| + group("host") {
|
| }
|
| -
|
| - if (use_x11) {
|
| - configs += [
|
| - "//build/config/linux:x11",
|
| - "//build/config/linux:xrandr",
|
| - ]
|
| - if (!is_chromeos) {
|
| - deps += [ "//build/config/linux/gtk" ]
|
| - }
|
| - } else {
|
| - sources -= [
|
| - "clipboard_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/x_server_clipboard.cc",
|
| - "linux/x_server_clipboard.h",
|
| - ]
|
| - }
|
| + group("test_support") {
|
| + }
|
| + group("unit_tests") {
|
| }
|
| +} 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")
|
|
|
| - if (is_chromeos) {
|
| - deps += [
|
| - "//cc",
|
| - "//ppapi/host",
|
| - "//skia",
|
| - "//ui/aura",
|
| - "//ui/compositor",
|
| - "//ui/events",
|
| - "//ui/views",
|
| - ]
|
| + libs = []
|
|
|
| - if (use_ash) {
|
| - deps += [ "//ash" ]
|
| - }
|
| + configs += [ "//build/config/compiler:wexit_time_destructors" ]
|
| +
|
| + defines = [ "WEBRTC_CHROMIUM_BUILD" ]
|
| +
|
| + deps = [
|
| + "//base:i18n",
|
| + "//components/policy:policy",
|
| + "//components/policy:policy_component_common",
|
| + "//crypto",
|
| + "//google_apis",
|
| + "//ipc",
|
| + "//remoting/base",
|
| + "//remoting/protocol",
|
| + "//remoting/resources",
|
| + "//ui/events/platform",
|
| + "//ui/events:dom4_keycode_converter",
|
| + ]
|
|
|
| - if (!use_x11) {
|
| - sources -= [ "input_injector_x11.cc" ]
|
| + if (is_linux && !is_chromeos) {
|
| + libs += [ "pam" ]
|
| }
|
|
|
| - if (use_ozone) {
|
| - deps += [ "//ui/ozone" ]
|
| + if (use_x11) {
|
| + configs += [
|
| + "//build/config/linux:x11",
|
| + "//build/config/linux:xrandr",
|
| + ]
|
| + if (!is_chromeos) {
|
| + deps += [ "//build/config/linux/gtk" ]
|
| + }
|
| } else {
|
| sources -= [
|
| "clipboard_x11.cc",
|
| - "input_injector_chromeos.cc",
|
| - "input_injector_chromeos.h",
|
| - "linux/x_server_clipboard.cc",
|
| - "linux/x_server_clipboard.h",
|
| + "input_injector_x11.cc",
|
| "local_input_monitor_x11.cc",
|
| ]
|
| + if (is_linux) {
|
| + # These will already be filtered out on non-Linux.
|
| + sources -= [
|
| + "linux/x_server_clipboard.cc",
|
| + "linux/x_server_clipboard.h",
|
| + ]
|
| + }
|
| }
|
|
|
| - sources -= [
|
| - "continue_window_linux.cc",
|
| - "disconnect_window_linux.cc",
|
| - ]
|
| - }
|
| + if (is_chromeos) {
|
| + deps += [
|
| + "//cc",
|
| + "//ppapi/host",
|
| + "//skia",
|
| + "//ui/aura",
|
| + "//ui/compositor",
|
| + "//ui/events",
|
| + "//ui/views",
|
| + ]
|
|
|
| - 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 (use_ash) {
|
| + deps += [ "//ash" ]
|
| + }
|
| +
|
| + if (!use_x11) {
|
| + sources -= [ "input_injector_x11.cc" ]
|
| + }
|
| +
|
| + if (use_ozone) {
|
| + deps += [ "//ui/ozone" ]
|
| + } else {
|
| + sources -= [
|
| + "clipboard_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",
|
| + ]
|
| + }
|
|
|
| - deps += [ "//google_toolbox_for_mac" ]
|
| - }
|
| + sources -= [
|
| + "continue_window_linux.cc",
|
| + "disconnect_window_linux.cc",
|
| + ]
|
| + }
|
|
|
| - if (is_win) {
|
| - deps += [
|
| - ":messages",
|
| - ":remoting_lib_idl",
|
| - ]
|
| - }
|
| + 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 (enable_webrtc) {
|
| - deps += [
|
| - "//third_party/libjingle:libpeerconnection",
|
| - "//third_party/webrtc/modules/desktop_capture",
|
| - ]
|
| + deps += [ "//third_party/google_toolbox_for_mac" ]
|
| + }
|
|
|
| - sources += rebase_path(remoting_host_srcs_gypi_values.remoting_cast_sources,
|
| - ".",
|
| - "//remoting")
|
| - }
|
| -}
|
| + if (is_win) {
|
| + deps += [
|
| + ":messages",
|
| + ":remoting_lib_idl",
|
| + ]
|
| + }
|
|
|
| -source_set("test_support") {
|
| - testonly = true
|
| -
|
| - sources = [
|
| - "fake_desktop_capturer.cc",
|
| - "fake_desktop_capturer.h",
|
| - "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",
|
| - ]
|
| -
|
| - deps = [
|
| - "//remoting/proto",
|
| - "//testing/gtest",
|
| - ]
|
| - public_deps = [
|
| - ":host",
|
| - ]
|
| -
|
| - if (enable_webrtc) {
|
| - public_deps += [
|
| - "//third_party/libjingle:libpeerconnection",
|
| - "//third_party/webrtc/modules/desktop_capture",
|
| - ]
|
| - }
|
| -}
|
| + if (enable_webrtc) {
|
| + deps += [
|
| + "//third_party/libjingle:libpeerconnection",
|
| + "//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",
|
| - "capture_scheduler_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",
|
| - "desktop_shape_tracker_unittest.cc",
|
| - "gnubby_auth_handler_posix_unittest.cc",
|
| - "heartbeat_sender_unittest.cc",
|
| - "host_change_notification_listener_unittest.cc",
|
| - "host_config_unittest.cc",
|
| - "host_extension_session_manager_unittest.cc",
|
| - "host_mock_objects.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/unicode_to_keysym_unittest.cc",
|
| - "linux/x_server_clipboard_unittest.cc",
|
| - "local_input_monitor_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",
|
| - "screen_resolution_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",
|
| - "shaped_desktop_capturer_unittest.cc",
|
| - "token_validator_factory_impl_unittest.cc",
|
| - "video_frame_pump_unittest.cc",
|
| - "video_frame_recorder_unittest.cc",
|
| - "win/rdp_client_unittest.cc",
|
| - "win/worker_process_launcher.cc",
|
| - "win/worker_process_launcher.h",
|
| - "win/worker_process_launcher_unittest.cc",
|
| - ]
|
| -
|
| - if (use_ozone || is_chromeos) {
|
| - sources -= [ "local_input_monitor_unittest.cc" ]
|
| - }
|
| - if (is_chromeos) {
|
| - sources -= [ "linux/x_server_clipboard_unittest.cc" ]
|
| + sources +=
|
| + rebase_path(remoting_host_srcs_gypi_values.remoting_cast_sources,
|
| + ".",
|
| + "//remoting")
|
| + }
|
| }
|
|
|
| - deps = [
|
| - ":host",
|
| - ":test_support",
|
| - "//components/policy:policy_component_test_support",
|
| - "//remoting/host/setup",
|
| - "//remoting/host/it2me:common",
|
| - "//remoting/host/native_messaging",
|
| - "//remoting/proto",
|
| - "//skia",
|
| - "//testing/gmock",
|
| - "//testing/gtest",
|
| - ]
|
| -}
|
| + source_set("test_support") {
|
| + testonly = true
|
|
|
| -if (is_win) {
|
| - import("//build/toolchain/win/midl.gni")
|
| - import("//remoting/tools/build/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,
|
| - version_full,
|
| - ],
|
| - "value")
|
| - daemon_controller_clsid = clsids[0]
|
| - rdp_desktop_session_clsid = clsids[1]
|
| -
|
| - action("generate_idl") {
|
| - script = "//build/util/version.py"
|
| -
|
| - inputs = [
|
| - "win/chromoting_lib_idl.templ",
|
| - ]
|
| - outputs = [
|
| - "$target_gen_dir/chromoting_lib.idl",
|
| - ]
|
| -
|
| - args = [
|
| - "-e",
|
| - "DAEMON_CONTROLLER_CLSID='$daemon_controller_clsid'",
|
| - "-e",
|
| - "RDP_DESKTOP_SESSION_CLSID='$rdp_desktop_session_clsid'",
|
| - rebase_path(inputs[0], root_build_dir),
|
| - rebase_path(outputs[0], root_build_dir),
|
| + sources = [
|
| + "fake_desktop_capturer.cc",
|
| + "fake_desktop_capturer.h",
|
| + "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",
|
| ]
|
| - }
|
|
|
| - midl("remoting_lib_idl") {
|
| - sources = get_target_outputs(":generate_idl")
|
| deps = [
|
| - ":generate_idl",
|
| + "//remoting/proto",
|
| + "//testing/gtest",
|
| ]
|
| + public_deps = [
|
| + ":host",
|
| + ]
|
| +
|
| + if (enable_webrtc) {
|
| + public_deps += [
|
| + "//third_party/libjingle:libpeerconnection",
|
| + "//third_party/webrtc/modules/desktop_capture",
|
| + ]
|
| + }
|
| }
|
|
|
| - # Makes the .mc file from the .mc.jinja file.
|
| - remoting_localize("messages_localizing") {
|
| + # The host portions of the remoting unit tests.
|
| + source_set("unit_tests") {
|
| + testonly = true
|
| +
|
| sources = [
|
| - "win/host_messages.mc.jinja2",
|
| + "audio_pump_unittest.cc",
|
| + "audio_silence_detector_unittest.cc",
|
| + "capture_scheduler_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",
|
| + "desktop_shape_tracker_unittest.cc",
|
| + "gnubby_auth_handler_posix_unittest.cc",
|
| + "heartbeat_sender_unittest.cc",
|
| + "host_change_notification_listener_unittest.cc",
|
| + "host_config_unittest.cc",
|
| + "host_extension_session_manager_unittest.cc",
|
| + "host_mock_objects.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/unicode_to_keysym_unittest.cc",
|
| + "linux/x_server_clipboard_unittest.cc",
|
| + "local_input_monitor_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",
|
| + "screen_resolution_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",
|
| + "shaped_desktop_capturer_unittest.cc",
|
| + "token_validator_factory_impl_unittest.cc",
|
| + "video_frame_pump_unittest.cc",
|
| + "video_frame_recorder_unittest.cc",
|
| + "win/rdp_client_unittest.cc",
|
| + "win/worker_process_launcher.cc",
|
| + "win/worker_process_launcher.h",
|
| + "win/worker_process_launcher_unittest.cc",
|
| ]
|
| - locales = remoting_locales
|
| - locale_dir = webapp_locale_dir
|
| - encoding = "utf-16"
|
| -
|
| - # This target is funny. It only produces one file and the output doesn't
|
| - # match the input. We want to generate remoting_host_messages.mc from
|
| - # host_messages.mg.jinja2. GN complains if it doesn't see a pattern in the
|
| - # output, so the following pattern produces the name we want with a template
|
| - # based on the input.
|
| - #
|
| - # TODO: This is for GYP compat. We should just make the names match instead.
|
| - output = "$target_gen_dir/remoting_{{source_name_part}}"
|
| - }
|
|
|
| - # Makes the .h/.rc files from the .mc file.
|
| - message_compiler("messages") {
|
| - sources = get_target_outputs(":messages_localizing")
|
| + if (use_ozone || is_chromeos) {
|
| + sources -= [ "local_input_monitor_unittest.cc" ]
|
| + }
|
| + if (is_chromeos) {
|
| + sources -= [ "linux/x_server_clipboard_unittest.cc" ]
|
| + }
|
| +
|
| deps = [
|
| - ":messages_localizing",
|
| + ":host",
|
| + ":test_support",
|
| + "//components/policy:policy_component_test_support",
|
| + "//remoting/host/setup",
|
| + "//remoting/host/it2me:common",
|
| + "//remoting/host/native_messaging",
|
| + "//remoting/proto",
|
| + "//skia",
|
| + "//testing/gmock",
|
| + "//testing/gtest",
|
| ]
|
| }
|
|
|
| - # TODO(GYP) More Windows remoting targets from remoting_host_win.gypi
|
| + if (is_win) {
|
| + import("//build/toolchain/win/midl.gni")
|
| + import("//remoting/tools/build/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,
|
| + version_full,
|
| + ],
|
| + "value")
|
| + daemon_controller_clsid = clsids[0]
|
| + rdp_desktop_session_clsid = clsids[1]
|
| +
|
| + action("generate_idl") {
|
| + script = "//build/util/version.py"
|
| +
|
| + inputs = [
|
| + "win/chromoting_lib_idl.templ",
|
| + ]
|
| + outputs = [
|
| + "$target_gen_dir/chromoting_lib.idl",
|
| + ]
|
| +
|
| + args = [
|
| + "-e",
|
| + "DAEMON_CONTROLLER_CLSID='$daemon_controller_clsid'",
|
| + "-e",
|
| + "RDP_DESKTOP_SESSION_CLSID='$rdp_desktop_session_clsid'",
|
| + rebase_path(inputs[0], root_build_dir),
|
| + rebase_path(outputs[0], root_build_dir),
|
| + ]
|
| + }
|
| +
|
| + midl("remoting_lib_idl") {
|
| + sources = get_target_outputs(":generate_idl")
|
| + deps = [
|
| + ":generate_idl",
|
| + ]
|
| + }
|
| +
|
| + # Makes the .mc file from the .mc.jinja file.
|
| + remoting_localize("messages_localizing") {
|
| + sources = [
|
| + "win/host_messages.mc.jinja2",
|
| + ]
|
| + locales = remoting_locales
|
| + locale_dir = webapp_locale_dir
|
| + encoding = "utf-16"
|
| +
|
| + # This target is funny. It only produces one file and the output doesn't
|
| + # match the input. We want to generate remoting_host_messages.mc from
|
| + # host_messages.mg.jinja2. GN complains if it doesn't see a pattern in the
|
| + # output, so the following pattern produces the name we want with a template
|
| + # based on the input.
|
| + #
|
| + # TODO: This is for GYP compat. We should just make the names match instead.
|
| + output = "$target_gen_dir/remoting_{{source_name_part}}"
|
| + }
|
| +
|
| + # Makes the .h/.rc files from the .mc file.
|
| + message_compiler("messages") {
|
| + sources = get_target_outputs(":messages_localizing")
|
| + deps = [
|
| + ":messages_localizing",
|
| + ]
|
| + }
|
| +
|
| + # TODO(GYP) More Windows remoting targets from remoting_host_win.gypi
|
| + }
|
| }
|
|
|