910e62b5创建于 1月15日历史提交
# 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" ]
  }
}