| # 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 = [ | 
 |     ":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", | 
 |     "../base:rtc_base_approved", | 
 |     "audio_codecs:audio_codecs_api", | 
 |   ] | 
 | } | 
 |  | 
 | rtc_static_library("libjingle_peerconnection_api") { | 
 |   # Cannot have GN check enabled since that would introduce dependency cycles | 
 |   # TODO(kjellander): Remove (bugs.webrtc.org/7504) | 
 |   check_includes = false | 
 |   cflags = [] | 
 |   sources = [ | 
 |     "datachannel.h", | 
 |     "datachannelinterface.h", | 
 |     "dtmfsenderinterface.h", | 
 |     "jsep.h", | 
 |     "jsepicecandidate.h", | 
 |     "jsepsessiondescription.h", | 
 |     "mediaconstraintsinterface.cc", | 
 |     "mediaconstraintsinterface.h", | 
 |     "mediastream.h", | 
 |     "mediastreaminterface.cc", | 
 |     "mediastreaminterface.h", | 
 |     "mediastreamproxy.h", | 
 |     "mediastreamtrack.h", | 
 |     "mediastreamtrackproxy.h", | 
 |     "mediatypes.cc", | 
 |     "mediatypes.h", | 
 |     "notifier.h", | 
 |     "peerconnectionfactoryproxy.h", | 
 |     "peerconnectioninterface.h", | 
 |     "peerconnectionproxy.h", | 
 |     "proxy.h", | 
 |     "rtcerror.cc", | 
 |     "rtcerror.h", | 
 |     "rtpparameters.h", | 
 |     "rtpreceiverinterface.h", | 
 |     "rtpsender.h", | 
 |     "rtpsenderinterface.h", | 
 |     "statstypes.cc", | 
 |     "statstypes.h", | 
 |     "streamcollection.h", | 
 |     "umametrics.h", | 
 |     "videosourceproxy.h", | 
 |     "videotracksource.h", | 
 |     "webrtcsdp.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" ] | 
 |   } | 
 |  | 
 |   deps = [ | 
 |     ":rtc_stats_api", | 
 |     "..:webrtc_common", | 
 |     "../base:rtc_base", | 
 |     "../base:rtc_base_approved", | 
 |     "audio_codecs:audio_codecs_api", | 
 |   ] | 
 |  | 
 |   # 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("ortc_api") { | 
 |   check_includes = false  # TODO(deadbeef): Remove (bugs.webrtc.org/6828) | 
 |   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. | 
 |   public_deps = [ | 
 |     ":libjingle_peerconnection_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" ] | 
 |   } | 
 | } | 
 |  | 
 | # TODO(ossu): Remove once downstream projects have updated. | 
 | rtc_source_set("libjingle_peerconnection") { | 
 |   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 = [ | 
 |     "../base:rtc_base_approved", | 
 |   ] | 
 | } | 
 |  | 
 | rtc_source_set("audio_mixer_api") { | 
 |   sources = [ | 
 |     "audio/audio_mixer.h", | 
 |   ] | 
 |  | 
 |   deps = [ | 
 |     "../base:rtc_base_approved", | 
 |     "../modules:module_api", | 
 |   ] | 
 | } | 
 |  | 
 | rtc_source_set("transport_api") { | 
 |   sources = [ | 
 |     "call/transport.h", | 
 |   ] | 
 | } | 
 |  | 
 | rtc_source_set("video_frame_api") { | 
 |   sources = [ | 
 |     "video/i420_buffer.cc", | 
 |     "video/i420_buffer.h", | 
 |     "video/video_frame.cc", | 
 |     "video/video_frame.h", | 
 |     "video/video_frame_buffer.h", | 
 |     "video/video_rotation.h", | 
 |   ] | 
 |  | 
 |   deps = [ | 
 |     "../base:rtc_base_approved", | 
 |     "../system_wrappers", | 
 |   ] | 
 |  | 
 |   # 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("libjingle_peerconnection_test_api") { | 
 |   testonly = true | 
 |   sources = [ | 
 |     "test/fakeconstraints.h", | 
 |   ] | 
 |  | 
 |   public_deps = [ | 
 |     ":libjingle_peerconnection_api", | 
 |   ] | 
 |  | 
 |   deps = [ | 
 |     "../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 = [ | 
 |       "//testing/gmock", | 
 |       "//webrtc/test:test_support", | 
 |     ] | 
 |   } | 
 |  | 
 |   rtc_source_set("fakemetricsobserver") { | 
 |     testonly = true | 
 |     sources = [ | 
 |       "fakemetricsobserver.cc", | 
 |       "fakemetricsobserver.h", | 
 |     ] | 
 |     deps = [ | 
 |       ":libjingle_peerconnection_api", | 
 |       "../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 | 
 |  | 
 |     # Skip restricting visibility on mobile platforms since the tests on those | 
 |     # gets additional generated targets which would require many lines here to | 
 |     # cover (which would be confusing to read and hard to maintain). | 
 |     if (!is_android && !is_ios) { | 
 |       visibility = [ "//webrtc:rtc_unittests" ] | 
 |     } | 
 |     sources = [ | 
 |       "ortc/mediadescription_unittest.cc", | 
 |       "ortc/sessiondescription_unittest.cc", | 
 |       "rtcerror_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 = [ | 
 |       ":libjingle_peerconnection_api", | 
 |       ":ortc_api", | 
 |       "//webrtc/test:test_support", | 
 |     ] | 
 |   } | 
 | } |