diff options
Diffstat (limited to 'third_party/libwebrtc/webrtc/api/BUILD.gn')
-rw-r--r-- | third_party/libwebrtc/webrtc/api/BUILD.gn | 395 |
1 files changed, 395 insertions, 0 deletions
diff --git a/third_party/libwebrtc/webrtc/api/BUILD.gn b/third_party/libwebrtc/webrtc/api/BUILD.gn new file mode 100644 index 0000000000..138a61ee2b --- /dev/null +++ b/third_party/libwebrtc/webrtc/api/BUILD.gn @@ -0,0 +1,395 @@ +# 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") { + public_deps = [] + + if (!build_with_mozilla) { + public_deps += [ ":libjingle_peerconnection_api" ] + } +} + +rtc_source_set("call_api") { + sources = [ + "call/audio_sink.h", + ] + + deps = [ + # TODO(kjellander): Add remaining dependencies when webrtc:4243 is done. + ":audio_mixer_api", + ":transport_api", + "..:webrtc_common", + "../rtc_base:rtc_base_approved", + "audio_codecs:audio_codecs_api", + ] +} + +rtc_static_library("base_peerconnection_api") { + sources = [ + "rtpparameters.cc", + "rtpparameters.h", + ] +} + +if (!build_with_mozilla) { + rtc_static_library("libjingle_peerconnection_api") { + cflags = [] + sources = [ + "candidate.cc", + "candidate.h", + "cryptoparams.h", + "datachannelinterface.h", + "dtmfsenderinterface.h", + "jsep.h", + "jsepicecandidate.h", + "jsepsessiondescription.h", + "mediaconstraintsinterface.cc", + "mediaconstraintsinterface.h", + "mediastreaminterface.cc", + "mediastreamproxy.h", + "mediastreamtrackproxy.h", + "mediatypes.cc", + "mediatypes.h", + "notifier.h", + "peerconnectionfactoryproxy.h", + "peerconnectionproxy.h", + "proxy.cc", + "proxy.h", + "rtcerror.cc", + "rtcerror.h", + "rtpreceiverinterface.h", + "rtpsenderinterface.h", + "rtptransceiverinterface.h", + "setremotedescriptionobserverinterface.h", + "statstypes.cc", + "statstypes.h", + "turncustomizer.h", + "umametrics.cc", + "umametrics.h", + "videosourceproxy.h", + ] + + 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" ] + } + + public_deps = [ + ":libjingle_api_deprecated_headers", + ":peerconnection_and_implicit_call_api", + ] + + deps = [ + ":base_peerconnection_api", + ":optional", + ":rtc_stats_api", + ":video_frame_api", + "audio_codecs:audio_codecs_api", + + # 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", + "../modules/audio_processing:audio_processing_statistics", + "../rtc_base:rtc_base", + "../rtc_base:rtc_base_approved", + ] + + # This is needed until bugs.webrtc.org/7504 is removed so this target can + # properly depend on ../media:rtc_media_base + # TODO(kjellander): Remove this dependency. + if (is_nacl) { + deps += [ "//native_client_sdk/src/libraries/nacl_io" ] + } + } + + rtc_source_set("peerconnection_and_implicit_call_api") { + # The peerconnectioninterface.h file pulls in call/callfactoryinterface.h + # and the entire call module with it. We need to either get rid of this + # dependency or pull most of call/ into the API. For now, silence the warnings + # this creates since it creates a circular dependency (call very much depends + # on API). See bugs.webrtc.org/7504. + check_includes = false + sources = [ + "peerconnectioninterface.h", + ] + } + + rtc_source_set("libjingle_api_deprecated_headers") { + # We need to include headers from undeclared targets here, since they cause + # circular dependencies. These deprecated headers are going away anyway. + # See http://bugs.webrtc.org/5883. + check_includes = false + sources = [ + "datachannel.h", + "mediastream.h", + "mediastreamtrack.h", + "rtpsender.h", + "streamcollection.h", + "videotracksource.h", + "webrtcsdp.h", + ] + } + + rtc_source_set("libjingle_logging_api") { + sources = [ + "rtceventlogoutput.h", + ] + } + + rtc_source_set("ortc_api") { + sources = [ + "ortc/mediadescription.cc", + "ortc/mediadescription.h", + "ortc/ortcfactoryinterface.h", + "ortc/ortcrtpreceiverinterface.h", + "ortc/ortcrtpsenderinterface.h", + "ortc/packettransportinterface.h", + "ortc/rtptransportcontrollerinterface.h", + "ortc/rtptransportinterface.h", + "ortc/sessiondescription.cc", + "ortc/sessiondescription.h", + "ortc/srtptransportinterface.h", + "ortc/udptransportinterface.h", + ] + + # For mediastreaminterface.h, etc. + # TODO(deadbeef): Create a separate target for the common things ORTC and + # PeerConnection code shares, so that ortc_api can depend on that instead of + # libjingle_peerconnection_api. + deps = [ + ":libjingle_peerconnection_api", + ":optional", + "..:webrtc_common", + "../rtc_base:rtc_base", + ] + 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" ] + } + } + + # TODO(ossu): Remove once downstream projects have updated. + rtc_source_set("libjingle_peerconnection") { + public_deps = [] + + if (!build_with_mozilla) { + public_deps += [ "../pc:libjingle_peerconnection" ] + } + } +} + +rtc_source_set("rtc_stats_api") { + cflags = [] + sources = [ + "stats/rtcstats.h", + "stats/rtcstats_objects.h", + "stats/rtcstatscollectorcallback.h", + "stats/rtcstatsreport.h", + ] + + deps = [ + "../rtc_base:rtc_base_approved", + ] +} + +rtc_source_set("audio_mixer_api") { + sources = [ + "audio/audio_mixer.h", + ] + + deps = [ + "../modules:module_api", + "../rtc_base:rtc_base_approved", + ] +} + +rtc_source_set("transport_api") { + sources = [ + "call/transport.h", + ] +} + +rtc_source_set("video_frame_api") { + sources = [ + "video/video_content_type.cc", + "video/video_content_type.h", + "video/video_frame.cc", + "video/video_frame.h", + "video/video_frame_buffer.cc", + "video/video_frame_buffer.h", + "video/video_rotation.h", + "video/video_timing.cc", + "video/video_timing.h", + ] + + deps = [ + "../rtc_base:rtc_base_approved", + ] + + # TODO(nisse): This logic is duplicated in multiple places. + # Define in a single place. + if (rtc_build_libyuv) { + deps += [ "$rtc_libyuv_dir" ] + public_deps = [ + "$rtc_libyuv_dir", + ] + } else { + # Need to add a directory normally exported by libyuv. + include_dirs = [ "$rtc_libyuv_dir/include" ] + } +} + +rtc_source_set("video_frame_api_i420") { + sources = [ + "video/i420_buffer.cc", + "video/i420_buffer.h", + ] + deps = [ + ":video_frame_api", + "../rtc_base:rtc_base_approved", + "../system_wrappers", + ] + if (build_with_mozilla) { + include_dirs = [ "/media/libyuv/libyuv/include" ] + } +} + +rtc_source_set("array_view") { + sources = [ + "array_view.h", + ] + deps = [ + "../rtc_base:rtc_base_approved", + ] +} + +rtc_source_set("optional") { + sources = [ + "optional.cc", + "optional.h", + ] + deps = [ + ":array_view", + "../rtc_base:rtc_base_approved", + ] +} + +rtc_source_set("refcountedbase") { + sources = [ + "refcountedbase.h", + ] + deps = [ + "../rtc_base:rtc_base_approved", + ] +} + +if (rtc_include_tests) { + rtc_source_set("libjingle_peerconnection_test_api") { + testonly = true + sources = [ + "test/fakeconstraints.h", + ] + + public_deps = [ + ":libjingle_peerconnection_api", + ] + + deps = [ + "../rtc_base:rtc_base_approved", + ] + } +} + +if (rtc_include_tests) { + rtc_source_set("mock_audio_mixer") { + testonly = true + sources = [ + "test/mock_audio_mixer.h", + ] + + public_deps = [ + ":audio_mixer_api", + ] + + deps = [ + "../test:test_support", + "//testing/gmock", + ] + } + + rtc_source_set("mock_video_codec_factory") { + testonly = true + sources = [ + "test/mock_video_decoder_factory.h", + "test/mock_video_encoder_factory.h", + ] + + public_deps = [ + "../api/video_codecs:video_codecs_api", + ] + + deps = [ + "../test:test_support", + "//testing/gmock", + ] + } + + rtc_source_set("fakemetricsobserver") { + testonly = true + sources = [ + "fakemetricsobserver.cc", + "fakemetricsobserver.h", + ] + deps = [ + ":libjingle_peerconnection_api", + "../api:peerconnection_and_implicit_call_api", + "../media:rtc_media_base", + "../rtc_base:rtc_base_approved", + ] + 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("rtc_api_unittests") { + testonly = true + + sources = [ + "array_view_unittest.cc", + "optional_unittest.cc", + "ortc/mediadescription_unittest.cc", + "ortc/sessiondescription_unittest.cc", + "rtcerror_unittest.cc", + "rtpparameters_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", + ":libjingle_peerconnection_test_api", + ":optional", + ":ortc_api", + "../rtc_base:rtc_base_approved", + "../rtc_base:rtc_base_tests_utils", + "../test:test_support", + ] + } +} |