summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/libjingle/source/talk/libjingle.scons
blob: 87b43f50ed003a049a6e641a3e0b5be183b2ab5c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
import talk
Import("env")

talk.Library(env, name = "expat",
             cppdefines = [
               "XML_STATIC",
             ],
             srcs = [
               "third_party/expat-2.0.1/lib/xmlparse.c",
               "third_party/expat-2.0.1/lib/xmlrole.c",
               "third_party/expat-2.0.1/lib/xmltok.c",
             ],
             includedirs = [
               "third_party/expat-2.0.1/lib",
             ],
             win_cppdefines = [
               "COMPILED_FROM_DSP",
             ],
             posix_cppdefines = [
               "HAVE_EXPAT_CONFIG_H",
             ],
)
talk.Library(env, name = "gunit",
             srcs = [
               "testing/gtest/src/gtest-all.cc",
             ],
             includedirs = [
               "testing/gtest/include",
               "third_party/expat-2.0.1/lib",
               "third_party/srtp",
               "testing/gtest",
             ],
             cppdefines = [
               "EXPAT_RELATIVE_PATH",
               "GTEST_RELATIVE_PATH",
               "SRTP_RELATIVE_PATH",
             ],
)
talk.Library(env, name = "srtp",
             srcs = [
               "third_party/srtp/crypto/cipher/aes.c",
               "third_party/srtp/crypto/cipher/aes_cbc.c",
               "third_party/srtp/crypto/cipher/aes_icm.c",
               "third_party/srtp/crypto/cipher/cipher.c",
               "third_party/srtp/crypto/cipher/null_cipher.c",
               "third_party/srtp/crypto/hash/auth.c",
               "third_party/srtp/crypto/hash/hmac.c",
               "third_party/srtp/crypto/hash/null_auth.c",
               "third_party/srtp/crypto/hash/sha1.c",
               "third_party/srtp/crypto/replay/rdb.c",
               "third_party/srtp/crypto/replay/rdbx.c",
               "third_party/srtp/crypto/replay/ut_sim.c",
               "third_party/srtp/crypto/math/datatypes.c",
               "third_party/srtp/crypto/math/stat.c",
               "third_party/srtp/crypto/kernel/alloc.c",
               "third_party/srtp/crypto/kernel/crypto_kernel.c",
               "third_party/srtp/crypto/kernel/err.c",
               "third_party/srtp/crypto/kernel/key.c",
               "third_party/srtp/crypto/rng/ctr_prng.c",
               "third_party/srtp/crypto/rng/rand_source.c",
               "third_party/srtp/srtp/ekt.c",
               "third_party/srtp/srtp/srtp.c",
             ],
             includedirs = [
               "third_party/srtp/include",
               "third_party/srtp/crypto/include",
             ],
             win_ccflags = [
               "/wd4701",
               "/wd4702",
             ],
)
# Set up the SSL/TLS includes
if 'NSS_BUILD_PLATFORM' in env['ENV']:
             SSL_INCLUDES = [
               "third_party/mozilla/dist/public/nss",
               "third_party/mozilla/dist/" + env['ENV']['NSS_BUILD_PLATFORM']+ "/include"
             ]
             SSL_LIBS = [
               "ssl3",
               "nss3",
               "nssutil3",
               "plc4",
               "plds4",
               "nspr4",
             ]
else:
             SSL_INCLUDES = ["third_party/openssl/include"]
             SSL_LIBS = ["crypto", "ssl"]

