blob: 396f63de64fe58f05fee77d4bc29310242c9dbe8 [file] [log] [blame]
# Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
import("../webrtc.gni")
if (is_android) {
import("//build/config/android/config.gni")
import("//build/config/android/rules.gni")
}
group("api") {
visibility = [ "*" ]
deps = []
if (!build_with_mozilla) {
deps += [ ":libjingle_peerconnection_api" ]
}
}
rtc_source_set("call_api") {
visibility = [ "*" ]
sources = [
"call/audio_sink.h",
]
}
rtc_source_set("callfactory_api") {
visibility = [ "*" ]
sources = [
"call/call_factory_interface.h",
"call/callfactoryinterface.h",
]
}
rtc_static_library("create_peerconnection_factory") {
visibility = [ "*" ]
sources = [
"create_peerconnection_factory.cc",
"create_peerconnection_factory.h",
]
deps = [
":callfactory_api",
":fec_controller_api",
":libjingle_peerconnection_api",
"../logging:rtc_event_log_api",
"../logging:rtc_event_log_impl_base",
"../media:rtc_audio_video",
"../media:rtc_media_base",
"../modules/audio_device:audio_device_api",
"../modules/audio_processing:api",
"../pc:peerconnection",
"../rtc_base:deprecation",
"../rtc_base:ptr_util",
"../rtc_base:rtc_base",
"../rtc_base:rtc_base_approved",
"audio:audio_mixer_api",
"audio_codecs:audio_codecs_api",
"transport:network_control",
"video_codecs:video_codecs_api",
]
}
rtc_static_library("libjingle_peerconnection_api") {
visibility = [ "*" ]
cflags = []
sources = [
"async_resolver_factory.h",
"asyncresolverfactory.h",
"bitrate_constraints.h",
"candidate.cc",
"candidate.h",
"crypto/crypto_options.cc",
"crypto/crypto_options.h",
"crypto/cryptooptions.h",
"crypto/frame_decryptor_interface.h",
"crypto/frame_encryptor_interface.h",
"crypto/framedecryptorinterface.h",
"crypto/frameencryptorinterface.h",
"crypto_params.h",
"cryptoparams.h",
"data_channel_interface.cc",
"data_channel_interface.h",
"datachannelinterface.h",
"dtls_transport_interface.h",
"dtlstransportinterface.h",
"dtmf_sender_interface.h",
"dtmfsenderinterface.h",
"jsep.cc",
"jsep.h",
"jsep_ice_candidate.cc",
"jsep_ice_candidate.h",
"jsep_session_description.h",
"jsepicecandidate.h",
"jsepsessiondescription.h",
"media_constraints_interface.cc",
"media_constraints_interface.h",
"media_stream_interface.cc",
"media_stream_interface.h",
"media_stream_proxy.h",
"media_stream_track_proxy.h",
"media_transport_interface.cc",
"media_transport_interface.h",
"media_types.cc",
"media_types.h",
"mediaconstraintsinterface.h",
"mediastreaminterface.h",
"mediastreamproxy.h",
"mediastreamtrackproxy.h",
"mediatypes.h",
"notifier.h",
"peer_connection_factory_proxy.h",
"peer_connection_interface.cc",
"peer_connection_interface.h",
"peer_connection_proxy.h",
"peerconnectionfactoryproxy.h",
"peerconnectioninterface.h",
"peerconnectionproxy.h",
"proxy.cc",
"proxy.h",
"rtc_error.cc",
"rtc_error.h",
"rtcerror.h",
"rtp_headers.cc",
"rtp_headers.h",
"rtp_parameters.cc",
"rtp_parameters.h",
"rtp_receiver_interface.cc",
"rtp_receiver_interface.h",
"rtp_sender_interface.cc",
"rtp_sender_interface.h",
"rtp_transceiver_interface.cc",
"rtp_transceiver_interface.h",
"rtpparameters.h",
"rtpreceiverinterface.h",
"rtpsenderinterface.h",
"rtptransceiverinterface.h",
"set_remote_description_observer_interface.h",
"setremotedescriptionobserverinterface.h",
"stats_types.cc",
"stats_types.h",
"statstypes.h",
"turn_customizer.h",
"turncustomizer.h",
"uma_metrics.h",
"umametrics.h",
"video_track_source_proxy.h",
"videosourceproxy.h",
]
deps = [
":array_view",
":audio_options_api",
":callfactory_api",
":fec_controller_api",
":libjingle_logging_api",
":rtc_stats_api",
"audio:audio_mixer_api",
"audio_codecs:audio_codecs_api",
"transport:bitrate_settings",
"transport:network_control",
"video:encoded_image",
"video:video_frame",
"//third_party/abseil-cpp/absl/strings",
"//third_party/abseil-cpp/absl/types:optional",
# Basically, don't add stuff here. You might break sensitive downstream
# targets like pnacl. API should not depend on anything outside of this
# file, really. All these should arguably go away in time.
"..:webrtc_common",
"../logging:rtc_event_log_api",
"../media:rtc_media_config",
"../modules/audio_processing:audio_processing_statistics",
"../rtc_base:checks",
"../rtc_base:deprecation",
"../rtc_base:rtc_base",
"../rtc_base:rtc_base_approved",
"../rtc_base/system:rtc_export",
]
if (is_nacl) {
# This is needed by .h files included from rtc_base.
deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
}
}
rtc_source_set("scoped_refptr") {
visibility = [ "*" ]
sources = [
"scoped_refptr.h",
]
}
rtc_source_set("video_quality_test_fixture_api") {
visibility = [ "*" ]
testonly = true
sources = [
"test/video_quality_test_fixture.h",
]
deps = [
":fec_controller_api",
":libjingle_peerconnection_api",
":simulated_network_api",
"../call:fake_network",
"../call:rtp_interfaces",
"../test:test_common",
"../test:video_test_common",
"video_codecs:video_codecs_api",
]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
}
rtc_source_set("test_dependency_factory") {
visibility = [ "*" ]
testonly = true
sources = [
"test/test_dependency_factory.cc",
"test/test_dependency_factory.h",
]
deps = [
":video_quality_test_fixture_api",
"../rtc_base:checks",
"../rtc_base:thread_checker",
"//third_party/abseil-cpp/absl/memory",
]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
}
if (rtc_include_tests) {
rtc_source_set("create_video_quality_test_fixture_api") {
visibility = [ "*" ]
testonly = true
sources = [
"test/create_video_quality_test_fixture.cc",
"test/create_video_quality_test_fixture.h",
]
deps = [
":fec_controller_api",
":video_quality_test_fixture_api",
"../rtc_base:ptr_util",
"../video:video_quality_test",
"//third_party/abseil-cpp/absl/memory",
]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
}
}
rtc_source_set("libjingle_logging_api") {
visibility = [ "*" ]
sources = [
"rtc_event_log_output.h",
"rtceventlogoutput.h",
]
}
rtc_source_set("ortc_api") {
visibility = [ "*" ]
sources = [
"ortc/packet_transport_interface.h",
"ortc/packettransportinterface.h",
"ortc/rtp_transport_interface.h",
"ortc/rtptransportinterface.h",
"ortc/srtp_transport_interface.h",
"ortc/srtptransportinterface.h",
]
deps = [
":libjingle_peerconnection_api",
"//third_party/abseil-cpp/absl/types:optional",
]
}
rtc_source_set("rtc_stats_api") {
visibility = [ "*" ]
cflags = []
sources = [
"stats/rtc_stats.h",
"stats/rtc_stats_collector_callback.h",
"stats/rtc_stats_report.h",
"stats/rtcstats.h",
"stats/rtcstats_objects.h",
"stats/rtcstatscollectorcallback.h",
"stats/rtcstatsreport.h",
]
deps = [
"../rtc_base:checks",
"../rtc_base:rtc_base_approved",
"../rtc_base/system:rtc_export",
]
}
rtc_source_set("audio_options_api") {
visibility = [ "*" ]
sources = [
"audio_options.cc",
"audio_options.h",
]
deps = [
":array_view",
"../rtc_base:stringutils",
"//third_party/abseil-cpp/absl/types:optional",
]
}
rtc_source_set("transport_api") {
visibility = [ "*" ]
sources = [
"call/transport.cc",
"call/transport.h",
]
}
rtc_source_set("bitrate_allocation") {
visibility = [ "*" ]
sources = [
"call/bitrate_allocation.h",
]
deps = [
"units:data_rate",
"units:time_delta",
]
}
rtc_source_set("simulated_network_api") {
visibility = [ "*" ]
sources = [
"test/simulated_network.h",
]
deps = [
"../rtc_base:criticalsection",
"../rtc_base:rtc_base",
"//third_party/abseil-cpp/absl/types:optional",
]
}
rtc_source_set("fec_controller_api") {
visibility = [ "*" ]
sources = [
"fec_controller.h",
]
deps = [
"..:webrtc_common",
"../modules:module_fec_api",
]
}
rtc_source_set("array_view") {
visibility = [ "*" ]
sources = [
"array_view.h",
]
deps = [
"../rtc_base:checks",
"../rtc_base:type_traits",
]
}
rtc_source_set("refcountedbase") {
visibility = [ "*" ]
sources = [
"ref_counted_base.h",
"refcountedbase.h",
]
deps = [
"../rtc_base:rtc_base_approved",
]
}
rtc_source_set("libjingle_peerconnection_test_api") {
visibility = [ "*" ]
testonly = true
sources = [
"test/fake_constraints.h",
"test/fakeconstraints.h",
]
deps = [
":libjingle_peerconnection_api",
"../rtc_base:rtc_base_approved",
]
}
rtc_source_set("neteq_simulator_api") {
visibility = [ "*" ]
sources = [
"test/neteq_simulator.cc",
"test/neteq_simulator.h",
]
}
if (rtc_include_tests) {
if (rtc_enable_protobuf) {
rtc_source_set("audioproc_f_api") {
visibility = [ "*" ]
testonly = true
sources = [
"test/audioproc_float.cc",
"test/audioproc_float.h",
]
deps = [
"../modules/audio_processing:api",
"../modules/audio_processing:audio_processing",
"../modules/audio_processing:audioproc_f_impl",
]
}
rtc_source_set("neteq_simulator_factory") {
visibility = [ "*" ]
testonly = true
sources = [
"test/neteq_simulator_factory.cc",
"test/neteq_simulator_factory.h",
]
deps = [
":neteq_simulator_api",
"../modules/audio_coding:neteq_test_factory",
"../rtc_base:checks",
"../rtc_base:rtc_base_approved",
"//third_party/abseil-cpp/absl/memory",
]
}
}
rtc_source_set("simulcast_test_fixture_api") {
visibility = [ "*" ]
testonly = true
sources = [
"test/simulcast_test_fixture.h",
]
}
rtc_source_set("create_simulcast_test_fixture_api") {
visibility = [ "*" ]
testonly = true
sources = [
"test/create_simulcast_test_fixture.cc",
"test/create_simulcast_test_fixture.h",
]
deps = [
":simulcast_test_fixture_api",
"../modules/video_coding:simulcast_test_fixture_impl",
"../rtc_base:rtc_base_approved",
"video_codecs:video_codecs_api",
"//third_party/abseil-cpp/absl/memory",
]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
}
rtc_source_set("videocodec_test_fixture_api") {
visibility = [ "*" ]
testonly = true
sources = [
"test/videocodec_test_fixture.h",
"test/videocodec_test_stats.cc",
"test/videocodec_test_stats.h",
]
deps = [
"..:webrtc_common",
"../modules/video_coding:video_codec_interface",
"../rtc_base:stringutils",
"video_codecs:video_codecs_api",
]
}
rtc_source_set("create_videocodec_test_fixture_api") {
visibility = [ "*" ]
testonly = true
sources = [
"test/create_videocodec_test_fixture.cc",
"test/create_videocodec_test_fixture.h",
]
deps = [
":videocodec_test_fixture_api",
"../modules/video_coding:video_codecs_test_framework",
"../modules/video_coding:videocodec_test_impl",
"../rtc_base:rtc_base_approved",
"video_codecs:video_codecs_api",
"//third_party/abseil-cpp/absl/memory",
]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
}
rtc_source_set("mock_audio_mixer") {
testonly = true
sources = [
"test/mock_audio_mixer.h",
]
deps = [
"../test:test_support",
"audio:audio_mixer_api",
]
}
rtc_source_set("mock_frame_encryptor") {
testonly = true
sources = [
"test/mock_frame_encryptor.cc",
"test/mock_frame_encryptor.h",
]
deps = [
":libjingle_peerconnection_api",
"../test:test_support",
]
}
rtc_source_set("mock_frame_decryptor") {
testonly = true
sources = [
"test/mock_frame_decryptor.cc",
"test/mock_frame_decryptor.h",
]
deps = [
":libjingle_peerconnection_api",
"../test:test_support",
]
}
rtc_source_set("fake_frame_encryptor") {
testonly = true
sources = [
"test/fake_frame_encryptor.cc",
"test/fake_frame_encryptor.h",
]
deps = [
":array_view",
":libjingle_peerconnection_api",
"..:webrtc_common",
"../rtc_base:checks",
"../rtc_base:rtc_base_approved",
]
}
rtc_source_set("fake_frame_decryptor") {
testonly = true
sources = [
"test/fake_frame_decryptor.cc",
"test/fake_frame_decryptor.h",
]
deps = [
":array_view",
":libjingle_peerconnection_api",
"..:webrtc_common",
"../rtc_base:checks",
"../rtc_base:rtc_base_approved",
]
}
rtc_source_set("mock_peerconnectioninterface") {
testonly = true
sources = [
"test/mock_peerconnectioninterface.h",
]
deps = [
":libjingle_peerconnection_api",
"../test:test_support",
]
}
rtc_source_set("mock_rtp") {
testonly = true
sources = [
"test/mock_rtpreceiver.h",
"test/mock_rtpsender.h",
]
deps = [
":libjingle_peerconnection_api",
"../test:test_support",
]
}
rtc_source_set("mock_video_bitrate_allocator") {
testonly = true
sources = [
"test/mock_video_bitrate_allocator.h",
]
deps = [
"../api/video:video_bitrate_allocator",
"../test:test_support",
]
}
rtc_source_set("mock_video_bitrate_allocator_factory") {
testonly = true
sources = [
"test/mock_video_bitrate_allocator_factory.h",
]
deps = [
"../api/video:video_bitrate_allocator_factory",
"../test:test_support",
]
}
rtc_source_set("mock_video_codec_factory") {
testonly = true
sources = [
"test/mock_video_decoder_factory.h",
"test/mock_video_encoder_factory.h",
]
deps = [
"../api/video_codecs:video_codecs_api",
"../test:test_support",
]
}
rtc_source_set("mock_video_decoder") {
visibility = [ "*" ]
testonly = true
sources = [
"test/mock_video_decoder.cc",
"test/mock_video_decoder.h",
]
deps = [
"../api/video_codecs:video_codecs_api",
"../test:test_support",
]
}
rtc_source_set("mock_video_encoder") {
visibility = [ "*" ]
testonly = true
sources = [
"test/mock_video_encoder.cc",
"test/mock_video_encoder.h",
]
deps = [
"../api/video_codecs:video_codecs_api",
"../test:test_support",
]
}
rtc_source_set("fake_media_transport") {
testonly = true
sources = [
"test/fake_media_transport.h",
]
deps = [
":libjingle_peerconnection_api",
"../rtc_base:checks",
"//third_party/abseil-cpp/absl/memory",
]
}
rtc_source_set("loopback_media_transport") {
testonly = true
sources = [
"test/loopback_media_transport.cc",
"test/loopback_media_transport.h",
]
deps = [
":libjingle_peerconnection_api",
"../rtc_base:checks",
"../rtc_base:rtc_base",
"//third_party/abseil-cpp/absl/memory",
]
}
rtc_source_set("rtc_api_unittests") {
testonly = true
sources = [
"array_view_unittest.cc",
"rtc_error_unittest.cc",
"rtp_parameters_unittest.cc",
"test/loopback_media_transport_unittest.cc",
]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
deps = [
":array_view",
":libjingle_peerconnection_api",
":loopback_media_transport",
"../rtc_base:checks",
"../rtc_base:gunit_helpers",
"../rtc_base:rtc_base_approved",
"../test:test_support",
"units:units_unittests",
]
}
}