# Copyright 2021 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//third_party/grpc/grpc_library.gni")
import("../../webrtc.gni")

grpc_library("signaling_grpc_proto") {
  testonly = true
  sources = [ "peer_connection_signaling.proto" ]
}

rtc_library("signaling_interface") {
  sources = [ "signaling_interface.h" ]
  deps = [ "../../api:jsep" ]
}

rtc_library("grpc_signaling") {
  testonly = true
  sources = [
    "grpc_signaling.cc",
    "grpc_signaling.h",
  ]
  deps = [
    ":signaling_grpc_proto",
    ":signaling_interface",
    "../../api:jsep",
    "../../api:sequence_checker",
    "../../rtc_base:checks",
    "../../rtc_base:logging",
    "../../rtc_base:threading",
    "//third_party/abseil-cpp/absl/time",
    "//third_party/grpc:grpc++",
  ]

  defines = [ "GPR_FORBID_UNREACHABLE_CODE=0" ]
}

rtc_executable("data_channel_benchmark") {
  testonly = true
  sources = [
    "data_channel_benchmark.cc",
    "peer_connection_client.cc",
    "peer_connection_client.h",
  ]
  deps = [
    ":grpc_signaling",
    ":signaling_interface",
    "../../api:create_peerconnection_factory",
    "../../api:data_channel_interface",
    "../../api:field_trials",
    "../../api:field_trials_view",
    "../../api:jsep",
    "../../api:peer_connection_interface",
    "../../api:rtc_error",
    "../../api:scoped_refptr",
    "../../api:set_local_description_observer_interface",
    "../../api:set_remote_description_observer_interface",
    "../../api/audio_codecs:builtin_audio_decoder_factory",
    "../../api/audio_codecs:builtin_audio_encoder_factory",
    "../../api/video_codecs:video_decoder_factory_template",
    "../../api/video_codecs:video_decoder_factory_template_dav1d_adapter",
    "../../api/video_codecs:video_decoder_factory_template_libvpx_vp8_adapter",
    "../../api/video_codecs:video_decoder_factory_template_libvpx_vp9_adapter",
    "../../api/video_codecs:video_decoder_factory_template_open_h264_adapter",
    "../../api/video_codecs:video_encoder_factory_template",
    "../../api/video_codecs:video_encoder_factory_template_libaom_av1_adapter",
    "../../api/video_codecs:video_encoder_factory_template_libvpx_vp8_adapter",
    "../../api/video_codecs:video_encoder_factory_template_libvpx_vp9_adapter",
    "../../api/video_codecs:video_encoder_factory_template_open_h264_adapter",
    "../../rtc_base:checks",
    "../../rtc_base:copy_on_write_buffer",
    "../../rtc_base:logging",
    "../../rtc_base:refcount",
    "../../rtc_base:rtc_event",
    "../../rtc_base:ssl_adapter",
    "../../rtc_base:stringutils",
    "../../rtc_base:threading",
    "../../system_wrappers",
    "//third_party/abseil-cpp/absl/cleanup",
    "//third_party/abseil-cpp/absl/flags:flag",
    "//third_party/abseil-cpp/absl/flags:parse",
    "//third_party/abseil-cpp/absl/strings:string_view",
    "//third_party/abseil-cpp/absl/time",
  ]
}
