summaryrefslogtreecommitdiffstats
path: root/third_party/libjingle/libjingle.gyp
blob: a6e52fc6a594cf460fabac92863555f433e9503d (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
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
# Copyright (c) 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

{
  'includes': [
    '../../build/win_precompile.gypi',
  ],
  'variables': {
    'enabled_libjingle_device_manager%': 0,
    'libjingle_source%': "source",
    'libjingle_peerconnection_additional_deps%': [],
  },
  'target_defaults': {
    'defines': [
      'EXPAT_RELATIVE_PATH',
      'FEATURE_ENABLE_SSL',
      'GTEST_RELATIVE_PATH',
      'HAVE_SRTP',
      'HAVE_WEBRTC_VIDEO',
      'HAVE_WEBRTC_VOICE',
      'JSONCPP_RELATIVE_PATH',
      'LOGGING_INSIDE_LIBJINGLE',
      'NO_MAIN_THREAD_WRAPPING',
      'NO_SOUND_SYSTEM',
      'SRTP_RELATIVE_PATH',
      # TODO(ronghuawu): Remove this once libjingle is updated to use the new
      # webrtc.
      'USE_WEBRTC_DEV_BRANCH',
    ],
    'configurations': {
      'Debug': {
        'defines': [
          # TODO(sergeyu): Fix libjingle to use NDEBUG instead of
          # _DEBUG and remove this define. See below as well.
          '_DEBUG',
        ],
      }
    },
    'include_dirs': [
      './overrides',
      './<(libjingle_source)',
      '../../testing/gtest/include',
      '../../third_party',
      '../../third_party/libyuv/include',
      '../../third_party/webrtc',
    ],
    'dependencies': [
      '<(DEPTH)/base/base.gyp:base',
      '<(DEPTH)/net/net.gyp:net',
      '<(DEPTH)/third_party/expat/expat.gyp:expat',
    ],
    'export_dependent_settings': [
      '<(DEPTH)/third_party/expat/expat.gyp:expat',
    ],
    'direct_dependent_settings': {
      'include_dirs': [
        './overrides',
        './<(libjingle_source)',
        '../../testing/gtest/include',
        '../../third_party',
        '../../third_party/webrtc',
      ],
      'defines': [
        'FEATURE_ENABLE_SSL',
        'FEATURE_ENABLE_VOICEMAIL',
        'EXPAT_RELATIVE_PATH',
        'GTEST_RELATIVE_PATH',
        'JSONCPP_RELATIVE_PATH',
        'NO_MAIN_THREAD_WRAPPING',
        'NO_SOUND_SYSTEM',
      ],
      'conditions': [
        ['OS=="win"', {
          'link_settings': {
            'libraries': [
              '-lsecur32.lib',
              '-lcrypt32.lib',
              '-liphlpapi.lib',
            ],
          },
        }],
        ['OS=="win"', {
          'include_dirs': [
            '../third_party/platformsdk_win7/files/Include',
          ],
          'defines': [
              '_CRT_SECURE_NO_WARNINGS',  # Suppres warnings about _vsnprinf
          ],
          # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
          'msvs_disabled_warnings': [ 4267 ],
        }],
        ['OS=="linux"', {
          'defines': [
            'LINUX',
          ],
        }],
        ['OS=="mac"', {
          'defines': [
            'OSX',
          ],
        }],
        ['OS=="android"', {
          'defines': [
            'ANDROID',
          ],
        }],
        ['os_posix == 1', {
          'defines': [
            'POSIX',
          ],
        }],
        ['os_bsd==1', {
          'defines': [
            'BSD',
          ],
        }],
        ['OS=="openbsd"', {
          'defines': [
            'OPENBSD',
          ],
        }],
        ['OS=="freebsd"', {
          'defines': [
            'FREEBSD',
          ],
        }],
      ],
    },
    'all_dependent_settings': {
      'configurations': {
        'Debug': {
          'defines': [
            # TODO(sergeyu): Fix libjingle to use NDEBUG instead of
            # _DEBUG and remove this define. See above as well.
            '_DEBUG',
          ],
        }
      },
    },
    'conditions': [
      ['use_openssl==1', {
        'defines': [
          'SSL_USE_OPENSSL',
          'HAVE_OPENSSL_SSL_H',
        ],
        'dependencies': [
          '../../third_party/openssl/openssl.gyp:openssl',
        ],
      }, {
        'defines': [
          'SSL_USE_NSS',
          'HAVE_NSS_SSL_H',
          'SSL_USE_NSS_RNG',
        ],
        'conditions': [
          ['os_posix == 1 and OS != "mac" and OS != "ios" and OS != "android"', {
            'dependencies': [
              '<(DEPTH)/build/linux/system.gyp:ssl',
            ],
          }],
          ['OS == "mac" or OS == "ios" or OS == "win"', {
            'dependencies': [
              '<(DEPTH)/net/third_party/nss/ssl.gyp:libssl',
              '<(DEPTH)/third_party/nss/nss.gyp:nspr',
              '<(DEPTH)/third_party/nss/nss.gyp:nss',
            ],
          }],
        ],
      }],
      ['OS=="win"', {
        'include_dirs': [
          '../third_party/platformsdk_win7/files/Include',
        ],
        'conditions' : [
          ['target_arch == "ia32"', {
            'defines': [
              '_USE_32BIT_TIME_T',
            ],
          }],
        ],
      }],
      ['clang == 1', {
        'xcode_settings': {
          'WARNING_CFLAGS!': [
            # Don't warn about string->bool used in asserts.
            '-Wstring-conversion',
          ],
        },
        'cflags!': [
          '-Wstring-conversion',
        ],
      }],
      ['OS=="linux"', {
        'defines': [
          'LINUX',
        ],
      }],
      ['OS=="mac"', {
        'defines': [
          'OSX',
        ],
      }],
      ['OS=="ios"', {
        'defines': [
          'IOS',
        ],
      }],
      ['os_posix == 1', {
        'defines': [
          'POSIX',
        ],
      }],
      ['os_bsd==1', {
        'defines': [
          'BSD',
        ],
      }],
      ['OS=="openbsd"', {
        'defines': [
          'OPENBSD',
        ],
      }],
      ['OS=="freebsd"', {
        'defines': [
          'FREEBSD',
        ],
      }],
    ],
  },
  'targets': [
    {
      'target_name': 'libjingle',
      'type': 'static_library',
      'sources': [
        'overrides/talk/base/basictypes.h',
        'overrides/talk/base/constructormagic.h',

        # Overrides logging.h/.cc because libjingle logging should be done to
        # the same place as the chromium logging.
        'overrides/talk/base/logging.cc',
        'overrides/talk/base/logging.h',

        '<(libjingle_source)/talk/base/asyncfile.cc',
        '<(libjingle_source)/talk/base/asyncfile.h',
        '<(libjingle_source)/talk/base/asynchttprequest.cc',
        '<(libjingle_source)/talk/base/asynchttprequest.h',
        '<(libjingle_source)/talk/base/asyncpacketsocket.h',
        '<(libjingle_source)/talk/base/asyncsocket.cc',
        '<(libjingle_source)/talk/base/asyncsocket.h',
        '<(libjingle_source)/talk/base/asynctcpsocket.cc',
        '<(libjingle_source)/talk/base/asynctcpsocket.h',
        '<(libjingle_source)/talk/base/asyncudpsocket.cc',
        '<(libjingle_source)/talk/base/asyncudpsocket.h',
        '<(libjingle_source)/talk/base/autodetectproxy.cc',
        '<(libjingle_source)/talk/base/autodetectproxy.h',
        '<(libjingle_source)/talk/base/base64.cc',
        '<(libjingle_source)/talk/base/base64.h',
        '<(libjingle_source)/talk/base/basicdefs.h',
        '<(libjingle_source)/talk/base/basicpacketsocketfactory.cc',
        '<(libjingle_source)/talk/base/basicpacketsocketfactory.h',
        '<(libjingle_source)/talk/base/bytebuffer.cc',
        '<(libjingle_source)/talk/base/bytebuffer.h',
        '<(libjingle_source)/talk/base/byteorder.h',
        '<(libjingle_source)/talk/base/checks.cc',
        '<(libjingle_source)/talk/base/checks.h',
        '<(libjingle_source)/talk/base/common.cc',
        '<(libjingle_source)/talk/base/common.h',
        '<(libjingle_source)/talk/base/crc32.cc',
        '<(libjingle_source)/talk/base/crc32.h',
        '<(libjingle_source)/talk/base/criticalsection.h',
        '<(libjingle_source)/talk/base/cryptstring.h',
        '<(libjingle_source)/talk/base/diskcache.cc',
        '<(libjingle_source)/talk/base/diskcache.h',
        '<(libjingle_source)/talk/base/event.cc',
        '<(libjingle_source)/talk/base/event.h',
        '<(libjingle_source)/talk/base/fileutils.cc',
        '<(libjingle_source)/talk/base/fileutils.h',
        '<(libjingle_source)/talk/base/firewallsocketserver.cc',
        '<(libjingle_source)/talk/base/firewallsocketserver.h',
        '<(libjingle_source)/talk/base/flags.cc',
        '<(libjingle_source)/talk/base/flags.h',
        '<(libjingle_source)/talk/base/helpers.cc',
        '<(libjingle_source)/talk/base/helpers.h',
        '<(libjingle_source)/talk/base/host.cc',
        '<(libjingle_source)/talk/base/host.h',
        '<(libjingle_source)/talk/base/httpbase.cc',
        '<(libjingle_source)/talk/base/httpbase.h',
        '<(libjingle_source)/talk/base/httpclient.h',
        '<(libjingle_source)/talk/base/httpclient.cc',
        '<(libjingle_source)/talk/base/httpcommon-inl.h',
        '<(libjingle_source)/talk/base/httpcommon.cc',
        '<(libjingle_source)/talk/base/httpcommon.h',
        '<(libjingle_source)/talk/base/httprequest.cc',
        '<(libjingle_source)/talk/base/httprequest.h',
        '<(libjingle_source)/talk/base/ipaddress.cc',
        '<(libjingle_source)/talk/base/ipaddress.h',
        '<(libjingle_source)/talk/base/json.cc',
        '<(libjingle_source)/talk/base/json.h',
        '<(libjingle_source)/talk/base/linked_ptr.h',
        '<(libjingle_source)/talk/base/md5.cc',
        '<(libjingle_source)/talk/base/md5.h',
        '<(libjingle_source)/talk/base/md5digest.h',
        '<(libjingle_source)/talk/base/messagedigest.cc',
        '<(libjingle_source)/talk/base/messagedigest.h',
        '<(libjingle_source)/talk/base/messagehandler.cc',
        '<(libjingle_source)/talk/base/messagehandler.h',
        '<(libjingle_source)/talk/base/messagequeue.cc',
        '<(libjingle_source)/talk/base/messagequeue.h',
        '<(libjingle_source)/talk/base/nethelpers.cc',
        '<(libjingle_source)/talk/base/nethelpers.h',
        '<(libjingle_source)/talk/base/network.cc',
        '<(libjingle_source)/talk/base/network.h',
        '<(libjingle_source)/talk/base/nullsocketserver.h',
        '<(libjingle_source)/talk/base/nssidentity.cc',
        '<(libjingle_source)/talk/base/nssidentity.h',
        '<(libjingle_source)/talk/base/nssstreamadapter.cc',
        '<(libjingle_source)/talk/base/nssstreamadapter.h',
        '<(libjingle_source)/talk/base/pathutils.cc',
        '<(libjingle_source)/talk/base/pathutils.h',
        '<(libjingle_source)/talk/base/physicalsocketserver.cc',
        '<(libjingle_source)/talk/base/physicalsocketserver.h',
        '<(libjingle_source)/talk/base/proxydetect.cc',
        '<(libjingle_source)/talk/base/proxydetect.h',
        '<(libjingle_source)/talk/base/proxyinfo.cc',
        '<(libjingle_source)/talk/base/proxyinfo.h',
        '<(libjingle_source)/talk/base/ratelimiter.cc',
        '<(libjingle_source)/talk/base/ratelimiter.h',
        '<(libjingle_source)/talk/base/ratetracker.cc',
        '<(libjingle_source)/talk/base/ratetracker.h',
        '<(libjingle_source)/talk/base/scoped_ptr.h',
        '<(libjingle_source)/talk/base/sec_buffer.h',
        '<(libjingle_source)/talk/base/sha1.cc',
        '<(libjingle_source)/talk/base/sha1.h',
        '<(libjingle_source)/talk/base/sha1digest.h',
        '<(libjingle_source)/talk/base/signalthread.cc',
        '<(libjingle_source)/talk/base/signalthread.h',
        '<(libjingle_source)/talk/base/sigslot.h',
        '<(libjingle_source)/talk/base/sigslotrepeater.h',
        '<(libjingle_source)/talk/base/socket.h',
        '<(libjingle_source)/talk/base/socketadapters.cc',
        '<(libjingle_source)/talk/base/socketadapters.h',
        '<(libjingle_source)/talk/base/socketaddress.cc',
        '<(libjingle_source)/talk/base/socketaddress.h',
        '<(libjingle_source)/talk/base/socketaddresspair.cc',
        '<(libjingle_source)/talk/base/socketaddresspair.h',
        '<(libjingle_source)/talk/base/socketfactory.h',
        '<(libjingle_source)/talk/base/socketpool.cc',
        '<(libjingle_source)/talk/base/socketpool.h',
        '<(libjingle_source)/talk/base/socketserver.h',
        '<(libjingle_source)/talk/base/socketstream.cc',
        '<(libjingle_source)/talk/base/socketstream.h',
        '<(libjingle_source)/talk/base/ssladapter.cc',
        '<(libjingle_source)/talk/base/ssladapter.h',
        '<(libjingle_source)/talk/base/sslidentity.cc',
        '<(libjingle_source)/talk/base/sslidentity.h',
        '<(libjingle_source)/talk/base/sslsocketfactory.cc',
        '<(libjingle_source)/talk/base/sslsocketfactory.h',
        '<(libjingle_source)/talk/base/sslstreamadapter.cc',
        '<(libjingle_source)/talk/base/sslstreamadapter.h',
        '<(libjingle_source)/talk/base/sslstreamadapterhelper.cc',
        '<(libjingle_source)/talk/base/sslstreamadapterhelper.h',
        '<(libjingle_source)/talk/base/stream.cc',
        '<(libjingle_source)/talk/base/stream.h',
        '<(libjingle_source)/talk/base/stringencode.cc',
        '<(libjingle_source)/talk/base/stringencode.h',
        '<(libjingle_source)/talk/base/stringutils.cc',
        '<(libjingle_source)/talk/base/stringutils.h',
        '<(libjingle_source)/talk/base/task.cc',
        '<(libjingle_source)/talk/base/task.h',
        '<(libjingle_source)/talk/base/taskparent.cc',
        '<(libjingle_source)/talk/base/taskparent.h',
        '<(libjingle_source)/talk/base/taskrunner.cc',
        '<(libjingle_source)/talk/base/taskrunner.h',
        '<(libjingle_source)/talk/base/thread.cc',
        '<(libjingle_source)/talk/base/thread.h',
        '<(libjingle_source)/talk/base/timeutils.cc',
        '<(libjingle_source)/talk/base/timeutils.h',
        '<(libjingle_source)/talk/base/timing.cc',
        '<(libjingle_source)/talk/base/timing.h',
        '<(libjingle_source)/talk/base/urlencode.cc',
        '<(libjingle_source)/talk/base/urlencode.h',
        '<(libjingle_source)/talk/base/worker.cc',
        '<(libjingle_source)/talk/base/worker.h',
        '<(libjingle_source)/talk/xmllite/qname.cc',
        '<(libjingle_source)/talk/xmllite/qname.h',
        '<(libjingle_source)/talk/xmllite/xmlbuilder.cc',
        '<(libjingle_source)/talk/xmllite/xmlbuilder.h',
        '<(libjingle_source)/talk/xmllite/xmlconstants.cc',
        '<(libjingle_source)/talk/xmllite/xmlconstants.h',
        '<(libjingle_source)/talk/xmllite/xmlelement.cc',
        '<(libjingle_source)/talk/xmllite/xmlelement.h',
        '<(libjingle_source)/talk/xmllite/xmlnsstack.cc',
        '<(libjingle_source)/talk/xmllite/xmlnsstack.h',
        '<(libjingle_source)/talk/xmllite/xmlparser.cc',
        '<(libjingle_source)/talk/xmllite/xmlparser.h',
        '<(libjingle_source)/talk/xmllite/xmlprinter.cc',
        '<(libjingle_source)/talk/xmllite/xmlprinter.h',
        '<(libjingle_source)/talk/xmpp/asyncsocket.h',
        '<(libjingle_source)/talk/xmpp/constants.cc',
        '<(libjingle_source)/talk/xmpp/constants.h',
        '<(libjingle_source)/talk/xmpp/jid.cc',
        '<(libjingle_source)/talk/xmpp/jid.h',
        '<(libjingle_source)/talk/xmpp/plainsaslhandler.h',
        '<(libjingle_source)/talk/xmpp/prexmppauth.h',
        '<(libjingle_source)/talk/xmpp/saslcookiemechanism.h',
        '<(libjingle_source)/talk/xmpp/saslhandler.h',
        '<(libjingle_source)/talk/xmpp/saslmechanism.cc',
        '<(libjingle_source)/talk/xmpp/saslmechanism.h',
        '<(libjingle_source)/talk/xmpp/saslplainmechanism.h',
        '<(libjingle_source)/talk/xmpp/xmppclient.cc',
        '<(libjingle_source)/talk/xmpp/xmppclient.h',
        '<(libjingle_source)/talk/xmpp/xmppclientsettings.h',
        '<(libjingle_source)/talk/xmpp/xmppengine.h',
        '<(libjingle_source)/talk/xmpp/xmppengineimpl.cc',
        '<(libjingle_source)/talk/xmpp/xmppengineimpl.h',
        '<(libjingle_source)/talk/xmpp/xmppengineimpl_iq.cc',
        '<(libjingle_source)/talk/xmpp/xmpplogintask.cc',
        '<(libjingle_source)/talk/xmpp/xmpplogintask.h',
        '<(libjingle_source)/talk/xmpp/xmppstanzaparser.cc',
        '<(libjingle_source)/talk/xmpp/xmppstanzaparser.h',
        '<(libjingle_source)/talk/xmpp/xmpptask.cc',
        '<(libjingle_source)/talk/xmpp/xmpptask.h',
      ],
      'dependencies': [
        '<(DEPTH)/third_party/jsoncpp/jsoncpp.gyp:jsoncpp',
      ],
      'export_dependent_settings': [
        '<(DEPTH)/third_party/jsoncpp/jsoncpp.gyp:jsoncpp',
      ],
      'conditions': [
        ['OS=="win"', {
          'sources': [
            'overrides/talk/base/win32socketinit.cc',
            '<(libjingle_source)/talk/base/schanneladapter.cc',
            '<(libjingle_source)/talk/base/schanneladapter.h',
            '<(libjingle_source)/talk/base/win32.cc',
            '<(libjingle_source)/talk/base/win32.h',
            '<(libjingle_source)/talk/base/win32filesystem.cc',
            '<(libjingle_source)/talk/base/win32filesystem.h',
            '<(libjingle_source)/talk/base/win32window.h',
            '<(libjingle_source)/talk/base/win32window.cc',
            '<(libjingle_source)/talk/base/win32securityerrors.cc',
            '<(libjingle_source)/talk/base/winfirewall.cc',
            '<(libjingle_source)/talk/base/winfirewall.h',
            '<(libjingle_source)/talk/base/winping.cc',
            '<(libjingle_source)/talk/base/winping.h',
          ],
          # Suppress warnings about WIN32_LEAN_AND_MEAN.
          'msvs_disabled_warnings': [ 4005, 4267 ],
        }],
        ['os_posix == 1', {
          'sources': [
            '<(libjingle_source)/talk/base/unixfilesystem.cc',
            '<(libjingle_source)/talk/base/unixfilesystem.h',
          ],
        }],
        ['OS=="linux"', {
          'sources': [
            '<(libjingle_source)/talk/base/latebindingsymboltable.cc',
            '<(libjingle_source)/talk/base/latebindingsymboltable.h',
            '<(libjingle_source)/talk/base/linux.cc',
            '<(libjingle_source)/talk/base/linux.h',
          ],
        }],
        ['OS=="mac" or OS=="ios"', {
          'sources': [
            '<(libjingle_source)/talk/base/macconversion.cc',
            '<(libjingle_source)/talk/base/macconversion.h',
            '<(libjingle_source)/talk/base/maccocoathreadhelper.h',
            '<(libjingle_source)/talk/base/maccocoathreadhelper.mm',
            '<(libjingle_source)/talk/base/macutils.cc',
            '<(libjingle_source)/talk/base/macutils.h',
            '<(libjingle_source)/talk/base/scoped_autorelease_pool.h',
            '<(libjingle_source)/talk/base/scoped_autorelease_pool.mm',
          ],
        }],
        ['OS=="android"', {
          'sources': [
            '<(libjingle_source)/talk/base/ifaddrs-android.cc',
            '<(libjingle_source)/talk/base/ifaddrs-android.h',
          ],
          'sources!': [
            # These depend on jsoncpp which we don't load because we probably
            # don't actually need this code at all.
            '<(libjingle_source)/talk/base/json.cc',
            '<(libjingle_source)/talk/base/json.h',
          ],
          'dependencies!': [
            '<(DEPTH)/third_party/jsoncpp/jsoncpp.gyp:jsoncpp',
          ],
        }],
        ['use_openssl==1', {
          'sources': [
            '<(libjingle_source)/talk/base/openssladapter.cc',
            '<(libjingle_source)/talk/base/openssldigest.cc',
            '<(libjingle_source)/talk/base/opensslidentity.cc',
            '<(libjingle_source)/talk/base/opensslstreamadapter.cc',
          ],
        }],
      ],
    },  # target libjingle
    # This has to be is a separate project due to a bug in MSVS:
    # https://connect.microsoft.com/VisualStudio/feedback/details/368272/duplicate-cpp-filename-in-c-project-visual-studio-2008
    # We have two files named "constants.cc" and MSVS doesn't handle this
    # properly.
    {
      'target_name': 'libjingle_p2p',
      'type': 'static_library',
      'sources': [
        '<(libjingle_source)/talk/p2p/base/candidate.h',
        '<(libjingle_source)/talk/p2p/base/common.h',
        '<(libjingle_source)/talk/p2p/base/constants.cc',
        '<(libjingle_source)/talk/p2p/base/constants.h',
        '<(libjingle_source)/talk/p2p/base/dtlstransport.h',
        '<(libjingle_source)/talk/p2p/base/dtlstransportchannel.cc',
        '<(libjingle_source)/talk/p2p/base/dtlstransportchannel.h',
        '<(libjingle_source)/talk/p2p/base/p2ptransport.cc',
        '<(libjingle_source)/talk/p2p/base/p2ptransport.h',
        '<(libjingle_source)/talk/p2p/base/p2ptransportchannel.cc',
        '<(libjingle_source)/talk/p2p/base/p2ptransportchannel.h',
        '<(libjingle_source)/talk/p2p/base/port.cc',
        '<(libjingle_source)/talk/p2p/base/port.h',
        '<(libjingle_source)/talk/p2p/base/portallocator.h',
        '<(libjingle_source)/talk/p2p/base/portallocator.cc',
        '<(libjingle_source)/talk/p2p/base/portallocatorsessionproxy.cc',
        '<(libjingle_source)/talk/p2p/base/portallocatorsessionproxy.h',
        '<(libjingle_source)/talk/p2p/base/portproxy.cc',
        '<(libjingle_source)/talk/p2p/base/portproxy.h',
        '<(libjingle_source)/talk/p2p/base/pseudotcp.cc',
        '<(libjingle_source)/talk/p2p/base/pseudotcp.h',
        '<(libjingle_source)/talk/p2p/base/rawtransport.cc',
        '<(libjingle_source)/talk/p2p/base/rawtransport.h',
        '<(libjingle_source)/talk/p2p/base/rawtransportchannel.cc',
        '<(libjingle_source)/talk/p2p/base/rawtransportchannel.h',
        '<(libjingle_source)/talk/p2p/base/relayport.cc',
        '<(libjingle_source)/talk/p2p/base/relayport.h',
        '<(libjingle_source)/talk/p2p/base/session.cc',
        '<(libjingle_source)/talk/p2p/base/session.h',
        '<(libjingle_source)/talk/p2p/base/sessionclient.h',
        '<(libjingle_source)/talk/p2p/base/sessiondescription.cc',
        '<(libjingle_source)/talk/p2p/base/sessiondescription.h',
        '<(libjingle_source)/talk/p2p/base/sessionid.h',
        '<(libjingle_source)/talk/p2p/base/sessionmanager.cc',
        '<(libjingle_source)/talk/p2p/base/sessionmanager.h',
        '<(libjingle_source)/talk/p2p/base/sessionmessages.cc',
        '<(libjingle_source)/talk/p2p/base/sessionmessages.h',
        '<(libjingle_source)/talk/p2p/base/parsing.cc',
        '<(libjingle_source)/talk/p2p/base/parsing.h',
        '<(libjingle_source)/talk/p2p/base/stun.cc',
        '<(libjingle_source)/talk/p2p/base/stun.h',
        '<(libjingle_source)/talk/p2p/base/stunport.cc',
        '<(libjingle_source)/talk/p2p/base/stunport.h',
        '<(libjingle_source)/talk/p2p/base/stunrequest.cc',
        '<(libjingle_source)/talk/p2p/base/stunrequest.h',
        '<(libjingle_source)/talk/p2p/base/tcpport.cc',
        '<(libjingle_source)/talk/p2p/base/tcpport.h',
        '<(libjingle_source)/talk/p2p/base/transport.cc',
        '<(libjingle_source)/talk/p2p/base/transport.h',
        '<(libjingle_source)/talk/p2p/base/transportchannel.cc',
        '<(libjingle_source)/talk/p2p/base/transportchannel.h',
        '<(libjingle_source)/talk/p2p/base/transportchannelimpl.h',
        '<(libjingle_source)/talk/p2p/base/transportchannelproxy.cc',
        '<(libjingle_source)/talk/p2p/base/transportchannelproxy.h',
        '<(libjingle_source)/talk/p2p/base/transportdescriptionfactory.cc',
        '<(libjingle_source)/talk/p2p/base/transportdescriptionfactory.h',
        '<(libjingle_source)/talk/p2p/base/turnport.cc',
        '<(libjingle_source)/talk/p2p/base/turnport.h',
        '<(libjingle_source)/talk/p2p/client/basicportallocator.cc',
        '<(libjingle_source)/talk/p2p/client/basicportallocator.h',
        '<(libjingle_source)/talk/p2p/client/httpportallocator.cc',
        '<(libjingle_source)/talk/p2p/client/httpportallocator.h',
        '<(libjingle_source)/talk/p2p/client/sessionmanagertask.h',
        '<(libjingle_source)/talk/p2p/client/sessionsendtask.h',
        '<(libjingle_source)/talk/p2p/client/socketmonitor.cc',
        '<(libjingle_source)/talk/p2p/client/socketmonitor.h',
        '<(libjingle_source)/talk/session/tunnel/pseudotcpchannel.cc',
        '<(libjingle_source)/talk/session/tunnel/pseudotcpchannel.h',
        '<(libjingle_source)/talk/session/tunnel/tunnelsessionclient.cc',
        '<(libjingle_source)/talk/session/tunnel/tunnelsessionclient.h',
      ],
      'dependencies': [
        'libjingle',
      ],
    },  # target libjingle_p2p
    {
      'target_name': 'peerconnection_server',
      'type': 'executable',
      'sources': [
        '<(libjingle_source)/talk/examples/peerconnection/server/data_socket.cc',
        '<(libjingle_source)/talk/examples/peerconnection/server/data_socket.h',
        '<(libjingle_source)/talk/examples/peerconnection/server/main.cc',
        '<(libjingle_source)/talk/examples/peerconnection/server/peer_channel.cc',
        '<(libjingle_source)/talk/examples/peerconnection/server/peer_channel.h',
        '<(libjingle_source)/talk/examples/peerconnection/server/utils.cc',
        '<(libjingle_source)/talk/examples/peerconnection/server/utils.h',
      ],
      'include_dirs': [
        '<(libjingle_source)',
      ],
      'dependencies': [
        'libjingle',
      ],
      # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
      'msvs_disabled_warnings': [ 4309, ],
    }, # target peerconnection_server
  ],
  'conditions': [
    ['enable_webrtc==1', {
      'targets': [
        {
          'target_name': 'libjingle_peerconnection',
          'type': 'static_library',
          'sources': [
            '<(libjingle_source)/talk/app/webrtc/audiotrack.cc',
            '<(libjingle_source)/talk/app/webrtc/audiotrack.h',
            '<(libjingle_source)/talk/app/webrtc/datachannel.cc',
            '<(libjingle_source)/talk/app/webrtc/datachannel.h',
            '<(libjingle_source)/talk/app/webrtc/dtmfsender.cc',
            '<(libjingle_source)/talk/app/webrtc/dtmfsender.h',
            '<(libjingle_source)/talk/app/webrtc/jsep.h',
            '<(libjingle_source)/talk/app/webrtc/jsepicecandidate.cc',
            '<(libjingle_source)/talk/app/webrtc/jsepicecandidate.h',
            '<(libjingle_source)/talk/app/webrtc/jsepsessiondescription.cc',
            '<(libjingle_source)/talk/app/webrtc/jsepsessiondescription.h',
            '<(libjingle_source)/talk/app/webrtc/localaudiosource.cc',
            '<(libjingle_source)/talk/app/webrtc/localaudiosource.h',
            '<(libjingle_source)/talk/app/webrtc/localvideosource.cc',
            '<(libjingle_source)/talk/app/webrtc/localvideosource.h',
            '<(libjingle_source)/talk/app/webrtc/mediastream.cc',
            '<(libjingle_source)/talk/app/webrtc/mediastream.h',
            '<(libjingle_source)/talk/app/webrtc/mediastreamhandler.cc',
            '<(libjingle_source)/talk/app/webrtc/mediastreamhandler.h',
            '<(libjingle_source)/talk/app/webrtc/mediastreaminterface.h',
            '<(libjingle_source)/talk/app/webrtc/mediastreamprovider.h',
            '<(libjingle_source)/talk/app/webrtc/mediastreamproxy.cc',
            '<(libjingle_source)/talk/app/webrtc/mediastreamproxy.h',
            '<(libjingle_source)/talk/app/webrtc/mediastreamsignaling.cc',
            '<(libjingle_source)/talk/app/webrtc/mediastreamsignaling.h',
            '<(libjingle_source)/talk/app/webrtc/mediastreamtrack.h',
            '<(libjingle_source)/talk/app/webrtc/mediastreamtrackproxy.cc',
            '<(libjingle_source)/talk/app/webrtc/mediastreamtrackproxy.h',
            '<(libjingle_source)/talk/app/webrtc/notifier.h',
            '<(libjingle_source)/talk/app/webrtc/peerconnection.cc',
            '<(libjingle_source)/talk/app/webrtc/peerconnection.h',
            '<(libjingle_source)/talk/app/webrtc/peerconnectionfactory.cc',
            '<(libjingle_source)/talk/app/webrtc/peerconnectionfactory.h',
            '<(libjingle_source)/talk/app/webrtc/peerconnectioninterface.h',
            '<(libjingle_source)/talk/app/webrtc/portallocatorfactory.cc',
            '<(libjingle_source)/talk/app/webrtc/portallocatorfactory.h',
            '<(libjingle_source)/talk/app/webrtc/statscollector.h',
            '<(libjingle_source)/talk/app/webrtc/statscollector.cc',
            '<(libjingle_source)/talk/app/webrtc/statstypes.h',
            '<(libjingle_source)/talk/app/webrtc/streamcollection.h',
            '<(libjingle_source)/talk/app/webrtc/videosourceinterface.h',
            '<(libjingle_source)/talk/app/webrtc/videosourceproxy.h',
            '<(libjingle_source)/talk/app/webrtc/videosourceproxy.cc',
            '<(libjingle_source)/talk/app/webrtc/videotrackrenderers.cc',
            '<(libjingle_source)/talk/app/webrtc/videotrackrenderers.h',
            '<(libjingle_source)/talk/app/webrtc/videotrack.cc',
            '<(libjingle_source)/talk/app/webrtc/videotrack.h',
            '<(libjingle_source)/talk/app/webrtc/webrtcsdp.cc',
            '<(libjingle_source)/talk/app/webrtc/webrtcsdp.h',
            '<(libjingle_source)/talk/app/webrtc/webrtcsession.cc',
            '<(libjingle_source)/talk/app/webrtc/webrtcsession.h',
            '<(libjingle_source)/talk/media/base/capturemanager.cc',
            '<(libjingle_source)/talk/media/base/capturemanager.h',
            '<(libjingle_source)/talk/media/base/capturerenderadapter.cc',
            '<(libjingle_source)/talk/media/base/capturerenderadapter.h',
            '<(libjingle_source)/talk/media/base/codec.cc',
            '<(libjingle_source)/talk/media/base/codec.h',
            '<(libjingle_source)/talk/media/base/constants.cc',
            '<(libjingle_source)/talk/media/base/constants.h',
            '<(libjingle_source)/talk/media/base/cryptoparams.h',
            '<(libjingle_source)/talk/media/base/filemediaengine.cc',
            '<(libjingle_source)/talk/media/base/filemediaengine.h',
            '<(libjingle_source)/talk/media/base/mediachannel.h',
            '<(libjingle_source)/talk/media/base/mediaengine.cc',
            '<(libjingle_source)/talk/media/base/mediaengine.h',
            '<(libjingle_source)/talk/media/base/rtpdataengine.cc',
            '<(libjingle_source)/talk/media/base/rtpdataengine.h',
            '<(libjingle_source)/talk/media/base/rtpdump.cc',
            '<(libjingle_source)/talk/media/base/rtpdump.h',
            '<(libjingle_source)/talk/media/base/rtputils.cc',
            '<(libjingle_source)/talk/media/base/rtputils.h',
            '<(libjingle_source)/talk/media/base/streamparams.cc',
            '<(libjingle_source)/talk/media/base/streamparams.h',
            '<(libjingle_source)/talk/media/base/videocapturer.cc',
            '<(libjingle_source)/talk/media/base/videocapturer.h',
            '<(libjingle_source)/talk/media/base/videocommon.cc',
            '<(libjingle_source)/talk/media/base/videocommon.h',
            '<(libjingle_source)/talk/media/base/videoframe.cc',
            '<(libjingle_source)/talk/media/base/videoframe.h',
            '<(libjingle_source)/talk/media/devices/dummydevicemanager.cc',
            '<(libjingle_source)/talk/media/devices/dummydevicemanager.h',
            '<(libjingle_source)/talk/media/devices/filevideocapturer.cc',
            '<(libjingle_source)/talk/media/devices/filevideocapturer.h',
            '<(libjingle_source)/talk/media/webrtc/webrtcpassthroughrender.cc',
            '<(libjingle_source)/talk/media/webrtc/webrtcvideocapturer.cc',
            '<(libjingle_source)/talk/media/webrtc/webrtcvideocapturer.h',
            '<(libjingle_source)/talk/media/webrtc/webrtcvideoengine.cc',
            '<(libjingle_source)/talk/media/webrtc/webrtcvideoengine.h',
            '<(libjingle_source)/talk/media/webrtc/webrtcvideoframe.cc',
            '<(libjingle_source)/talk/media/webrtc/webrtcvideoframe.h',
            '<(libjingle_source)/talk/media/webrtc/webrtcvie.h',
            '<(libjingle_source)/talk/media/webrtc/webrtcvoe.h',
            '<(libjingle_source)/talk/media/webrtc/webrtcvoiceengine.cc',
            '<(libjingle_source)/talk/media/webrtc/webrtcvoiceengine.h',
            '<(libjingle_source)/talk/media/webrtc/webrtccommon.h',
            '<(libjingle_source)/talk/session/media/audiomonitor.cc',
            '<(libjingle_source)/talk/session/media/audiomonitor.h',
            '<(libjingle_source)/talk/session/media/call.cc',
            '<(libjingle_source)/talk/session/media/call.h',
            '<(libjingle_source)/talk/session/media/channel.cc',
            '<(libjingle_source)/talk/session/media/channel.h',
            '<(libjingle_source)/talk/session/media/channelmanager.cc',
            '<(libjingle_source)/talk/session/media/channelmanager.h',
            '<(libjingle_source)/talk/session/media/currentspeakermonitor.cc',
            '<(libjingle_source)/talk/session/media/currentspeakermonitor.h',
            '<(libjingle_source)/talk/session/media/mediamessages.cc',
            '<(libjingle_source)/talk/session/media/mediamessages.h',
            '<(libjingle_source)/talk/session/media/mediamonitor.cc',
            '<(libjingle_source)/talk/session/media/mediamonitor.h',
            '<(libjingle_source)/talk/session/media/mediasession.cc',
            '<(libjingle_source)/talk/session/media/mediasession.h',
            '<(libjingle_source)/talk/session/media/mediasessionclient.cc',
            '<(libjingle_source)/talk/session/media/mediasessionclient.h',
            '<(libjingle_source)/talk/session/media/mediasink.h',
            '<(libjingle_source)/talk/session/media/rtcpmuxfilter.cc',
            '<(libjingle_source)/talk/session/media/rtcpmuxfilter.h',
            '<(libjingle_source)/talk/session/media/soundclip.cc',
            '<(libjingle_source)/talk/session/media/soundclip.h',
            '<(libjingle_source)/talk/session/media/srtpfilter.cc',
            '<(libjingle_source)/talk/session/media/srtpfilter.h',
            '<(libjingle_source)/talk/session/media/ssrcmuxfilter.cc',
            '<(libjingle_source)/talk/session/media/ssrcmuxfilter.h',
            '<(libjingle_source)/talk/session/media/typingmonitor.h',
            '<(libjingle_source)/talk/session/media/typingmonitor.cc',
            '<(libjingle_source)/talk/session/media/voicechannel.h',
          ],
          'conditions': [
            ['enabled_libjingle_device_manager==1', {
              'sources!': [
                '<(libjingle_source)/talk/media/devices/dummydevicemanager.cc',
                '<(libjingle_source)/talk/media/devices/dummydevicemanager.h',
              ],
              'sources': [
                '<(libjingle_source)/talk/media/devices/devicemanager.cc',
                '<(libjingle_source)/talk/media/devices/devicemanager.h',
                '<(libjingle_source)/talk/sound/nullsoundsystem.cc',
                '<(libjingle_source)/talk/sound/nullsoundsystem.h',
                '<(libjingle_source)/talk/sound/nullsoundsystemfactory.cc',
                '<(libjingle_source)/talk/sound/nullsoundsystemfactory.h',
                '<(libjingle_source)/talk/sound/platformsoundsystem.cc',
                '<(libjingle_source)/talk/sound/platformsoundsystem.h',
                '<(libjingle_source)/talk/sound/platformsoundsystemfactory.cc',
                '<(libjingle_source)/talk/sound/platformsoundsystemfactory.h',
                '<(libjingle_source)/talk/sound/soundsysteminterface.cc',
                '<(libjingle_source)/talk/sound/soundsysteminterface.h',
                '<(libjingle_source)/talk/sound/soundsystemproxy.cc',
                '<(libjingle_source)/talk/sound/soundsystemproxy.h',
              ],
              'conditions': [
                ['OS=="win"', {
                  'sources': [
                    '<(libjingle_source)/talk/base/win32window.cc',
                    '<(libjingle_source)/talk/base/win32window.h',
                    '<(libjingle_source)/talk/base/win32windowpicker.cc',
                    '<(libjingle_source)/talk/base/win32windowpicker.h',
                    '<(libjingle_source)/talk/media/devices/win32deviceinfo.cc',
                    '<(libjingle_source)/talk/media/devices/win32devicemanager.cc',
                    '<(libjingle_source)/talk/media/devices/win32devicemanager.h',
                  ],
                }],
                ['OS=="linux"', {
                  'sources': [
                    '<(libjingle_source)/talk/base/linuxwindowpicker.cc',
                    '<(libjingle_source)/talk/base/linuxwindowpicker.h',
                    '<(libjingle_source)/talk/media/devices/libudevsymboltable.cc',
                    '<(libjingle_source)/talk/media/devices/libudevsymboltable.h',
                    '<(libjingle_source)/talk/media/devices/linuxdeviceinfo.cc',
                    '<(libjingle_source)/talk/media/devices/linuxdevicemanager.cc',
                    '<(libjingle_source)/talk/media/devices/linuxdevicemanager.h',
                    '<(libjingle_source)/talk/media/devices/v4llookup.cc',
                    '<(libjingle_source)/talk/media/devices/v4llookup.h',
                    '<(libjingle_source)/talk/sound/alsasoundsystem.cc',
                    '<(libjingle_source)/talk/sound/alsasoundsystem.h',
                    '<(libjingle_source)/talk/sound/alsasymboltable.cc',
                    '<(libjingle_source)/talk/sound/alsasymboltable.h',
                    '<(libjingle_source)/talk/sound/linuxsoundsystem.cc',
                    '<(libjingle_source)/talk/sound/linuxsoundsystem.h',
                    '<(libjingle_source)/talk/sound/pulseaudiosoundsystem.cc',
                    '<(libjingle_source)/talk/sound/pulseaudiosoundsystem.h',
                    '<(libjingle_source)/talk/sound/pulseaudiosymboltable.cc',
                    '<(libjingle_source)/talk/sound/pulseaudiosymboltable.h',
                  ],
                }],
                ['OS=="mac"', {
                  'sources': [
                    '<(libjingle_source)/talk/media/devices/macdeviceinfo.cc',
                    '<(libjingle_source)/talk/media/devices/macdevicemanager.cc',
                    '<(libjingle_source)/talk/media/devices/macdevicemanager.h',
                    '<(libjingle_source)/talk/media/devices/macdevicemanagermm.mm',
                  ],
                  'xcode_settings': {
                    'WARNING_CFLAGS': [
                      # Suppres warnings about using deprecated functions in
                      # macdevicemanager.cc.
                      '-Wno-deprecated-declarations',
                    ],
                  },
                }],
              ],
            }],
          ],
          'dependencies': [
            '<(DEPTH)/third_party/libsrtp/libsrtp.gyp:libsrtp',
            '<(DEPTH)/third_party/webrtc/modules/modules.gyp:video_capture_module',
            '<(DEPTH)/third_party/webrtc/modules/modules.gyp:video_render_module',
            '<(DEPTH)/third_party/webrtc/video_engine/video_engine.gyp:video_engine_core',
            '<(DEPTH)/third_party/webrtc/voice_engine/voice_engine.gyp:voice_engine_core',
            '<(DEPTH)/third_party/webrtc/system_wrappers/source/system_wrappers.gyp:system_wrappers',
            '<@(libjingle_peerconnection_additional_deps)',
            'libjingle',
            'libjingle_p2p',
          ],
        },  # target libjingle_peerconnection
      ],
    }],
  ],
}