blob: b2f28ab4e2769faaf4963bb264a139eaf08aa2e6 [file] [log] [blame]
hjonaa32c3e2015-12-13 19:58:11 -08001# Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
2#
3# Use of this source code is governed by a BSD-style license
4# that can be found in the LICENSE file in the root of the source
5# tree. An additional intellectual property rights grant can be found
6# in the file PATENTS. All contributing project authors may
7# be found in the AUTHORS file in the root of the source tree.
8
9import("../build/webrtc.gni")
Sami Kalliomaki9c0c75b2016-06-29 14:55:00 +020010if (is_android) {
11 import("//build/config/android/config.gni")
12 import("//build/config/android/rules.gni")
13}
kjellanderc76dc952016-06-03 03:09:32 -070014
15group("api") {
kjellander705ecc52016-09-15 00:53:26 -070016 public_deps = [
kjellanderc76dc952016-06-03 03:09:32 -070017 ":libjingle_peerconnection",
18 ]
kjellander6ceab082016-10-28 05:44:03 -070019 if (is_android && !build_with_chromium) {
20 public_deps += [
21 ":libjingle_peerconnection_java",
22 ":libjingle_peerconnection_so",
23 ]
24 }
kjellanderc76dc952016-06-03 03:09:32 -070025}
26
ehmaldonado38a21322016-09-02 04:10:34 -070027rtc_source_set("call_api") {
kjellandera69d9732016-08-31 07:33:05 -070028 sources = [
29 "call/audio_receive_stream.h",
solenberg940b6d62016-10-25 11:19:07 -070030 "call/audio_send_stream.cc",
kjellandera69d9732016-08-31 07:33:05 -070031 "call/audio_send_stream.h",
32 "call/audio_sink.h",
33 "call/audio_state.h",
brandtr76648da2016-10-20 04:54:48 -070034 "call/flexfec_receive_stream.h",
kjellandera69d9732016-08-31 07:33:05 -070035 ]
36
kjellandera69d9732016-08-31 07:33:05 -070037 deps = [
38 # TODO(kjellander): Add remaining dependencies when webrtc:4243 is done.
aleloi81da4882016-11-08 04:26:30 -080039 ":audio_mixer_api",
aleloia8eb7562016-11-28 07:02:13 -080040 ":transport_api",
kjellandera69d9732016-08-31 07:33:05 -070041 "..:webrtc_common",
42 "../base:rtc_base_approved",
43 "../modules/audio_coding:audio_encoder_interface",
44 ]
45}
46
kjellanderc76dc952016-06-03 03:09:32 -070047config("libjingle_peerconnection_warnings_config") {
48 # GN orders flags on a target before flags from configs. The default config
49 # adds these flags so to cancel them out they need to come from a config and
50 # cannot be on the target directly.
kjellander3e33bfe2016-06-20 07:04:09 -070051 if (!is_win && !is_clang) {
52 cflags = [ "-Wno-maybe-uninitialized" ] # Only exists for GCC.
kjellanderc76dc952016-06-03 03:09:32 -070053 }
54}
55
kjellanderb62dbbe2016-09-23 00:38:52 -070056rtc_static_library("libjingle_peerconnection") {
kjellanderc76dc952016-06-03 03:09:32 -070057 cflags = []
58 sources = [
59 "audiotrack.cc",
60 "audiotrack.h",
61 "datachannel.cc",
62 "datachannel.h",
63 "datachannelinterface.h",
kjellanderc76dc952016-06-03 03:09:32 -070064 "dtmfsender.cc",
65 "dtmfsender.h",
66 "dtmfsenderinterface.h",
67 "jsep.h",
68 "jsepicecandidate.cc",
69 "jsepicecandidate.h",
70 "jsepsessiondescription.cc",
71 "jsepsessiondescription.h",
72 "localaudiosource.cc",
73 "localaudiosource.h",
74 "mediaconstraintsinterface.cc",
75 "mediaconstraintsinterface.h",
76 "mediacontroller.cc",
77 "mediacontroller.h",
78 "mediastream.cc",
79 "mediastream.h",
80 "mediastreaminterface.h",
81 "mediastreamobserver.cc",
82 "mediastreamobserver.h",
kjellanderc76dc952016-06-03 03:09:32 -070083 "mediastreamproxy.h",
84 "mediastreamtrack.h",
85 "mediastreamtrackproxy.h",
86 "notifier.h",
87 "peerconnection.cc",
88 "peerconnection.h",
89 "peerconnectionfactory.cc",
90 "peerconnectionfactory.h",
91 "peerconnectionfactoryproxy.h",
92 "peerconnectioninterface.h",
93 "peerconnectionproxy.h",
94 "proxy.h",
95 "remoteaudiosource.cc",
96 "remoteaudiosource.h",
hbos74e1a4f2016-09-15 23:33:01 -070097 "rtcstatscollector.cc",
98 "rtcstatscollector.h",
kjellanderc76dc952016-06-03 03:09:32 -070099 "rtpparameters.h",
100 "rtpreceiver.cc",
101 "rtpreceiver.h",
102 "rtpreceiverinterface.h",
103 "rtpsender.cc",
104 "rtpsender.h",
105 "rtpsenderinterface.h",
106 "sctputils.cc",
107 "sctputils.h",
108 "statscollector.cc",
109 "statscollector.h",
110 "statstypes.cc",
111 "statstypes.h",
112 "streamcollection.h",
113 "videocapturertracksource.cc",
114 "videocapturertracksource.h",
115 "videosourceproxy.h",
116 "videotrack.cc",
117 "videotrack.h",
118 "videotracksource.cc",
119 "videotracksource.h",
120 "webrtcsdp.cc",
121 "webrtcsdp.h",
122 "webrtcsession.cc",
123 "webrtcsession.h",
124 "webrtcsessiondescriptionfactory.cc",
125 "webrtcsessiondescriptionfactory.h",
126 ]
127
ehmaldonado7a2ce0b2016-09-05 01:35:44 -0700128 configs += [ ":libjingle_peerconnection_warnings_config" ]
kjellanderc76dc952016-06-03 03:09:32 -0700129
kjellandere40a7ee2016-10-16 23:56:12 -0700130 if (!build_with_chromium && is_clang) {
kjellanderfd5b4e92016-06-13 12:08:33 -0700131 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
ehmaldonado38a21322016-09-02 04:10:34 -0700132 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
kjellanderc76dc952016-06-03 03:09:32 -0700133 }
134
kjellanderc76dc952016-06-03 03:09:32 -0700135 deps = [
kjellandera69d9732016-08-31 07:33:05 -0700136 ":call_api",
hbos74e1a4f2016-09-15 23:33:01 -0700137 ":rtc_stats_api",
katrielc14897d02016-06-03 13:14:28 -0700138 "../call",
kjellanderc76dc952016-06-03 03:09:32 -0700139 "../media",
140 "../pc",
hbos74e1a4f2016-09-15 23:33:01 -0700141 "../stats",
kjellanderc76dc952016-06-03 03:09:32 -0700142 ]
143
144 if (rtc_use_quic) {
145 sources += [
146 "quicdatachannel.cc",
147 "quicdatachannel.h",
148 "quicdatatransport.cc",
149 "quicdatatransport.h",
150 ]
151 deps += [ "//third_party/libquic" ]
152 public_deps = [
153 "//third_party/libquic",
154 ]
155 }
156}
kjellanderfd5b4e92016-06-13 12:08:33 -0700157
kjellander69b34622016-06-21 01:05:16 -0700158# Exclude the targets below from the Chromium build since they cannot be built
159# due to incompability with Chromium's logging implementation.
160if (is_android && !build_with_chromium) {
kjellanderfd5b4e92016-06-13 12:08:33 -0700161 config("libjingle_peerconnection_jni_warnings_config") {
162 # The warnings below are enabled by default. Since GN orders compiler flags
163 # for a target before flags from configs, the only way to disable such
164 # warnings is by having them in a separate config, loaded from the target.
165 if (!is_win) {
166 cflags = [
167 "-Wno-sign-compare",
168 "-Wno-unused-variable",
169 ]
170 }
171 }
172
kjellanderb62dbbe2016-09-23 00:38:52 -0700173 rtc_static_library("libjingle_peerconnection_jni") {
kjellanderfd5b4e92016-06-13 12:08:33 -0700174 sources = [
sakal08be7802016-11-23 07:12:22 -0800175 "android/jni/androidhistogram_jni.cc",
sakald34a7112016-07-01 05:10:51 -0700176 "android/jni/androidmediacodeccommon.h",
177 "android/jni/androidmediadecoder_jni.cc",
178 "android/jni/androidmediadecoder_jni.h",
179 "android/jni/androidmediaencoder_jni.cc",
180 "android/jni/androidmediaencoder_jni.h",
sakald34a7112016-07-01 05:10:51 -0700181 "android/jni/androidnetworkmonitor_jni.cc",
182 "android/jni/androidnetworkmonitor_jni.h",
sakal0ce6aaf2016-11-22 01:26:16 -0800183 "android/jni/androidvideotracksource.cc",
184 "android/jni/androidvideotracksource.h",
Sami Kalliomaki16032122016-07-20 16:13:08 +0200185 "android/jni/androidvideotracksource_jni.cc",
sakald34a7112016-07-01 05:10:51 -0700186 "android/jni/classreferenceholder.cc",
187 "android/jni/classreferenceholder.h",
188 "android/jni/jni_helpers.cc",
189 "android/jni/jni_helpers.h",
190 "android/jni/native_handle_impl.cc",
191 "android/jni/native_handle_impl.h",
192 "android/jni/peerconnection_jni.cc",
193 "android/jni/surfacetexturehelper_jni.cc",
194 "android/jni/surfacetexturehelper_jni.h",
kjellanderfd5b4e92016-06-13 12:08:33 -0700195 ]
196
ehmaldonado7a2ce0b2016-09-05 01:35:44 -0700197 configs += [ ":libjingle_peerconnection_jni_warnings_config" ]
kjellanderfd5b4e92016-06-13 12:08:33 -0700198
kjellandere40a7ee2016-10-16 23:56:12 -0700199 if (!build_with_chromium && is_clang) {
kjellanderfd5b4e92016-06-13 12:08:33 -0700200 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
ehmaldonado38a21322016-09-02 04:10:34 -0700201 suppressed_configs += [
kjellanderfd5b4e92016-06-13 12:08:33 -0700202 "//build/config/clang:extra_warnings",
203 "//build/config/clang:find_bad_constructs",
204 ]
205 }
206
207 # TODO(jschuh): Bug 1348: fix this warning.
208 configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
209
210 if (is_win) {
211 cflags += [
212 "/wd4245", # conversion from "int" to "size_t", signed/unsigned mismatch.
213 "/wd4389", # signed/unsigned mismatch.
214 ]
215 }
216
217 deps = [
218 ":libjingle_peerconnection",
kjellanderfd5b4e92016-06-13 12:08:33 -0700219 ]
220
221 if (rtc_build_libyuv) {
222 deps += [ "$rtc_libyuv_dir" ]
223 public_deps = [
224 "$rtc_libyuv_dir",
225 ]
226 } else {
227 # Need to add a directory normally exported by libyuv.
charujainb7446d72016-09-28 00:47:51 -0700228 include_dirs = [ "$rtc_libyuv_dir/include" ]
kjellanderfd5b4e92016-06-13 12:08:33 -0700229 }
230 }
Sami Kalliomaki9c0c75b2016-06-29 14:55:00 +0200231
sakalf7233122016-11-22 01:25:09 -0800232 rtc_static_library("libjingle_peerconnection_metrics_default_jni") {
sakal08be7802016-11-23 07:12:22 -0800233 sources = [
234 "android/jni/androidmetrics_jni.cc",
235 ]
236
237 configs += [ ":libjingle_peerconnection_jni_warnings_config" ]
238
239 deps = [
240 ":libjingle_peerconnection",
241 "../system_wrappers:field_trial_default",
242 "../system_wrappers:metrics_default",
243 ]
sakalf7233122016-11-22 01:25:09 -0800244 }
245
ehmaldonadoacf9f472016-09-08 04:26:37 -0700246 rtc_shared_library("libjingle_peerconnection_so") {
Sami Kalliomaki9c0c75b2016-06-29 14:55:00 +0200247 sources = [
sakald34a7112016-07-01 05:10:51 -0700248 "android/jni/jni_onload.cc",
Sami Kalliomaki9c0c75b2016-06-29 14:55:00 +0200249 ]
250
ehmaldonadoacf9f472016-09-08 04:26:37 -0700251 suppressed_configs += [ "//build/config/android:hide_native_jni_exports" ]
Sami Kalliomaki9c0c75b2016-06-29 14:55:00 +0200252
253 deps = [
254 ":libjingle_peerconnection",
255 ":libjingle_peerconnection_jni",
sakal08be7802016-11-23 07:12:22 -0800256 ":libjingle_peerconnection_metrics_default_jni",
Sami Kalliomaki9c0c75b2016-06-29 14:55:00 +0200257 ]
sakala53fa0a2016-08-24 00:48:21 -0700258 output_extension = "so"
Sami Kalliomaki9c0c75b2016-06-29 14:55:00 +0200259 }
sakalebf52402016-10-24 00:28:01 -0700260}
Sami Kalliomaki9c0c75b2016-06-29 14:55:00 +0200261
sakalebf52402016-10-24 00:28:01 -0700262# Classes that don't require jni can be used in Chromium.
263if (is_android) {
Sami Kalliomaki9c0c75b2016-06-29 14:55:00 +0200264 android_library("libjingle_peerconnection_java") {
265 java_files = [
266 "../modules/audio_device/android/java/src/org/webrtc/voiceengine/BuildInfo.java",
267 "../modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioEffects.java",
268 "../modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioManager.java",
269 "../modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioRecord.java",
270 "../modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java",
271 "../modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioUtils.java",
sakald34a7112016-07-01 05:10:51 -0700272 "android/java/src/org/webrtc/AudioSource.java",
273 "android/java/src/org/webrtc/AudioTrack.java",
274 "android/java/src/org/webrtc/CallSessionFileRotatingLogSink.java",
sakal34425792016-09-21 01:34:56 -0700275 "android/java/src/org/webrtc/Camera1Capturer.java",
sakald34a7112016-07-01 05:10:51 -0700276 "android/java/src/org/webrtc/Camera1Enumerator.java",
sakal34425792016-09-21 01:34:56 -0700277 "android/java/src/org/webrtc/Camera1Session.java",
sakald34a7112016-07-01 05:10:51 -0700278 "android/java/src/org/webrtc/Camera2Capturer.java",
279 "android/java/src/org/webrtc/Camera2Enumerator.java",
sakald30e0ad2016-08-11 01:00:37 -0700280 "android/java/src/org/webrtc/Camera2Session.java",
281 "android/java/src/org/webrtc/CameraCapturer.java",
sakald34a7112016-07-01 05:10:51 -0700282 "android/java/src/org/webrtc/CameraEnumerationAndroid.java",
283 "android/java/src/org/webrtc/CameraEnumerator.java",
sakald30e0ad2016-08-11 01:00:37 -0700284 "android/java/src/org/webrtc/CameraSession.java",
sakald34a7112016-07-01 05:10:51 -0700285 "android/java/src/org/webrtc/CameraVideoCapturer.java",
286 "android/java/src/org/webrtc/DataChannel.java",
287 "android/java/src/org/webrtc/EglBase.java",
288 "android/java/src/org/webrtc/EglBase10.java",
289 "android/java/src/org/webrtc/EglBase14.java",
magjeddf494b02016-10-07 05:32:35 -0700290 "android/java/src/org/webrtc/EglRenderer.java",
mandermo64e1a322016-10-18 08:47:51 -0700291 "android/java/src/org/webrtc/FileVideoCapturer.java",
sakald34a7112016-07-01 05:10:51 -0700292 "android/java/src/org/webrtc/GlRectDrawer.java",
293 "android/java/src/org/webrtc/GlShader.java",
294 "android/java/src/org/webrtc/GlTextureFrameBuffer.java",
295 "android/java/src/org/webrtc/GlUtil.java",
sakal08be7802016-11-23 07:12:22 -0800296 "android/java/src/org/webrtc/Histogram.java",
sakald34a7112016-07-01 05:10:51 -0700297 "android/java/src/org/webrtc/IceCandidate.java",
298 "android/java/src/org/webrtc/MediaCodecVideoDecoder.java",
299 "android/java/src/org/webrtc/MediaCodecVideoEncoder.java",
300 "android/java/src/org/webrtc/MediaConstraints.java",
301 "android/java/src/org/webrtc/MediaSource.java",
302 "android/java/src/org/webrtc/MediaStream.java",
303 "android/java/src/org/webrtc/MediaStreamTrack.java",
sakald34a7112016-07-01 05:10:51 -0700304 "android/java/src/org/webrtc/NetworkMonitor.java",
305 "android/java/src/org/webrtc/NetworkMonitorAutoDetect.java",
306 "android/java/src/org/webrtc/PeerConnection.java",
307 "android/java/src/org/webrtc/PeerConnectionFactory.java",
308 "android/java/src/org/webrtc/RendererCommon.java",
309 "android/java/src/org/webrtc/RtpParameters.java",
310 "android/java/src/org/webrtc/RtpReceiver.java",
311 "android/java/src/org/webrtc/RtpSender.java",
sakal73c5d4a2016-10-19 02:46:19 -0700312 "android/java/src/org/webrtc/ScreenCapturerAndroid.java",
sakald34a7112016-07-01 05:10:51 -0700313 "android/java/src/org/webrtc/SdpObserver.java",
314 "android/java/src/org/webrtc/SessionDescription.java",
315 "android/java/src/org/webrtc/StatsObserver.java",
316 "android/java/src/org/webrtc/StatsReport.java",
317 "android/java/src/org/webrtc/SurfaceTextureHelper.java",
318 "android/java/src/org/webrtc/SurfaceViewRenderer.java",
319 "android/java/src/org/webrtc/VideoCapturer.java",
320 "android/java/src/org/webrtc/VideoCapturerAndroid.java",
mandermo64e1a322016-10-18 08:47:51 -0700321 "android/java/src/org/webrtc/VideoFileRenderer.java",
sakald34a7112016-07-01 05:10:51 -0700322 "android/java/src/org/webrtc/VideoRenderer.java",
323 "android/java/src/org/webrtc/VideoRendererGui.java",
324 "android/java/src/org/webrtc/VideoSource.java",
325 "android/java/src/org/webrtc/VideoTrack.java",
Magnus Jedvert577bc192016-10-19 15:29:02 +0200326 "android/java/src/org/webrtc/YuvConverter.java",
Sami Kalliomaki9c0c75b2016-06-29 14:55:00 +0200327 ]
328
329 deps = [
sakalebf52402016-10-24 00:28:01 -0700330 "../base:base_java",
Sami Kalliomaki9c0c75b2016-06-29 14:55:00 +0200331 ]
332 }
sakal08be7802016-11-23 07:12:22 -0800333
334 android_library("libjingle_peerconnection_metrics_default_java") {
335 java_files = [ "android/java/src/org/webrtc/Metrics.java" ]
336
337 deps = [
338 "../base:base_java",
339 ]
340 }
kjellanderfd5b4e92016-06-13 12:08:33 -0700341}
342
hbos74e1a4f2016-09-15 23:33:01 -0700343rtc_source_set("rtc_stats_api") {
344 cflags = []
345 sources = [
346 "stats/rtcstats.h",
347 "stats/rtcstats_objects.h",
348 "stats/rtcstatsreport.h",
349 ]
350
351 deps = [
352 "../base:rtc_base_approved",
353 ]
354}
355
aleloi201dfe92016-10-20 05:06:39 -0700356rtc_source_set("audio_mixer_api") {
357 sources = [
358 "audio/audio_mixer.h",
359 ]
360
361 deps = [
362 "../base:rtc_base_approved",
363 ]
364}
365
aleloia8eb7562016-11-28 07:02:13 -0800366rtc_source_set("transport_api") {
367 sources = [
368 "call/transport.h",
369 ]
370}
nisseb2250e52016-12-02 04:01:14 -0800371
372rtc_source_set("video_frame_api") {
373 sources = [
374 "video/video_rotation.h",
375 ]
376
377 deps = [
378 "../base:rtc_base_approved",
379 ]
380
381 # TODO(nisse): This logic is duplicated in multiple places.
382 # Define in a single place.
383 if (rtc_build_libyuv) {
384 deps += [ "$rtc_libyuv_dir" ]
385 public_deps = [
386 "$rtc_libyuv_dir",
387 ]
388 } else {
389 # Need to add a directory normally exported by libyuv.
390 include_dirs = [ "$rtc_libyuv_dir/include" ]
391 }
392}
393
kjellanderfd5b4e92016-06-13 12:08:33 -0700394if (rtc_include_tests) {
395 config("peerconnection_unittests_config") {
396 # The warnings below are enabled by default. Since GN orders compiler flags
397 # for a target before flags from configs, the only way to disable such
398 # warnings is by having them in a separate config, loaded from the target.
399 # TODO(kjellander): Make the code compile without disabling these flags.
400 # See https://bugs.webrtc.org/3307.
401 if (is_clang && is_win) {
ehmaldonadod02fe4b2016-08-26 13:31:24 -0700402 cflags = [
403 # See https://bugs.chromium.org/p/webrtc/issues/detail?id=6267
404 # for -Wno-sign-compare
405 "-Wno-sign-compare",
406 "-Wno-unused-function",
407 ]
kjellanderfd5b4e92016-06-13 12:08:33 -0700408 }
409
410 if (!is_win) {
411 cflags = [ "-Wno-sign-compare" ]
kjellanderfd5b4e92016-06-13 12:08:33 -0700412 }
413 }
414
ehmaldonado38a21322016-09-02 04:10:34 -0700415 rtc_test("peerconnection_unittests") {
kjellanderfd5b4e92016-06-13 12:08:33 -0700416 testonly = true
417 sources = [
418 "datachannel_unittest.cc",
419 "dtmfsender_unittest.cc",
420 "fakemetricsobserver.cc",
421 "fakemetricsobserver.h",
422 "jsepsessiondescription_unittest.cc",
423 "localaudiosource_unittest.cc",
424 "mediaconstraintsinterface_unittest.cc",
425 "mediastream_unittest.cc",
426 "peerconnection_unittest.cc",
427 "peerconnectionendtoend_unittest.cc",
428 "peerconnectionfactory_unittest.cc",
429 "peerconnectioninterface_unittest.cc",
430 "proxy_unittest.cc",
hbosdb346a72016-11-29 01:57:01 -0800431 "rtcstats_integrationtest.cc",
hbos74e1a4f2016-09-15 23:33:01 -0700432 "rtcstatscollector_unittest.cc",
kjellanderfd5b4e92016-06-13 12:08:33 -0700433 "rtpsenderreceiver_unittest.cc",
ossud4d2f602016-11-08 02:05:32 -0800434 "sctputils_unittest.cc",
kjellanderfd5b4e92016-06-13 12:08:33 -0700435 "statscollector_unittest.cc",
436 "test/fakeaudiocapturemodule.cc",
437 "test/fakeaudiocapturemodule.h",
438 "test/fakeaudiocapturemodule_unittest.cc",
439 "test/fakeconstraints.h",
440 "test/fakedatachannelprovider.h",
441 "test/fakeperiodicvideocapturer.h",
442 "test/fakertccertificategenerator.h",
443 "test/fakevideotrackrenderer.h",
hbosd565b732016-08-30 14:04:35 -0700444 "test/mock_datachannel.h",
hbosb24b1ce2016-08-16 01:19:43 -0700445 "test/mock_peerconnection.h",
446 "test/mock_webrtcsession.h",
kjellanderfd5b4e92016-06-13 12:08:33 -0700447 "test/mockpeerconnectionobservers.h",
448 "test/peerconnectiontestwrapper.cc",
449 "test/peerconnectiontestwrapper.h",
hbosdb346a72016-11-29 01:57:01 -0800450 "test/rtcstatsobtainer.h",
kjellanderfd5b4e92016-06-13 12:08:33 -0700451 "test/testsdpstrings.h",
452 "videocapturertracksource_unittest.cc",
453 "videotrack_unittest.cc",
454 "webrtcsdp_unittest.cc",
455 "webrtcsession_unittest.cc",
456 ]
457
458 defines = [ "HAVE_SCTP" ]
459
ehmaldonado7a2ce0b2016-09-05 01:35:44 -0700460 configs += [ ":peerconnection_unittests_config" ]
kjellanderfd5b4e92016-06-13 12:08:33 -0700461
kjellandere40a7ee2016-10-16 23:56:12 -0700462 if (!build_with_chromium && is_clang) {
kjellanderfd5b4e92016-06-13 12:08:33 -0700463 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
ehmaldonado38a21322016-09-02 04:10:34 -0700464 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
kjellanderfd5b4e92016-06-13 12:08:33 -0700465 }
466
467 # TODO(jschuh): Bug 1348: fix this warning.
468 configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
469
470 if (is_win) {
471 cflags = [
472 "/wd4245", # conversion from int to size_t, signed/unsigned mismatch.
473 "/wd4389", # signed/unsigned mismatch.
474 ]
475 }
476
477 if (rtc_use_quic) {
478 public_deps = [
479 "//third_party/libquic",
480 ]
481 sources += [
482 "quicdatachannel_unittest.cc",
483 "quicdatatransport_unittest.cc",
484 ]
485 }
486
487 deps = []
488 if (is_android) {
489 sources += [
490 "test/androidtestinitializer.cc",
491 "test/androidtestinitializer.h",
492 ]
493 deps += [
kjellanderb37c45c2016-08-23 12:55:40 -0700494 ":libjingle_peerconnection_java",
kjellanderfd5b4e92016-06-13 12:08:33 -0700495 ":libjingle_peerconnection_jni",
496 "//testing/android/native_test:native_test_support",
497 ]
498 }
499
500 deps += [
501 ":libjingle_peerconnection",
502 "..:webrtc_common",
503 "../base:rtc_base_tests_utils",
504 "../media:rtc_unittest_main",
505 "../pc:rtc_pc",
506 "../system_wrappers:metrics_default",
507 "//testing/gmock",
508 ]
509
510 if (is_android) {
511 deps += [ "//testing/android/native_test:native_test_support" ]
sakal714dd4e2016-08-15 02:29:11 -0700512
513 shard_timeout = 900
kjellanderfd5b4e92016-06-13 12:08:33 -0700514 }
515 }
ehmaldonado3651d8f2016-08-10 03:10:48 -0700516
aleloi17338d42016-11-22 06:02:06 -0800517 rtc_source_set("mock_audio_mixer") {
518 testonly = true
519 sources = [
520 "test/mock_audio_mixer.h",
521 ]
522
523 public_deps = [
524 ":audio_mixer_api",
525 ]
526
527 deps = [
528 "//testing/gmock",
529 ]
530 }
kjellanderfd5b4e92016-06-13 12:08:33 -0700531}