# Copyright 2016 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/c++/c++.gni")
import("//remoting/build/config/remoting_build.gni")
group("all_tests") {
testonly = true
}
if (enable_me2me_host) {
executable("remoting_user_session") {
sources = [ "remoting_user_session.cc" ]
deps = [ "//base" ]
libs = [ "pam" ]
}
copy("remoting_me2me_host_copy_script") {
sources = [ "linux_me2me_host.py" ]
outputs = [ "$root_build_dir/remoting/chrome-remote-desktop" ]
}
copy("remoting_me2me_host_copy_pipewire_templates") {
sources = [
"pipewire-media-session.conf.template",
"pipewire-pulse.conf.template",
"pipewire.conf.template",
"wireplumber.conf.template",
]
outputs = [ "$root_build_dir/remoting/{{source_file_part}}" ]
}
copy("remoting_me2me_host_copy_host_wrapper") {
sources = [ "remoting_me2me_host_wrapper.sh" ]
outputs = [ "$root_build_dir/remoting/chrome-remote-desktop-host" ]
}
copy("remoting_me2me_host_copy_user_session_wrapper") {
sources = [ "remoting_user_session_wrapper.sh" ]
outputs = [ "$root_build_dir/remoting/user-session" ]
}
copy("remoting_me2me_host_copy_user_session") {
sources = [ "$root_build_dir/remoting_user_session" ]
outputs = [ "$root_build_dir/remoting/{{source_file_part}}" ]
deps = [ ":remoting_user_session" ]
if (is_component_build) {
sources += [
"$root_build_dir/libbase.so",
"$root_build_dir/libthird_party_boringssl.so",
]
deps += [ "//base" ]
if (use_custom_libcxx) {
sources += [ "$root_build_dir/libc++.so" ]
deps += [ "//buildtools/third_party/libc++" ]
}
}
}
copy("remoting_me2me_host_copy_libremoting_core") {
sources = [ "$root_build_dir/libremoting_core.so" ]
outputs = [ "$root_build_dir/remoting/libremoting_core.so" ]
deps = [ "//remoting/host:remoting_core" ]
}
remoting_localize("url_forwarder_desktop_entry") {
sources = [ "crd-url-forwarder.desktop.jinja2" ]
locale_list = remoting_locales_without_pseudolocales
locale_dir = resources_locale_dir
output = "$root_build_dir/remoting/{{source_name_part}}"
}
copy("remoting_me2me_host_copy_setup_url_forwarder_script") {
sources = [ "configure_url_forwarder.py" ]
outputs = [ "$root_build_dir/remoting/setup-url-forwarder" ]
}
group("remoting_dev_me2me_host") {
deps = [
":remoting_me2me_host_copy_host_wrapper",
":remoting_me2me_host_copy_libremoting_core",
":remoting_me2me_host_copy_pipewire_templates",
":remoting_me2me_host_copy_script",
":remoting_me2me_host_copy_setup_url_forwarder_script",
":remoting_me2me_host_copy_user_session",
":remoting_me2me_host_copy_user_session_wrapper",
":remoting_native_messaging_host",
":url_forwarder_desktop_entry",
"//remoting/host:remoting_me2me_host",
"//remoting/host/remote_open_url",
"//remoting/host/webauthn:remote_webauthn",
]
}
}
source_set("gvariant") {
sources = [
"gvariant_dict_builder.cc",
"gvariant_dict_builder.h",
"gvariant_ref.cc",
"gvariant_ref.h",
"gvariant_type.cc",
"gvariant_type.h",
]
deps = [
"//base",
"//remoting/host/base",
]
}
source_set("utils") {
sources = [
"gdbus_connection_ref.cc",
"gdbus_connection_ref.h",
"gdbus_fd_list.cc",
"gdbus_fd_list.h",
]
public_deps = [ ":gvariant" ]
deps = [
"dbus_interfaces:interface_headers",
"//base",
"//remoting/host/base",
"//ui/base",
]
configs += [ "//build/linux:gio_config" ]
}
source_set("platform_impls") {
defines = [ "REMOTING_USE_X11" ]
sources = [
"active_display_monitor_linux.cc",
"active_display_monitor_x11.cc",
"active_display_monitor_x11.h",
"audio_capturer_linux.cc",
"audio_capturer_linux.h",
"audio_pipe_reader.cc",
"audio_pipe_reader.h",
"capture_stream.h",
"capture_stream_manager.h",
"clipboard_gnome.cc",
"clipboard_gnome.h",
"clipboard_portal.cc",
"clipboard_portal.h",
"curtain_mode_wayland.cc",
"curtain_mode_wayland.h",
"curtain_mode_x11.cc",
"desktop_display_info_loader_linux.cc",
"desktop_display_info_loader_x11.cc",
"desktop_display_info_loader_x11.h",
"desktop_resizer_linux.cc",
"desktop_resizer_x11.cc",
"desktop_resizer_x11.h",
"ei_input_injector.cc",
"ei_input_injector.h",
"ei_keyboard_layout_monitor.cc",
"ei_keyboard_layout_monitor.h",
"ei_keymap.cc",
"ei_keymap.h",
"ei_sender_session.cc",
"ei_sender_session.h",
"fd_string_reader.cc",
"fd_string_reader.h",
"fd_string_writer.cc",
"fd_string_writer.h",
"gnome_action_executor.cc",
"gnome_action_executor.h",
"gnome_capture_stream_manager.cc",
"gnome_capture_stream_manager.h",
"gnome_desktop_display_info_monitor.cc",
"gnome_desktop_display_info_monitor.h",
"gnome_desktop_resizer.cc",
"gnome_desktop_resizer.h",
"gnome_display_config_monitor.cc",
"gnome_display_config_monitor.h",
"gnome_headless_detector.cc",
"gnome_headless_detector.h",
"gnome_interaction_strategy.cc",
"gnome_interaction_strategy.h",
"gnome_remote_desktop_session.cc",
"gnome_remote_desktop_session.h",
"input_injector_constants_linux.h",
"input_injector_linux.cc",
"input_injector_x11.cc",
"input_injector_x11.h",
"keyboard_layout_monitor_linux.cc",
"keyboard_layout_monitor_utils.cc",
"keyboard_layout_monitor_utils.h",
"pipewire_capture_stream.cc",
"pipewire_capture_stream.h",
"pipewire_desktop_capturer.cc",
"pipewire_desktop_capturer.h",
"pipewire_local_input_monitor.cc",
"pipewire_local_input_monitor.h",
"pipewire_mouse_cursor_capturer.cc",
"pipewire_mouse_cursor_capturer.h",
"pipewire_mouse_cursor_monitor.cc",
"pipewire_mouse_cursor_monitor.h",
"portal_capture_stream_manager.cc",
"portal_capture_stream_manager.h",
"portal_curtain_mode.cc",
"portal_curtain_mode.h",
"portal_desktop_resizer.cc",
"portal_desktop_resizer.h",
"portal_display_info_loader.cc",
"portal_display_info_loader.h",
"portal_interaction_strategy.cc",
"portal_interaction_strategy.h",
"portal_remote_desktop_session.cc",
"portal_remote_desktop_session.h",
"portal_utils.cc",
"portal_utils.h",
"scoped_portal_request.cc",
"scoped_portal_request.h",
"scoped_portal_session.cc",
"scoped_portal_session.h",
]
deps = [
":gvariant",
":utils",
":x11",
":x11_display_utils",
"//base",
"//build/config/linux/gtk",
"//remoting/base",
"//remoting/base:logging",
"//remoting/host:client_session_control",
"//remoting/host:clipboard",
"//remoting/host:common_headers",
"//remoting/host:desktop_capturer",
"//remoting/host:display_layout",
"//remoting/host:platform_interfaces",
"//remoting/host/base",
"//remoting/host/input_monitor",
"//remoting/host/linux/dbus_interfaces:interface_headers",
"//remoting/proto",
"//remoting/protocol",
"//third_party/webrtc_overrides:webrtc_component",
"//ui/base",
"//ui/base/x",
"//ui/events:dom_keycode_converter",
"//ui/events/keycodes:xkb",
"//ui/gfx/x",
]
}
source_set("x11_display_utils") {
sources = [
"gnome_display_config.cc",
"gnome_display_config.h",
"gnome_display_config_dbus_client.cc",
"gnome_display_config_dbus_client.h",
"scoped_glib.cc",
"scoped_glib.h",
"x11_display_util.cc",
"x11_display_util.h",
]
deps = [
":utils",
":x11",
"//remoting/base:logging",
"//remoting/host:display_layout",
"//remoting/host/linux/dbus_interfaces:interface_headers",
"//third_party/webrtc_overrides:webrtc_component",
"//ui/base",
"//ui/base/x",
"//ui/gfx/geometry",
"//ui/gfx/x",
]
}
if (remoting_use_x11) {
source_set("x11") {
sources = [
"unicode_to_keysym.cc",
"unicode_to_keysym.h",
"x11_character_injector.cc",
"x11_character_injector.h",
"x11_keyboard_impl.cc",
"x11_keyboard_impl.h",
"x11_util.cc",
"x11_util.h",
"x_server_clipboard.cc",
"x_server_clipboard.h",
]
public_deps = [ "//ui/gfx/x" ]
deps = [
"//base",
"//remoting/base",
"//remoting/base:logging",
"//third_party/webrtc_overrides:webrtc_component",
]
}
}
if (!is_chromeos) {
executable("remoting_native_messaging_host") {
configs += [ "//build/config/compiler:wexit_time_destructors" ]
sources =
[ "//remoting/host/setup/me2me_native_messaging_host_entry_point.cc" ]
deps = [
"//remoting/host:remoting_core",
"//remoting/host/setup:native_messaging_host_main_headers",
]
}
}
source_set("unit_tests") {
testonly = true
sources = [
"audio_pipe_reader_unittest.cc",
"certificate_watcher_unittest.cc",
"fake_capture_stream.cc",
"fake_capture_stream.h",
"gdbus_connection_ref_unittest.cc",
"gnome_desktop_resizer_unittest.cc",
"gnome_display_config_dbus_client_unittest.cc",
"gnome_display_config_unittest.cc",
"gvariant_ref_unittest.cc",
"gvariant_type_unittest.cc",
"pipewire_mouse_cursor_capturer_unittest.cc",
"test_util.cc",
"test_util.h",
"unicode_to_keysym_unittest.cc",
"x11_character_injector_unittest.cc",
"x11_display_util_unittest.cc",
"x_server_clipboard_unittest.cc",
]
if (!remoting_use_x11) {
sources -= [
"unicode_to_keysym_unittest.cc",
"x11_character_injector_unittest.cc",
"x11_display_util_unittest.cc",
"x_server_clipboard_unittest.cc",
]
}
configs += [ "//remoting/build/config:version" ]
# Needed for the dbus test service
configs += [ "//build/config/linux/dbus" ]
deps = [
":platform_impls",
":utils",
":x11_display_utils",
"dbus_interfaces:interface_headers",
"//dbus:dbus_test_service",
"//remoting/host:common",
"//remoting/host:platform_interfaces",
"//remoting/host:test_support",
"//remoting/host/it2me:common",
"//remoting/host/native_messaging",
"//remoting/host/security_key:unit_tests",
"//remoting/host/setup:common",
"//remoting/proto",
"//remoting/resources",
"//skia",
"//testing/gmock",
"//testing/gtest",
"//ui/gfx/geometry",
]
if (remoting_use_x11) {
deps += [ ":x11" ]
}
if (!is_ios) {
deps += [ "//components/policy/core/browser:test_support" ]
}
}