webrtc/api/BUILD.gn
Mirko Bonadei fc52b912a3 Implicitly suppress //build/config/clang:find_bad_constructs.
Since there is no way to enable/disable these diagnostics at runtime,
this CL moves the suppression into the rtc_* templates in order to
remove the need to explicitly add the snippet of code needed to
suppress it (currently copy/pasted in 144 locations).

The diagnostic that causes the most problems is the one about "complex
class/struct explicit ctor/dtor" [1] because WebRTC doesn't find
it useful enough.

Other diagnostics are good (for example the one that warns about
using "virtual" instead of "override", but that will be covered by
this clang-tidy check [2]) while others are Chromium related so
they have never triggered.

[1] - https://cs.chromium.org/chromium/src/tools/clang/plugins/FindBadConstructsConsumer.cpp?l=147-167&rcl=b4bebe1aa15dba7ca5fcc6456a81a55665327c3a
[2] - https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-override.html

Bug: webrtc:163
Change-Id: Icbf27efa5b369100a31e6a32df1a0913729b3b34
Reviewed-on: https://webrtc-review.googlesource.com/c/125088
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26918}
2019-03-01 10:18:17 +00:00

665 lines
15 KiB
Text

# 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",
]
}
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",
":scoped_refptr",
"../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: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",
"bitrate_constraints.h",
"candidate.cc",
"candidate.h",
"crypto/crypto_options.cc",
"crypto/crypto_options.h",
"crypto/frame_decryptor_interface.h",
"crypto/frame_encryptor_interface.h",
"crypto_params.h",
"data_channel_interface.cc",
"data_channel_interface.h",
"dtls_transport_interface.h",
"dtmf_sender_interface.h",
"ice_transport_interface.h",
"jsep.cc",
"jsep.h",
"jsep_ice_candidate.cc",
"jsep_ice_candidate.h",
"jsep_session_description.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",
"notifier.h",
"peer_connection_factory_proxy.h",
"peer_connection_interface.cc",
"peer_connection_interface.h",
"peer_connection_proxy.h",
"proxy.cc",
"proxy.h",
"rtc_error.cc",
"rtc_error.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",
"sctp_transport_interface.cc",
"sctp_transport_interface.h",
"set_remote_description_observer_interface.h",
"stats_types.cc",
"stats_types.h",
"turn_customizer.h",
"uma_metrics.h",
"video_track_source_proxy.h",
]
deps = [
":array_view",
":audio_options_api",
":callfactory_api",
":fec_controller_api",
":libjingle_logging_api",
":rtc_stats_api",
":scoped_refptr",
"audio:audio_mixer_api",
"audio_codecs:audio_codecs_api",
"transport:bitrate_settings",
"transport:network_control",
"transport/media:audio_interfaces",
"transport/media:video_interfaces",
"units:data_rate",
"video:encoded_image",
"video:video_frame",
"//third_party/abseil-cpp/absl/algorithm:container",
"//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",
]
}
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 (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",
":scoped_refptr",
":video_quality_test_fixture_api",
"../video:video_quality_test",
"//third_party/abseil-cpp/absl/memory",
]
}
}
rtc_source_set("libjingle_logging_api") {
visibility = [ "*" ]
sources = [
"rtc_event_log_output.h",
]
}
rtc_source_set("ortc_api") {
visibility = [ "*" ]
sources = [
"ortc/packet_transport_interface.h",
"ortc/rtp_transport_interface.h",
"ortc/srtp_transport_interface.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_objects.h",
]
deps = [
":scoped_refptr",
"../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",
]
deps = [
"../rtc_base:rtc_base_approved",
]
}
rtc_source_set("ice_transport_factory") {
visibility = [ "*" ]
sources = [
"ice_transport_factory.cc",
"ice_transport_factory.h",
]
deps = [
":libjingle_peerconnection_api",
":scoped_refptr",
"../p2p:rtc_p2p",
"../rtc_base:rtc_base",
"//third_party/abseil-cpp/absl/memory:memory",
]
}
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",
]
}
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",
]
}
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",
]
deps = [
":array_view",
":libjingle_peerconnection_api",
":loopback_media_transport",
"../rtc_base:checks",
"../rtc_base:gunit_helpers",
"../rtc_base:rtc_base_approved",
"../test:test_support",
"task_queue:task_queue_default_factory_unittests",
"units:units_unittests",
]
}
}