talk.Library(env, name = "jingle",
             lin_packages = [
               "x11",
               "xcomposite",
               "xrender",
             ],
             lin_srcs = [
               "base/latebindingsymboltable.cc",
               "base/latebindingsymboltable.h.def",
               "base/latebindingsymboltable.cc.def",
               "base/linux.cc",
               "base/linuxfdwalk.c",
               "base/linuxwindowpicker.cc",
               "media/devices/libudevsymboltable.cc",
               "media/devices/linuxdeviceinfo.cc",
               "media/devices/linuxdevicemanager.cc",
               "media/devices/v4llookup.cc",
               "sound/alsasoundsystem.cc",
               "sound/alsasymboltable.cc",
               "sound/linuxsoundsystem.cc",
               "sound/pulseaudiosoundsystem.cc",
               "sound/pulseaudiosymboltable.cc",
             ],
             dependent_target_settings = {
               'lin_libs': [
                 "dl",
                 "pthread",
                 "rt",
                 "gthread-2.0",
               ],
               'mac_libs': SSL_LIBS,
               'win_libs': [
                 "winmm.lib",
               ],
             },
             mac_srcs = [
               "base/macasyncsocket.cc",
               "base/maccocoasocketserver.mm",
               "base/maccocoathreadhelper.mm",
               "base/macconversion.cc",
               "base/macsocketserver.cc",
               "base/macutils.cc",
               "base/macwindowpicker.cc",
               "base/scoped_autorelease_pool.mm",
               "media/devices/carbonvideorenderer.cc",
               "media/devices/macdeviceinfo.cc",
               "media/devices/macdevicemanager.cc",
               "media/devices/macdevicemanagermm.mm",
             ],
             posix_srcs = [
               "base/unixfilesystem.cc",
               "base/posix.cc",
             ],
             linphone_srcs = [
               "media/other/linphonemediaengine.cc",
             ],
             cppdefines = [
               "FEATURE_ENABLE_VOICEMAIL",
               "EXPAT_RELATIVE_PATH",
               "GTEST_RELATIVE_PATH",
               "SRTP_RELATIVE_PATH",
               "XML_STATIC",
             ],
             srcs = [
               "base/asyncfile.cc",
               "base/asynchttprequest.cc",
               "base/asyncsocket.cc",
               "base/asynctcpsocket.cc",
               "base/asyncudpsocket.cc",
               "base/autodetectproxy.cc",
               "base/bandwidthsmoother.cc",
               "base/base64.cc",
               "base/basicpacketsocketfactory.cc",
               "base/bytebuffer.cc",
               "base/checks.cc",
               "base/common.cc",
               "base/cpumonitor.cc",
               "base/crc32.cc",
               "base/diskcache.cc",
               "base/event.cc",
               "base/filelock.cc",
               "base/fileutils.cc",
               "base/firewallsocketserver.cc",
               "base/flags.cc",
               "base/helpers.cc",
               "base/host.cc",
               "base/httpbase.cc",
               "base/httpclient.cc",
               "base/httpcommon.cc",
               "base/httprequest.cc",
               "base/httpserver.cc",
               "base/ipaddress.cc",
               "base/logging.cc",
               "base/md5.cc",
               "base/messagedigest.cc",
               "base/messagehandler.cc",
               "base/messagequeue.cc",
               "base/multipart.cc",
               "base/natserver.cc",
               "base/natsocketfactory.cc",
               "base/nattypes.cc",
               "base/nethelpers.cc",
               "base/network.cc",
               "base/nssidentity.cc",
               "base/nssstreamadapter.cc",
               "base/openssladapter.cc",
               "base/openssldigest.cc",
               "base/opensslidentity.cc",
               "base/opensslstreamadapter.cc",
               "base/optionsfile.cc",
               "base/pathutils.cc",
               "base/physicalsocketserver.cc",
               "base/profiler.cc",
               "base/proxydetect.cc",
               "base/proxyinfo.cc",
               "base/proxyserver.cc",
               "base/ratelimiter.cc",
               "base/ratetracker.cc",
               "base/sha1.cc",
               "base/sharedexclusivelock.cc",
               "base/signalthread.cc",
               "base/socketadapters.cc",
               "base/socketaddress.cc",
               "base/socketaddresspair.cc",
               "base/socketpool.cc",
               "base/socketstream.cc",
               "base/ssladapter.cc",
               "base/sslsocketfactory.cc",
               "base/sslidentity.cc",
               "base/sslstreamadapter.cc",
               "base/sslstreamadapterhelper.cc",
               "base/stream.cc",
               "base/stringencode.cc",
               "base/stringutils.cc",
               "base/systeminfo.cc",
               "base/task.cc",
               "base/taskparent.cc",
               "base/taskrunner.cc",
               "base/testclient.cc",
               "base/thread.cc",
               "base/timeutils.cc",
               "base/timing.cc",
               "base/transformadapter.cc",
               "base/urlencode.cc",
               "base/versionparsing.cc",
               "base/virtualsocketserver.cc",
               "base/worker.cc",
               "p2p/base/constants.cc",
               "p2p/base/dtlstransportchannel.cc",
               "p2p/base/p2ptransport.cc",
               "p2p/base/p2ptransportchannel.cc",
               "p2p/base/parsing.cc",
               "p2p/base/port.cc",
               "p2p/base/portallocator.cc",
               "p2p/base/portallocatorsessionproxy.cc",
               "p2p/base/portproxy.cc",
               "p2p/base/pseudotcp.cc",
               "p2p/base/relayport.cc",
               "p2p/base/relayserver.cc",
               "p2p/base/rawtransport.cc",
               "p2p/base/rawtransportchannel.cc",
               "p2p/base/session.cc",
               "p2p/base/sessiondescription.cc",
               "p2p/base/sessionmanager.cc",
               "p2p/base/sessionmessages.cc",
               "p2p/base/stun.cc",
               "p2p/base/stunport.cc",
               "p2p/base/stunrequest.cc",
               "p2p/base/stunserver.cc",
               "p2p/base/tcpport.cc",
               "p2p/base/transport.cc",
               "p2p/base/transportchannel.cc",
               "p2p/base/transportchannelproxy.cc",
               "p2p/base/transportdescriptionfactory.cc",
               "p2p/base/turnport.cc",
               "p2p/base/turnserver.cc",
               "p2p/client/basicportallocator.cc",
               "p2p/client/connectivitychecker.cc",
               "p2p/client/httpportallocator.cc",
               "p2p/client/socketmonitor.cc",
               "session/tunnel/pseudotcpchannel.cc",
               "session/tunnel/tunnelsessionclient.cc",
               "session/tunnel/securetunnelsessionclient.cc",
               "media/base/capturemanager.cc",
               "media/base/capturerenderadapter.cc",
               "media/base/codec.cc",
               "media/base/constants.cc",
               "media/base/cpuid.cc",
               "media/base/filemediaengine.cc",
               "media/base/hybridvideoengine.cc",
               "media/base/mediaengine.cc",
               "media/base/rtpdataengine.cc",
               "media/base/rtpdump.cc",
               "media/base/rtputils.cc",
               "media/base/streamparams.cc",
               "media/base/videoadapter.cc",
               "media/base/videocapturer.cc",
               "media/base/mutedvideocapturer.cc",
               "media/base/videocommon.cc",
               "media/base/videoframe.cc",
               "media/devices/devicemanager.cc",
               "media/devices/filevideocapturer.cc",
               "media/sctp/sctputils.cc",
               "session/media/audiomonitor.cc",
               "session/media/call.cc",
               "session/media/channel.cc",
               "session/media/channelmanager.cc",
               "session/media/currentspeakermonitor.cc",
               "session/media/mediamessages.cc",
               "session/media/mediamonitor.cc",
               "session/media/mediarecorder.cc",
               "session/media/mediasession.cc",
               "session/media/mediasessionclient.cc",
               "session/media/rtcpmuxfilter.cc",
               "session/media/rtcpmuxfilter.cc",
               "session/media/soundclip.cc",
               "session/media/srtpfilter.cc",
               "session/media/ssrcmuxfilter.cc",
               "session/media/typingmonitor.cc",
               "sound/nullsoundsystem.cc",
               "sound/nullsoundsystemfactory.cc",
               "sound/platformsoundsystem.cc",
               "sound/platformsoundsystemfactory.cc",
               "sound/soundsysteminterface.cc",
               "sound/soundsystemproxy.cc",
               "xmllite/qname.cc",
               "xmllite/xmlbuilder.cc",
               "xmllite/xmlconstants.cc",
               "xmllite/xmlelement.cc",
               "xmllite/xmlnsstack.cc",
               "xmllite/xmlparser.cc",
               "xmllite/xmlprinter.cc",
               "xmpp/chatroommoduleimpl.cc",
               "xmpp/constants.cc",
               "xmpp/discoitemsquerytask.cc",
               "xmpp/hangoutpubsubclient.cc",
               "xmpp/iqtask.cc",
               "xmpp/jid.cc",
               "xmpp/jingleinfotask.cc",
               "xmpp/moduleimpl.cc",
               "xmpp/mucroomconfigtask.cc",
               "xmpp/mucroomdiscoverytask.cc",
               "xmpp/mucroomlookuptask.cc",
               "xmpp/mucroomuniquehangoutidtask.cc",
               "xmpp/pingtask.cc",
               "xmpp/presenceouttask.cc",
               "xmpp/presencereceivetask.cc",
               "xmpp/presencestatus.cc",
               "xmpp/pubsubclient.cc",
               "xmpp/pubsub_task.cc",
               "xmpp/pubsubtasks.cc",
               "xmpp/receivetask.cc",
               "xmpp/rostermoduleimpl.cc",
               "xmpp/saslmechanism.cc",
               "xmpp/xmppclient.cc",
               "xmpp/xmppengineimpl.cc",
               "xmpp/xmppengineimpl_iq.cc",
               "xmpp/xmpplogintask.cc",
               "xmpp/xmppstanzaparser.cc",
               "xmpp/xmpptask.cc",
               "xmpp/xmppauth.cc",
               "xmpp/xmpppump.cc",
               "xmpp/xmppsocket.cc",
               "xmpp/xmppthread.cc",
             ],
             includedirs = [
               "third_party/libudev",
               "third_party/expat-2.0.1/lib",
               "testing/gtest/include",
               "third_party/srtp/include",
               "third_party/srtp/crypto/include",
             ] + SSL_INCLUDES,
             win_srcs = [
               "base/diskcache_win32.cc",
               "base/schanneladapter.cc",
               "base/win32.cc",
               "base/win32regkey.cc",
               "base/win32filesystem.cc",
               "base/win32securityerrors.cc",
               "base/win32socketserver.cc",
               "base/win32socketinit.cc",
               "base/win32window.cc",
               "base/win32windowpicker.cc",
               "base/winfirewall.cc",
               "base/winping.cc",
               "media/devices/gdivideorenderer.cc",
               "media/devices/win32deviceinfo.cc",
               "media/devices/win32devicemanager.cc",
             ],
             mac_ccflags = [
               "-Wno-deprecated-declarations",
             ],
             extra_srcs = [
               "media/devices/dummydevicemanager.cc",
               "base/dbus.cc",
               "base/libdbusglibsymboltable.cc",
               "base/json.cc",
               "base/natserver_main.cc",
             ],
)
talk.Library(env, name = "videorenderer",
             lin_srcs = [
               "media/devices/gtkvideorenderer.cc",
             ],
             lin_packages = [
               "gobject-2.0",
               "gthread-2.0",
               "gtk+-2.0",
             ],
)
talk.Library(env, name = "unittest_main",
             libs = [
               "gunit",
             ],
             srcs = [
               "base/unittest_main.cc",
             ],
             includedirs = [
               "testing/gtest/include",
               "third_party/expat-2.0.1/lib",
               "third_party/srtp",
               "testing/gtest",
             ],
             cppdefines = [
               "EXPAT_RELATIVE_PATH",
               "GTEST_RELATIVE_PATH",
               "SRTP_RELATIVE_PATH",
             ],
)
talk.App(env, name = "login",
         libs = [
           "jingle",
           "expat",
         ],
         srcs = [
           "examples/login/login_main.cc",
         ],
         posix_libs = SSL_LIBS,
         lin_libs = [
           "videorenderer",
         ],
)
talk.App(env, name = "chat",
         libs = [
           "jingle",
           "expat",
         ],
         srcs = [
           "examples/chat/chatapp.cc",
           "examples/chat/chat_main.cc",
           "examples/chat/consoletask.cc",
           "examples/chat/textchatreceivetask.cc",
           "examples/chat/textchatsendtask.cc",
         ],
         posix_libs = SSL_LIBS,
)
talk.App(env, name = "call",
         mac_frameworks = [
           "AudioToolbox",
           "AudioUnit",
           "Cocoa",
           "CoreAudio",
           "CoreFoundation",
           "IOKit",
           "QTKit",
           "QuickTime",
         ],
         win_libs = [
           "d3d9.lib",
           "gdi32.lib",
           "powrprof.lib",
           "strmiids.lib",
           "winmm.lib",
         ],
         posix_libs = SSL_LIBS,
         lin_libs = [
           "videorenderer",
         ],
         srcs = [
           "examples/call/call_main.cc",
           "examples/call/callclient.cc",
           "examples/call/console.cc",
           "examples/call/friendinvitesendtask.cc",
           "examples/call/mediaenginefactory.cc",
           "examples/call/mucinviterecvtask.cc",
           "examples/call/mucinvitesendtask.cc",
           "examples/call/presencepushtask.cc",
         ],
         libs = [
           "jingle",
           "expat",
           "srtp",
         ],
)
talk.App(env, name = "relayserver",
         libs = [
           "jingle",
         ],
         srcs = [
           "p2p/base/relayserver_main.cc",
         ],
)
talk.App(env, name = "stunserver",
         libs = [
           "jingle",
         ],
         srcs = [
           "p2p/base/stunserver_main.cc",
         ],
)
talk.App(env, name = "turnserver",
         lin_libs = [
           "crypto",
           "ssl",
         ],
         srcs = [
           "p2p/base/turnserver_main.cc",
         ],
         libs = [
           "jingle",
         ],
)
talk.Unittest(env, name = "base",
              lin_srcs = [
                "base/latebindingsymboltable_unittest.cc",
                "base/linux_unittest.cc",
                "base/linuxfdwalk_unittest.cc",
              ],
              mac_srcs = [
                "base/macsocketserver_unittest.cc",
                "base/macutils_unittest.cc",
                "base/macwindowpicker_unittest.cc",
              ],
              posix_srcs = [
                "base/sslidentity_unittest.cc",
                "base/sslstreamadapter_unittest.cc",
              ],
              cppdefines = [
                "EXPAT_RELATIVE_PATH",
                "GTEST_RELATIVE_PATH",
                "SRTP_RELATIVE_PATH",
              ],
              srcs = [
                "base/asynchttprequest_unittest.cc",
                "base/atomicops_unittest.cc",
                "base/autodetectproxy_unittest.cc",
                "base/bandwidthsmoother_unittest.cc",
                "base/base64_unittest.cc",
                "base/basictypes_unittest.cc",
                "base/bind_unittest.cc",
                "base/buffer_unittest.cc",
                "base/bytebuffer_unittest.cc",
                "base/byteorder_unittest.cc",
                "base/cpumonitor_unittest.cc",
                "base/crc32_unittest.cc",
                "base/event_unittest.cc",
                "base/filelock_unittest.cc",
                "base/fileutils_unittest.cc",
                "base/helpers_unittest.cc",
                "base/host_unittest.cc",
                "base/httpbase_unittest.cc",
                "base/httpcommon_unittest.cc",
                "base/httpserver_unittest.cc",
                "base/ipaddress_unittest.cc",
                "base/logging_unittest.cc",
                "base/md5digest_unittest.cc",
                "base/messagedigest_unittest.cc",
                "base/messagequeue_unittest.cc",
                "base/multipart_unittest.cc",
                "base/nat_unittest.cc",
                "base/network_unittest.cc",
                "base/nullsocketserver_unittest.cc",
                "base/optionsfile_unittest.cc",
                "base/pathutils_unittest.cc",
                "base/physicalsocketserver_unittest.cc",
                "base/profiler_unittest.cc",
                "base/proxy_unittest.cc",
                "base/proxydetect_unittest.cc",
                "base/ratelimiter_unittest.cc",
                "base/ratetracker_unittest.cc",
                "base/referencecountedsingletonfactory_unittest.cc",
                "base/rollingaccumulator_unittest.cc",
                "base/sha1digest_unittest.cc",
                "base/sharedexclusivelock_unittest.cc",
                "base/signalthread_unittest.cc",
                "base/sigslot_unittest.cc",
                "base/socket_unittest.cc",
                "base/socketaddress_unittest.cc",
                "base/stream_unittest.cc",
                "base/stringencode_unittest.cc",
                "base/stringutils_unittest.cc",
                "base/systeminfo_unittest.cc",
                "base/task_unittest.cc",
                "base/testclient_unittest.cc",
                "base/thread_unittest.cc",
                "base/timeutils_unittest.cc",
                "base/urlencode_unittest.cc",
                "base/versionparsing_unittest.cc",
                "base/virtualsocket_unittest.cc",
                "base/windowpicker_unittest.cc",
              ],
              includedirs = [
                "testing/gtest/include",
                "third_party/expat-2.0.1/lib",
                "third_party/srtp",
                "testing/gtest",
              ],
              win_srcs = [
                "base/win32_unittest.cc",
                "base/win32regkey_unittest.cc",
                "base/win32socketserver_unittest.cc",
                "base/win32toolhelp_unittest.cc",
                "base/win32window_unittest.cc",
                "base/win32windowpicker_unittest.cc",
                "base/winfirewall_unittest.cc",
              ],
              libs = [
                "jingle",
              ],
              extra_srcs = [
                "base/dbus_unittest.cc",
                "base/json_unittest.cc",
                "base/linuxwindowpicker_unittest.cc",
              ],
)
talk.Unittest(env, name = "p2p",
              mac_FRAMEWORKS = [
                "Foundation",
                "IOKit",
                "QTKit",
              ],
              mac_libs = SSL_LIBS,
              cppdefines = [
                "EXPAT_RELATIVE_PATH",
                "GTEST_RELATIVE_PATH",
                "SRTP_RELATIVE_PATH",
              ],
              srcs = [
                "p2p/base/dtlstransportchannel_unittest.cc",
                "p2p/base/p2ptransportchannel_unittest.cc",
                "p2p/base/port_unittest.cc",
                "p2p/base/portallocatorsessionproxy_unittest.cc",
                "p2p/base/pseudotcp_unittest.cc",
                "p2p/base/relayport_unittest.cc",
                "p2p/base/relayserver_unittest.cc",
                "p2p/base/session_unittest.cc",
                "p2p/base/stun_unittest.cc",
                "p2p/base/stunport_unittest.cc",
                "p2p/base/stunrequest_unittest.cc",
                "p2p/base/stunserver_unittest.cc",
                "p2p/base/transport_unittest.cc",
                "p2p/base/transportdescriptionfactory_unittest.cc",
                "p2p/base/turnport_unittest.cc",
                "p2p/client/connectivitychecker_unittest.cc",
                "p2p/client/portallocator_unittest.cc",
              ],
              includedirs = [
                "testing/gtest/include",
                "third_party/expat-2.0.1/lib",
                "third_party/srtp",
                "testing/gtest",
              ],
              libs = [
                "jingle",
                "expat",
              ],
)
talk.Unittest(env, name = "media",
              win_libs = [
                "winmm.lib",
                "strmiids",
              ],
              cppdefines = [
                "EXPAT_RELATIVE_PATH",
                "GTEST_RELATIVE_PATH",
                "SRTP_RELATIVE_PATH",
              ],
              srcs = [
                "media/base/capturemanager_unittest.cc",
                "media/base/codec_unittest.cc",
                "media/base/filemediaengine_unittest.cc",
                "media/base/rtpdataengine_unittest.cc",
                "media/base/rtpdump_unittest.cc",
                "media/base/rtputils_unittest.cc",
                "media/base/testutils.cc",
                "media/base/videocapturer_unittest.cc",
                "media/base/videocommon_unittest.cc",
                "media/devices/devicemanager_unittest.cc",
                "media/devices/filevideocapturer_unittest.cc",
                "media/sctp/sctputils_unittest.cc",
                "session/media/channel_unittest.cc",
                "session/media/channelmanager_unittest.cc",
                "session/media/currentspeakermonitor_unittest.cc",
                "session/media/mediarecorder_unittest.cc",
                "session/media/mediamessages_unittest.cc",
                "session/media/mediasession_unittest.cc",
                "session/media/mediasessionclient_unittest.cc",
                "session/media/rtcpmuxfilter_unittest.cc",
                "session/media/srtpfilter_unittest.cc",
                "session/media/ssrcmuxfilter_unittest.cc",
              ],
              includedirs = [
                "testing/gtest/include",
                "third_party/expat-2.0.1/lib",
                "third_party/srtp",
                "testing/gtest",
              ],
              libs = [
                "jingle",
                "expat",
                "srtp",
              ],
              extra_srcs = [
                "media/devices/dummydevicemanager_unittest.cc",
              ],
)
talk.Unittest(env, name = "sound",
              libs = [
                "jingle",
              ],
              srcs = [
                "sound/automaticallychosensoundsystem_unittest.cc",
              ],
              mac_libs = SSL_LIBS,

              includedirs = [
                "testing/gtest/include",
                "third_party/expat-2.0.1/lib",
                "third_party/srtp",
                "testing/gtest",
              ],
              cppdefines = [
                "EXPAT_RELATIVE_PATH",
                "GTEST_RELATIVE_PATH",
                "SRTP_RELATIVE_PATH",
              ],
)
talk.Unittest(env, name = "xmllite",
              libs = [
                "jingle",
                "expat",
              ],
              srcs = [
                "xmllite/qname_unittest.cc",
                "xmllite/xmlbuilder_unittest.cc",
                "xmllite/xmlelement_unittest.cc",
                "xmllite/xmlnsstack_unittest.cc",
                "xmllite/xmlparser_unittest.cc",
                "xmllite/xmlprinter_unittest.cc",
              ],
              mac_libs = SSL_LIBS,
              includedirs = [
                "testing/gtest/include",
                "third_party/expat-2.0.1/lib",
                "third_party/srtp",
                "testing/gtest",
              ],
              cppdefines = [
                "EXPAT_RELATIVE_PATH",
                "GTEST_RELATIVE_PATH",
                "SRTP_RELATIVE_PATH",
              ],
)
talk.Unittest(env, name = "xmpp",
              mac_libs = SSL_LIBS,
              cppdefines = [
                "EXPAT_RELATIVE_PATH",
                "GTEST_RELATIVE_PATH",
                "SRTP_RELATIVE_PATH",
              ],
              srcs = [
                "xmpp/hangoutpubsubclient_unittest.cc",
                "xmpp/jid_unittest.cc",
                "xmpp/mucroomconfigtask_unittest.cc",
                "xmpp/mucroomdiscoverytask_unittest.cc",
                "xmpp/mucroomlookuptask_unittest.cc",
                "xmpp/mucroomuniquehangoutidtask_unittest.cc",
                "xmpp/pingtask_unittest.cc",
                "xmpp/pubsubclient_unittest.cc",
                "xmpp/pubsubtasks_unittest.cc",
                "xmpp/util_unittest.cc",
                "xmpp/xmppengine_unittest.cc",
                "xmpp/xmpplogintask_unittest.cc",
                "xmpp/xmppstanzaparser_unittest.cc",
              ],
              includedirs = [
                "testing/gtest/include",
                "third_party/expat-2.0.1/lib",
                "third_party/srtp",
                "testing/gtest",
              ],
              libs = [
                "jingle",
                "expat",
              ],
              extra_srcs = [
                "xmpp/chatroommodule_unittest.cc",
                "xmpp/rostermodule_unittest.cc",
              ],
)