chromium/remoting/client/BUILD.gn

# Copyright 2014 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/chromeos/ui_mode.gni")

static_library("client") {
  sources = [
    "chromoting_client.cc",
    "chromoting_client.h",
    "chromoting_client_runtime.cc",
    "chromoting_client_runtime.h",
    "chromoting_session.cc",
    "chromoting_session.h",
    "client_context.cc",
    "client_context.h",
    "client_telemetry_logger.cc",
    "client_telemetry_logger.h",
    "client_user_interface.h",
    "connect_to_host_info.cc",
    "connect_to_host_info.h",
    "cursor_shape_stub_proxy.cc",
    "cursor_shape_stub_proxy.h",
    "dual_buffer_frame_consumer.cc",
    "dual_buffer_frame_consumer.h",
    "empty_cursor_filter.cc",
    "empty_cursor_filter.h",
    "feedback_data.cc",
    "feedback_data.h",
    "host_experiment_sender.cc",
    "host_experiment_sender.h",
    "in_memory_log_handler.cc",
    "in_memory_log_handler.h",
    "software_video_renderer.cc",
    "software_video_renderer.h",
  ]

  configs += [
    "//build/config/compiler:wexit_time_destructors",
    "//remoting/build/config:version",
  ]

  public_deps = [ "//remoting/base" ]

  deps = [
    "//components/webrtc:thread_wrapper",
    "//mojo/core/embedder",
    "//remoting/base:authorization",
    "//remoting/base:name_value_map",
    "//remoting/client/audio",
    "//remoting/client/input",
    "//remoting/client/notification",
    "//remoting/client/ui",
    "//remoting/client/ui:ui_manipulation",
    "//remoting/codec:decoder",
    "//remoting/protocol",
    "//remoting/signaling",
    "//services/network:network_service",
    "//services/network/public/cpp",
    "//services/network/public/mojom",
    "//third_party/libjingle_xmpp:rtc_xmllite",
    "//third_party/libyuv",
    "//third_party/webrtc_overrides:webrtc_component",
    "//ui/events:dom_keycode_converter",
  ]

  libs = []

  if (!is_chromeos) {
    # GestureInterpreter depends on //remoting/client/display, which currently
    # doesn't build on CrOS. crbug.com/869578
    sources += [
      "gesture_interpreter.cc",
      "gesture_interpreter.h",
    ]

    deps += [ "//remoting/client/display" ]
  }

  if (is_android) {
    libs += [ "android" ]
  }
}

source_set("unit_tests") {
  testonly = true

  sources = [
    "chromoting_client_runtime_unittest.cc",
    "client_telemetry_logger_unittest.cc",
    "dual_buffer_frame_consumer_unittest.cc",
    "empty_cursor_filter_unittest.cc",
    "software_video_renderer_unittest.cc",
  ]

  configs += [ "//remoting/build/config:version" ]

  deps = [
    ":client",
    "//base/test:test_support",
    "//remoting/codec:encoder",
    "//remoting/proto",
    "//remoting/protocol",
    "//remoting/protocol:test_support",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/webrtc_overrides:webrtc_component",
  ]
}