Home | History | Annotate | Download | only in libjingle
      1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 {
      6   'includes': [
      7     '../../build/win_precompile.gypi',
      8   ],
      9   'variables': {
     10     'enabled_libjingle_device_manager%': 0,
     11     'libjingle_additional_deps%': [],
     12     'libjingle_peerconnection_additional_deps%': [],
     13     'libjingle_source%': "source",
     14     'libpeer_target_type%': 'static_library',
     15     'libpeer_allocator_shim%': 0,
     16   },
     17   'target_defaults': {
     18     'defines': [
     19       'EXPAT_RELATIVE_PATH',
     20       'FEATURE_ENABLE_SSL',
     21       'GTEST_RELATIVE_PATH',
     22       'HAVE_SRTP',
     23       'HAVE_WEBRTC_VIDEO',
     24       'HAVE_WEBRTC_VOICE',
     25       'LOGGING_INSIDE_LIBJINGLE',
     26       'NO_MAIN_THREAD_WRAPPING',
     27       'NO_SOUND_SYSTEM',
     28       'SRTP_RELATIVE_PATH',
     29       'USE_WEBRTC_DEV_BRANCH',
     30       'ENABLE_EXTERNAL_AUTH',
     31     ],
     32     'configurations': {
     33       'Debug': {
     34         'defines': [
     35           # TODO(sergeyu): Fix libjingle to use NDEBUG instead of
     36           # _DEBUG and remove this define. See below as well.
     37           '_DEBUG',
     38         ],
     39       }
     40     },
     41     'include_dirs': [
     42       './overrides',
     43       './<(libjingle_source)',
     44       '../../third_party/webrtc/overrides',
     45       '../..',
     46       '../../testing/gtest/include',
     47       '../../third_party',
     48       '../../third_party/libyuv/include',
     49       '../../third_party/usrsctp',
     50       '../../third_party/webrtc',
     51     ],
     52     'dependencies': [
     53       '<(DEPTH)/base/base.gyp:base',
     54       '<(DEPTH)/net/net.gyp:net',
     55       '<(DEPTH)/third_party/expat/expat.gyp:expat',
     56     ],
     57     'export_dependent_settings': [
     58       '<(DEPTH)/third_party/expat/expat.gyp:expat',
     59     ],
     60     'direct_dependent_settings': {
     61       'include_dirs': [
     62         './overrides',
     63         './<(libjingle_source)',
     64         '../../third_party/webrtc/overrides',
     65         '../..',
     66         '../../testing/gtest/include',
     67         '../../third_party',
     68         '../../third_party/webrtc',
     69       ],
     70       'defines': [
     71         'FEATURE_ENABLE_SSL',
     72         'FEATURE_ENABLE_VOICEMAIL',
     73         'EXPAT_RELATIVE_PATH',
     74         'GTEST_RELATIVE_PATH',
     75         'NO_MAIN_THREAD_WRAPPING',
     76         'NO_SOUND_SYSTEM',
     77       ],
     78       'conditions': [
     79         ['OS=="win"', {
     80           'link_settings': {
     81             'libraries': [
     82               '-lsecur32.lib',
     83               '-lcrypt32.lib',
     84               '-liphlpapi.lib',
     85             ],
     86           },
     87         }],
     88         ['OS=="win"', {
     89           'include_dirs': [
     90             '../third_party/platformsdk_win7/files/Include',
     91           ],
     92           'defines': [
     93             '_CRT_SECURE_NO_WARNINGS',  # Suppres warnings about _vsnprinf
     94           ],
     95           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
     96           'msvs_disabled_warnings': [ 4267 ],
     97         }],
     98         ['OS=="linux"', {
     99           'defines': [
    100             'LINUX',
    101           ],
    102         }],
    103         ['OS=="mac"', {
    104           'defines': [
    105             'OSX',
    106           ],
    107         }],
    108         ['OS=="android"', {
    109           'defines': [
    110             'ANDROID',
    111           ],
    112         }],
    113         ['os_posix==1', {
    114           'defines': [
    115             'POSIX',
    116           ],
    117         }],
    118         ['os_bsd==1', {
    119           'defines': [
    120             'BSD',
    121           ],
    122         }],
    123         ['OS=="openbsd"', {
    124           'defines': [
    125             'OPENBSD',
    126           ],
    127         }],
    128         ['OS=="freebsd"', {
    129           'defines': [
    130             'FREEBSD',
    131           ],
    132         }],
    133         ['chromeos==1', {
    134           'defines': [
    135             'CHROMEOS',
    136           ],
    137         }],
    138       ],
    139     },
    140     'all_dependent_settings': {
    141       'configurations': {
    142         'Debug': {
    143           'defines': [
    144             # TODO(sergeyu): Fix libjingle to use NDEBUG instead of
    145             # _DEBUG and remove this define. See above as well.
    146             '_DEBUG',
    147           ],
    148         }
    149       },
    150     },
    151     'conditions': [
    152       ['"<(libpeer_target_type)"=="static_library"', {
    153         'defines': [ 'LIBPEERCONNECTION_LIB=1' ],
    154       }],
    155       ['use_openssl==1', {
    156         'defines': [
    157           'SSL_USE_OPENSSL',
    158           'HAVE_OPENSSL_SSL_H',
    159         ],
    160         'dependencies': [
    161           '../../third_party/openssl/openssl.gyp:openssl',
    162         ],
    163       }, {
    164         'defines': [
    165           'SSL_USE_NSS',
    166           'HAVE_NSS_SSL_H',
    167           'SSL_USE_NSS_RNG',
    168         ],
    169         'conditions': [
    170           ['os_posix == 1 and OS != "mac" and OS != "ios" and OS != "android"', {
    171             'dependencies': [
    172               '<(DEPTH)/build/linux/system.gyp:ssl',
    173             ],
    174           }],
    175           ['OS == "mac" or OS == "ios" or OS == "win"', {
    176             'dependencies': [
    177               '<(DEPTH)/net/third_party/nss/ssl.gyp:libssl',
    178               '<(DEPTH)/third_party/nss/nss.gyp:nspr',
    179               '<(DEPTH)/third_party/nss/nss.gyp:nss',
    180             ],
    181           }],
    182         ],
    183       }],
    184       ['OS=="win"', {
    185         'include_dirs': [
    186           '../third_party/platformsdk_win7/files/Include',
    187         ],
    188         'conditions' : [
    189           ['target_arch == "ia32"', {
    190             'defines': [
    191               '_USE_32BIT_TIME_T',
    192             ],
    193           }],
    194         ],
    195       }],
    196       ['clang == 1', {
    197         'xcode_settings': {
    198           'WARNING_CFLAGS!': [
    199             # Don't warn about string->bool used in asserts.
    200             '-Wstring-conversion',
    201           ],
    202         },
    203         'cflags!': [
    204           '-Wstring-conversion',
    205         ],
    206       }],
    207       ['OS=="linux"', {
    208         'defines': [
    209           'LINUX',
    210         ],
    211       }],
    212       ['OS=="mac"', {
    213         'defines': [
    214           'OSX',
    215         ],
    216       }],
    217       ['OS=="ios"', {
    218         'defines': [
    219           'IOS',
    220         ],
    221       }],
    222       ['os_posix == 1', {
    223         'defines': [
    224           'POSIX',
    225         ],
    226       }],
    227       ['os_bsd==1', {
    228         'defines': [
    229           'BSD',
    230         ],
    231       }],
    232       ['OS=="openbsd"', {
    233         'defines': [
    234           'OPENBSD',
    235         ],
    236       }],
    237       ['OS=="freebsd"', {
    238         'defines': [
    239           'FREEBSD',
    240         ],
    241       }],
    242     ],
    243   },
    244   'targets': [
    245     {
    246       'target_name': 'libjingle',
    247       'type': 'static_library',
    248       'includes': [ 'libjingle_common.gypi' ],
    249       'sources': [
    250         'overrides/talk/base/basictypes.h',
    251         'overrides/talk/base/constructormagic.h',
    252         'overrides/talk/base/win32socketinit.cc',
    253 
    254         # Overrides logging.h/.cc because libjingle logging should be done to
    255         # the same place as the chromium logging.
    256         'overrides/talk/base/logging.cc',
    257         'overrides/talk/base/logging.h',
    258       ],
    259       'sources!' : [
    260         # Compiled as part of libjingle_p2p_constants.
    261         '<(libjingle_source)/talk/p2p/base/constants.cc',
    262         '<(libjingle_source)/talk/p2p/base/constants.h',
    263 
    264         # Replaced with logging.cc in the overrides.
    265         '<(libjingle_source)/talk/base/logging.h',
    266         '<(libjingle_source)/talk/base/logging.cc',
    267       ],
    268       'dependencies': [
    269         'libjingle_p2p_constants',
    270         '<@(libjingle_additional_deps)',
    271       ],
    272     },  # target libjingle
    273     # This has to be is a separate project due to a bug in MSVS 2008 and the
    274     # current toolset on android.  The problem is that we have two files named
    275     # "constants.cc" and MSVS/android doesn't handle this properly.
    276     # GYP currently has guards to catch this, so if you want to remove it,
    277     # run GYP and if GYP has removed the validation check, then we can assume
    278     # that the toolchains have been fixed (we currently use VS2010 and later,
    279     # so VS2008 isn't a concern anymore).
    280     {
    281       'target_name': 'libjingle_p2p_constants',
    282       'type': 'static_library',
    283       'sources': [
    284         '<(libjingle_source)/talk/p2p/base/constants.cc',
    285         '<(libjingle_source)/talk/p2p/base/constants.h',
    286       ],
    287     },  # target libjingle_p2p_constants
    288     {
    289       'target_name': 'peerconnection_server',
    290       'type': 'executable',
    291       'sources': [
    292         '<(libjingle_source)/talk/examples/peerconnection/server/data_socket.cc',
    293         '<(libjingle_source)/talk/examples/peerconnection/server/data_socket.h',
    294         '<(libjingle_source)/talk/examples/peerconnection/server/main.cc',
    295         '<(libjingle_source)/talk/examples/peerconnection/server/peer_channel.cc',
    296         '<(libjingle_source)/talk/examples/peerconnection/server/peer_channel.h',
    297         '<(libjingle_source)/talk/examples/peerconnection/server/utils.cc',
    298         '<(libjingle_source)/talk/examples/peerconnection/server/utils.h',
    299       ],
    300       'include_dirs': [
    301         '<(libjingle_source)',
    302       ],
    303       'dependencies': [
    304         'libjingle',
    305       ],
    306       # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
    307       'msvs_disabled_warnings': [ 4309, ],
    308     }, # target peerconnection_server
    309   ],
    310   'conditions': [
    311     ['enable_webrtc==1', {
    312       'targets': [
    313         {
    314           'target_name': 'libjingle_webrtc_common',
    315           'type': 'static_library',
    316           'all_dependent_settings': {
    317             'conditions': [
    318               ['"<(libpeer_target_type)"=="static_library"', {
    319                 'defines': [ 'LIBPEERCONNECTION_LIB=1' ],
    320               }],
    321             ],
    322           },
    323           'sources': [
    324             'overrides/talk/media/webrtc/webrtcexport.h',
    325 
    326             '<(libjingle_source)/talk/app/webrtc/audiotrack.cc',
    327             '<(libjingle_source)/talk/app/webrtc/audiotrack.h',
    328             '<(libjingle_source)/talk/app/webrtc/audiotrackrenderer.cc',
    329             '<(libjingle_source)/talk/app/webrtc/audiotrackrenderer.h',
    330             '<(libjingle_source)/talk/app/webrtc/datachannel.cc',
    331             '<(libjingle_source)/talk/app/webrtc/datachannel.h',
    332             '<(libjingle_source)/talk/app/webrtc/dtmfsender.cc',
    333             '<(libjingle_source)/talk/app/webrtc/dtmfsender.h',
    334             '<(libjingle_source)/talk/app/webrtc/jsep.h',
    335             '<(libjingle_source)/talk/app/webrtc/jsepicecandidate.cc',
    336             '<(libjingle_source)/talk/app/webrtc/jsepicecandidate.h',
    337             '<(libjingle_source)/talk/app/webrtc/jsepsessiondescription.cc',
    338             '<(libjingle_source)/talk/app/webrtc/jsepsessiondescription.h',
    339             '<(libjingle_source)/talk/app/webrtc/localaudiosource.cc',
    340             '<(libjingle_source)/talk/app/webrtc/localaudiosource.h',
    341             '<(libjingle_source)/talk/app/webrtc/mediaconstraintsinterface.cc',
    342             '<(libjingle_source)/talk/app/webrtc/mediaconstraintsinterface.h',
    343             '<(libjingle_source)/talk/app/webrtc/mediastream.cc',
    344             '<(libjingle_source)/talk/app/webrtc/mediastream.h',
    345             '<(libjingle_source)/talk/app/webrtc/mediastreamhandler.cc',
    346             '<(libjingle_source)/talk/app/webrtc/mediastreamhandler.h',
    347             '<(libjingle_source)/talk/app/webrtc/mediastreaminterface.h',
    348             '<(libjingle_source)/talk/app/webrtc/mediastreamprovider.h',
    349             '<(libjingle_source)/talk/app/webrtc/mediastreamproxy.h',
    350             '<(libjingle_source)/talk/app/webrtc/mediastreamsignaling.cc',
    351             '<(libjingle_source)/talk/app/webrtc/mediastreamsignaling.h',
    352             '<(libjingle_source)/talk/app/webrtc/mediastreamtrack.h',
    353             '<(libjingle_source)/talk/app/webrtc/mediastreamtrackproxy.h',
    354             '<(libjingle_source)/talk/app/webrtc/notifier.h',
    355             '<(libjingle_source)/talk/app/webrtc/peerconnection.cc',
    356             '<(libjingle_source)/talk/app/webrtc/peerconnection.h',
    357             '<(libjingle_source)/talk/app/webrtc/peerconnectionfactory.cc',
    358             '<(libjingle_source)/talk/app/webrtc/peerconnectionfactory.h',
    359             '<(libjingle_source)/talk/app/webrtc/peerconnectioninterface.h',
    360             '<(libjingle_source)/talk/app/webrtc/portallocatorfactory.cc',
    361             '<(libjingle_source)/talk/app/webrtc/portallocatorfactory.h',
    362             '<(libjingle_source)/talk/app/webrtc/remoteaudiosource.cc',
    363             '<(libjingle_source)/talk/app/webrtc/remoteaudiosource.h',
    364             '<(libjingle_source)/talk/app/webrtc/remotevideocapturer.cc',
    365             '<(libjingle_source)/talk/app/webrtc/remotevideocapturer.h',
    366             '<(libjingle_source)/talk/app/webrtc/sctputils.cc',
    367             '<(libjingle_source)/talk/app/webrtc/sctputils.h',
    368             '<(libjingle_source)/talk/app/webrtc/statscollector.cc',
    369             '<(libjingle_source)/talk/app/webrtc/statscollector.h',
    370             '<(libjingle_source)/talk/app/webrtc/statstypes.h',
    371             '<(libjingle_source)/talk/app/webrtc/streamcollection.h',
    372             '<(libjingle_source)/talk/app/webrtc/umametrics.h',
    373             '<(libjingle_source)/talk/app/webrtc/videosource.cc',
    374             '<(libjingle_source)/talk/app/webrtc/videosource.h',
    375             '<(libjingle_source)/talk/app/webrtc/videosourceinterface.h',
    376             '<(libjingle_source)/talk/app/webrtc/videosourceproxy.h',
    377             '<(libjingle_source)/talk/app/webrtc/videotrack.cc',
    378             '<(libjingle_source)/talk/app/webrtc/videotrack.h',
    379             '<(libjingle_source)/talk/app/webrtc/videotrackrenderers.cc',
    380             '<(libjingle_source)/talk/app/webrtc/videotrackrenderers.h',
    381             '<(libjingle_source)/talk/app/webrtc/webrtcsdp.cc',
    382             '<(libjingle_source)/talk/app/webrtc/webrtcsdp.h',
    383             '<(libjingle_source)/talk/app/webrtc/webrtcsession.cc',
    384             '<(libjingle_source)/talk/app/webrtc/webrtcsession.h',
    385             '<(libjingle_source)/talk/app/webrtc/webrtcsessiondescriptionfactory.cc',
    386             '<(libjingle_source)/talk/app/webrtc/webrtcsessiondescriptionfactory.h',
    387             '<(libjingle_source)/talk/media/base/audiorenderer.h',
    388             '<(libjingle_source)/talk/media/base/capturemanager.cc',
    389             '<(libjingle_source)/talk/media/base/capturemanager.h',
    390             '<(libjingle_source)/talk/media/base/capturerenderadapter.cc',
    391             '<(libjingle_source)/talk/media/base/capturerenderadapter.h',
    392             '<(libjingle_source)/talk/media/base/codec.cc',
    393             '<(libjingle_source)/talk/media/base/codec.h',
    394             '<(libjingle_source)/talk/media/base/constants.cc',
    395             '<(libjingle_source)/talk/media/base/constants.h',
    396             '<(libjingle_source)/talk/media/base/cryptoparams.h',
    397             '<(libjingle_source)/talk/media/base/filemediaengine.cc',
    398             '<(libjingle_source)/talk/media/base/filemediaengine.h',
    399             '<(libjingle_source)/talk/media/base/hybriddataengine.h',
    400             '<(libjingle_source)/talk/media/base/mediachannel.h',
    401             '<(libjingle_source)/talk/media/base/mediaengine.cc',
    402             '<(libjingle_source)/talk/media/base/mediaengine.h',
    403             '<(libjingle_source)/talk/media/base/rtpdataengine.cc',
    404             '<(libjingle_source)/talk/media/base/rtpdataengine.h',
    405             '<(libjingle_source)/talk/media/base/rtpdump.cc',
    406             '<(libjingle_source)/talk/media/base/rtpdump.h',
    407             '<(libjingle_source)/talk/media/base/rtputils.cc',
    408             '<(libjingle_source)/talk/media/base/rtputils.h',
    409             '<(libjingle_source)/talk/media/base/streamparams.cc',
    410             '<(libjingle_source)/talk/media/base/streamparams.h',
    411             '<(libjingle_source)/talk/media/base/videoadapter.cc',
    412             '<(libjingle_source)/talk/media/base/videoadapter.h',
    413             '<(libjingle_source)/talk/media/base/videocapturer.cc',
    414             '<(libjingle_source)/talk/media/base/videocapturer.h',
    415             '<(libjingle_source)/talk/media/base/videocommon.cc',
    416             '<(libjingle_source)/talk/media/base/videocommon.h',
    417             '<(libjingle_source)/talk/media/base/videoframe.cc',
    418             '<(libjingle_source)/talk/media/base/videoframe.h',
    419             '<(libjingle_source)/talk/media/devices/dummydevicemanager.cc',
    420             '<(libjingle_source)/talk/media/devices/dummydevicemanager.h',
    421             '<(libjingle_source)/talk/media/devices/filevideocapturer.cc',
    422             '<(libjingle_source)/talk/media/devices/filevideocapturer.h',
    423             '<(libjingle_source)/talk/media/webrtc/webrtccommon.h',
    424             '<(libjingle_source)/talk/media/webrtc/webrtcpassthroughrender.cc',
    425             '<(libjingle_source)/talk/media/webrtc/webrtcpassthroughrender.h',
    426             '<(libjingle_source)/talk/media/webrtc/webrtctexturevideoframe.cc',
    427             '<(libjingle_source)/talk/media/webrtc/webrtctexturevideoframe.h',
    428             '<(libjingle_source)/talk/media/webrtc/webrtcvideocapturer.cc',
    429             '<(libjingle_source)/talk/media/webrtc/webrtcvideocapturer.h',
    430             '<(libjingle_source)/talk/media/webrtc/webrtcvideoframe.cc',
    431             '<(libjingle_source)/talk/media/webrtc/webrtcvideoframe.h',
    432             '<(libjingle_source)/talk/media/webrtc/webrtcvie.h',
    433             '<(libjingle_source)/talk/media/webrtc/webrtcvoe.h',
    434             '<(libjingle_source)/talk/session/media/audiomonitor.cc',
    435             '<(libjingle_source)/talk/session/media/audiomonitor.h',
    436             '<(libjingle_source)/talk/session/media/bundlefilter.cc',
    437             '<(libjingle_source)/talk/session/media/bundlefilter.h',
    438             '<(libjingle_source)/talk/session/media/call.cc',
    439             '<(libjingle_source)/talk/session/media/call.h',
    440             '<(libjingle_source)/talk/session/media/channel.cc',
    441             '<(libjingle_source)/talk/session/media/channel.h',
    442             '<(libjingle_source)/talk/session/media/channelmanager.cc',
    443             '<(libjingle_source)/talk/session/media/channelmanager.h',
    444             '<(libjingle_source)/talk/session/media/currentspeakermonitor.cc',
    445             '<(libjingle_source)/talk/session/media/currentspeakermonitor.h',
    446             '<(libjingle_source)/talk/session/media/externalhmac.cc',
    447             '<(libjingle_source)/talk/session/media/externalhmac.h',
    448             '<(libjingle_source)/talk/session/media/mediamessages.cc',
    449             '<(libjingle_source)/talk/session/media/mediamessages.h',
    450             '<(libjingle_source)/talk/session/media/mediamonitor.cc',
    451             '<(libjingle_source)/talk/session/media/mediamonitor.h',
    452             '<(libjingle_source)/talk/session/media/mediasession.cc',
    453             '<(libjingle_source)/talk/session/media/mediasession.h',
    454             '<(libjingle_source)/talk/session/media/mediasessionclient.cc',
    455             '<(libjingle_source)/talk/session/media/mediasessionclient.h',
    456             '<(libjingle_source)/talk/session/media/mediasink.h',
    457             '<(libjingle_source)/talk/session/media/rtcpmuxfilter.cc',
    458             '<(libjingle_source)/talk/session/media/rtcpmuxfilter.h',
    459             '<(libjingle_source)/talk/session/media/soundclip.cc',
    460             '<(libjingle_source)/talk/session/media/soundclip.h',
    461             '<(libjingle_source)/talk/session/media/srtpfilter.cc',
    462             '<(libjingle_source)/talk/session/media/srtpfilter.h',
    463             '<(libjingle_source)/talk/session/media/typingmonitor.cc',
    464             '<(libjingle_source)/talk/session/media/typingmonitor.h',
    465             '<(libjingle_source)/talk/session/media/voicechannel.h',
    466             '<(libjingle_source)/talk/session/tunnel/pseudotcpchannel.cc',
    467             '<(libjingle_source)/talk/session/tunnel/pseudotcpchannel.h',
    468             '<(libjingle_source)/talk/session/tunnel/tunnelsessionclient.cc',
    469             '<(libjingle_source)/talk/session/tunnel/tunnelsessionclient.h',
    470           ],
    471           'conditions': [
    472             ['libpeer_allocator_shim==1 and '
    473              'libpeer_target_type!="static_library" and OS!="mac"', {
    474               'sources': [
    475                 'overrides/allocator_shim/allocator_stub.cc',
    476                 'overrides/allocator_shim/allocator_stub.h',
    477               ],
    478             }],
    479             # TODO(mallinath) - Enable SCTP for iOS.
    480             ['OS!="ios"', {
    481               'defines': [
    482                 'HAVE_SCTP',
    483               ],
    484               'sources': [
    485                 '<(libjingle_source)/talk/media/sctp/sctpdataengine.cc',
    486                 '<(libjingle_source)/talk/media/sctp/sctpdataengine.h',
    487               ],
    488               'dependencies': [
    489                 '<(DEPTH)/third_party/usrsctp/usrsctp.gyp:usrsctplib',
    490               ],
    491             }],
    492             ['enabled_libjingle_device_manager==1', {
    493               'sources!': [
    494                 '<(libjingle_source)/talk/media/devices/dummydevicemanager.cc',
    495                 '<(libjingle_source)/talk/media/devices/dummydevicemanager.h',
    496               ],
    497               'sources': [
    498                 '<(libjingle_source)/talk/media/devices/devicemanager.cc',
    499                 '<(libjingle_source)/talk/media/devices/devicemanager.h',
    500                 '<(libjingle_source)/talk/sound/nullsoundsystem.cc',
    501                 '<(libjingle_source)/talk/sound/nullsoundsystem.h',
    502                 '<(libjingle_source)/talk/sound/nullsoundsystemfactory.cc',
    503                 '<(libjingle_source)/talk/sound/nullsoundsystemfactory.h',
    504                 '<(libjingle_source)/talk/sound/platformsoundsystem.cc',
    505                 '<(libjingle_source)/talk/sound/platformsoundsystem.h',
    506                 '<(libjingle_source)/talk/sound/platformsoundsystemfactory.cc',
    507                 '<(libjingle_source)/talk/sound/platformsoundsystemfactory.h',
    508                 '<(libjingle_source)/talk/sound/soundsysteminterface.cc',
    509                 '<(libjingle_source)/talk/sound/soundsysteminterface.h',
    510                 '<(libjingle_source)/talk/sound/soundsystemproxy.cc',
    511                 '<(libjingle_source)/talk/sound/soundsystemproxy.h',
    512               ],
    513               'conditions': [
    514                 ['OS=="win"', {
    515                   'sources': [
    516                     '<(libjingle_source)/talk/base/win32window.cc',
    517                     '<(libjingle_source)/talk/base/win32window.h',
    518                     '<(libjingle_source)/talk/base/win32windowpicker.cc',
    519                     '<(libjingle_source)/talk/base/win32windowpicker.h',
    520                     '<(libjingle_source)/talk/media/devices/win32deviceinfo.cc',
    521                     '<(libjingle_source)/talk/media/devices/win32devicemanager.cc',
    522                     '<(libjingle_source)/talk/media/devices/win32devicemanager.h',
    523                   ],
    524                 }],
    525                 ['OS=="linux"', {
    526                   'sources': [
    527                     '<(libjingle_source)/talk/base/linuxwindowpicker.cc',
    528                     '<(libjingle_source)/talk/base/linuxwindowpicker.h',
    529                     '<(libjingle_source)/talk/media/devices/libudevsymboltable.cc',
    530                     '<(libjingle_source)/talk/media/devices/libudevsymboltable.h',
    531                     '<(libjingle_source)/talk/media/devices/linuxdeviceinfo.cc',
    532                     '<(libjingle_source)/talk/media/devices/linuxdevicemanager.cc',
    533                     '<(libjingle_source)/talk/media/devices/linuxdevicemanager.h',
    534                     '<(libjingle_source)/talk/media/devices/v4llookup.cc',
    535                     '<(libjingle_source)/talk/media/devices/v4llookup.h',
    536                     '<(libjingle_source)/talk/sound/alsasoundsystem.cc',
    537                     '<(libjingle_source)/talk/sound/alsasoundsystem.h',
    538                     '<(libjingle_source)/talk/sound/alsasymboltable.cc',
    539                     '<(libjingle_source)/talk/sound/alsasymboltable.h',
    540                     '<(libjingle_source)/talk/sound/linuxsoundsystem.cc',
    541                     '<(libjingle_source)/talk/sound/linuxsoundsystem.h',
    542                     '<(libjingle_source)/talk/sound/pulseaudiosoundsystem.cc',
    543                     '<(libjingle_source)/talk/sound/pulseaudiosoundsystem.h',
    544                     '<(libjingle_source)/talk/sound/pulseaudiosymboltable.cc',
    545                     '<(libjingle_source)/talk/sound/pulseaudiosymboltable.h',
    546                   ],
    547                 }],
    548                 ['OS=="mac"', {
    549                   'sources': [
    550                     '<(libjingle_source)/talk/media/devices/macdeviceinfo.cc',
    551                     '<(libjingle_source)/talk/media/devices/macdevicemanager.cc',
    552                     '<(libjingle_source)/talk/media/devices/macdevicemanager.h',
    553                     '<(libjingle_source)/talk/media/devices/macdevicemanagermm.mm',
    554                   ],
    555                   'xcode_settings': {
    556                     'WARNING_CFLAGS': [
    557                       # Suppres warnings about using deprecated functions in
    558                       # macdevicemanager.cc.
    559                       '-Wno-deprecated-declarations',
    560                     ],
    561                   },
    562                 }],
    563               ],
    564             }],
    565           ],
    566           'dependencies': [
    567             '<(DEPTH)/third_party/libsrtp/libsrtp.gyp:libsrtp',
    568             '<(DEPTH)/third_party/webrtc/modules/modules.gyp:media_file',
    569             '<(DEPTH)/third_party/webrtc/modules/modules.gyp:video_capture_module',
    570             '<(DEPTH)/third_party/webrtc/modules/modules.gyp:video_render_module',
    571             'libjingle',
    572           ],
    573         },  # target libjingle_webrtc_common
    574         {
    575           'target_name': 'libjingle_webrtc',
    576           'type': 'static_library',
    577           'sources': [
    578             'overrides/init_webrtc.cc',
    579             'overrides/init_webrtc.h',
    580           ],
    581           'dependencies': [
    582             'libjingle_webrtc_common',
    583           ],
    584         },
    585         {
    586           'target_name': 'libpeerconnection',
    587           'type': '<(libpeer_target_type)',
    588           'sources': [
    589             '<(libjingle_source)/talk/media/webrtc/webrtcmediaengine.cc',
    590             '<(libjingle_source)/talk/media/webrtc/webrtcmediaengine.h',
    591             '<(libjingle_source)/talk/media/webrtc/webrtcvideoengine.cc',
    592             '<(libjingle_source)/talk/media/webrtc/webrtcvideoengine.h',
    593             '<(libjingle_source)/talk/media/webrtc/webrtcvideoengine2.cc',
    594             '<(libjingle_source)/talk/media/webrtc/webrtcvideoengine2.h',
    595             '<(libjingle_source)/talk/media/webrtc/webrtcvoiceengine.cc',
    596             '<(libjingle_source)/talk/media/webrtc/webrtcvoiceengine.h',
    597           ],
    598           'dependencies': [
    599             '<(DEPTH)/third_party/webrtc/system_wrappers/source/system_wrappers.gyp:system_wrappers',
    600             '<(DEPTH)/third_party/webrtc/voice_engine/voice_engine.gyp:voice_engine',
    601             '<(DEPTH)/third_party/webrtc/webrtc.gyp:webrtc',
    602             '<@(libjingle_peerconnection_additional_deps)',
    603             'libjingle_webrtc_common',
    604           ],
    605           'conditions': [
    606             ['libpeer_target_type!="static_library"', {
    607               'sources': [
    608                 'overrides/initialize_module.cc',
    609               ],
    610               'conditions': [
    611                 ['OS!="mac" and OS!="android"', {
    612                   'sources': [
    613                     'overrides/allocator_shim/allocator_proxy.cc',
    614                   ],
    615                 }],
    616               ],
    617             }],
    618             ['"<(libpeer_target_type)"!="static_library"', {
    619               # Used to control symbol export/import.
    620               'defines': [ 'LIBPEERCONNECTION_IMPLEMENTATION=1' ],
    621             }],
    622             ['OS=="win" and "<(libpeer_target_type)"!="static_library"', {
    623               'link_settings': {
    624                 'libraries': [
    625                   '-lsecur32.lib',
    626                   '-lcrypt32.lib',
    627                   '-liphlpapi.lib',
    628                 ],
    629               },
    630             }],
    631             ['OS!="win" and "<(libpeer_target_type)"!="static_library"', {
    632               'cflags': [
    633                 # For compatibility with how we export symbols from this
    634                 # target on Windows.  This also prevents the linker from
    635                 # picking up symbols from this target that should be linked
    636                 # in from other libjingle libs.
    637                 '-fvisibility=hidden',
    638               ],
    639             }],
    640             ['OS=="mac" and libpeer_target_type!="static_library"', {
    641               'product_name': 'libpeerconnection',
    642             }],
    643             ['OS=="android" and "<(libpeer_target_type)"=="static_library"', {
    644               'standalone_static_library': 1,
    645             }],
    646             ['OS=="linux" and libpeer_target_type!="static_library"', {
    647               # The installer and various tools depend on finding the .so
    648               # in this directory and not lib.target as will otherwise be
    649               # the case with make builds.
    650               'product_dir': '<(PRODUCT_DIR)/lib',
    651             }],
    652           ],
    653         },  # target libpeerconnection
    654       ],
    655     }],
    656   ],
    657 }
    658