summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/webrtc/api/BUILD.gn
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/libwebrtc/webrtc/api/BUILD.gn')
-rw-r--r--third_party/libwebrtc/webrtc/api/BUILD.gn395
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",
+ ]
+ }
+}