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 |
+ } |
} |