1 # 2 # libjingle 3 # Copyright 2012, Google Inc. 4 # 5 # Redistribution and use in source and binary forms, with or without 6 # modification, are permitted provided that the following conditions are met: 7 # 8 # 1. Redistributions of source code must retain the above copyright notice, 9 # this list of conditions and the following disclaimer. 10 # 2. Redistributions in binary form must reproduce the above copyright notice, 11 # this list of conditions and the following disclaimer in the documentation 12 # and/or other materials provided with the distribution. 13 # 3. The name of the author may not be used to endorse or promote products 14 # derived from this software without specific prior written permission. 15 # 16 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 19 # EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 21 # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 22 # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 23 # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 24 # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 25 # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 # 27 28 { 29 'includes': ['build/common.gypi'], 30 31 'conditions': [ 32 ['os_posix == 1 and OS != "mac" and OS != "ios"', { 33 'conditions': [ 34 ['sysroot!=""', { 35 'variables': { 36 'pkg-config': '../../../build/linux/pkg-config-wrapper "<(sysroot)" "<(target_arch)"', 37 }, 38 }, { 39 'variables': { 40 'pkg-config': 'pkg-config' 41 }, 42 }], 43 ], 44 }], 45 ['OS=="linux" or OS=="android"', { 46 'targets': [ 47 { 48 'target_name': 'libjingle_peerconnection_so', 49 'type': 'loadable_module', 50 'dependencies': [ 51 'libjingle_peerconnection', 52 '<(DEPTH)/third_party/icu/icu.gyp:icuuc', 53 ], 54 'sources': [ 55 'app/webrtc/java/jni/peerconnection_jni.cc' 56 ], 57 'conditions': [ 58 ['OS=="linux"', { 59 'defines': [ 60 'HAVE_GTK', 61 ], 62 'include_dirs': [ 63 '<(java_home)/include', 64 '<(java_home)/include/linux', 65 ], 66 'link_settings': { 67 'libraries': [ 68 '<!@(pkg-config --libs-only-l gobject-2.0 gthread-2.0' 69 ' gtk+-2.0)', 70 ], 71 }, 72 }], 73 ], 74 }, 75 { 76 'target_name': 'libjingle_peerconnection_jar', 77 'type': 'none', 78 'actions': [ 79 { 80 'variables': { 81 'java_src_dir': 'app/webrtc/java/src', 82 'webrtc_modules_dir': '<(webrtc_root)/modules', 83 'peerconnection_java_files': [ 84 'app/webrtc/java/src/org/webrtc/AudioSource.java', 85 'app/webrtc/java/src/org/webrtc/AudioTrack.java', 86 'app/webrtc/java/src/org/webrtc/DataChannel.java', 87 'app/webrtc/java/src/org/webrtc/IceCandidate.java', 88 'app/webrtc/java/src/org/webrtc/Logging.java', 89 'app/webrtc/java/src/org/webrtc/MediaConstraints.java', 90 'app/webrtc/java/src/org/webrtc/MediaSource.java', 91 'app/webrtc/java/src/org/webrtc/MediaStream.java', 92 'app/webrtc/java/src/org/webrtc/MediaStreamTrack.java', 93 'app/webrtc/java/src/org/webrtc/PeerConnectionFactory.java', 94 'app/webrtc/java/src/org/webrtc/PeerConnection.java', 95 'app/webrtc/java/src/org/webrtc/SdpObserver.java', 96 'app/webrtc/java/src/org/webrtc/StatsObserver.java', 97 'app/webrtc/java/src/org/webrtc/StatsReport.java', 98 'app/webrtc/java/src/org/webrtc/SessionDescription.java', 99 'app/webrtc/java/src/org/webrtc/VideoCapturer.java', 100 'app/webrtc/java/src/org/webrtc/VideoRenderer.java', 101 'app/webrtc/java/src/org/webrtc/VideoSource.java', 102 'app/webrtc/java/src/org/webrtc/VideoTrack.java', 103 ], 104 # TODO(fischman): extract this into a webrtc gyp var that can be 105 # included here, or better yet, build a proper .jar in webrtc 106 # and include it here. 107 'android_java_files': [ 108 '<(webrtc_modules_dir)/audio_device/android/java/src/org/webrtc/voiceengine/AudioManagerAndroid.java', 109 '<(webrtc_modules_dir)/video_capture/android/java/src/org/webrtc/videoengine/VideoCaptureAndroid.java', 110 '<(webrtc_modules_dir)/video_capture/android/java/src/org/webrtc/videoengine/VideoCaptureDeviceInfoAndroid.java', 111 '<(webrtc_modules_dir)/video_render/android/java/src/org/webrtc/videoengine/ViEAndroidGLES20.java', 112 '<(webrtc_modules_dir)/video_render/android/java/src/org/webrtc/videoengine/ViERenderer.java', 113 '<(webrtc_modules_dir)/video_render/android/java/src/org/webrtc/videoengine/ViESurfaceRenderer.java', 114 '<(webrtc_modules_dir)/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioRecord.java', 115 '<(webrtc_modules_dir)/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java', 116 ], 117 }, 118 'action_name': 'create_jar', 119 'inputs': [ 120 'build/build_jar.sh', 121 '<@(java_files)', 122 ], 123 'outputs': [ 124 '<(PRODUCT_DIR)/libjingle_peerconnection.jar', 125 ], 126 'conditions': [ 127 ['OS=="android"', { 128 'variables': { 129 'java_files': ['<@(peerconnection_java_files)', '<@(android_java_files)'], 130 'build_classpath': '<(java_src_dir):<(DEPTH)/third_party/android_tools/sdk/platforms/android-<(android_sdk_version)/android.jar', 131 }, 132 }, { 133 'variables': { 134 'java_files': ['<@(peerconnection_java_files)'], 135 'build_classpath': '<(java_src_dir)', 136 }, 137 }], 138 ], 139 'action': [ 140 'build/build_jar.sh', '<(java_home)', '<@(_outputs)', 141 '<(INTERMEDIATE_DIR)', 142 '<(build_classpath)', 143 '<@(java_files)' 144 ], 145 }, 146 ], 147 'dependencies': [ 148 'libjingle_peerconnection_so', 149 ], 150 }, 151 ], 152 }], 153 ['OS=="ios" or (OS=="mac" and target_arch!="ia32")', { 154 'targets': [ 155 { 156 'target_name': 'libjingle_peerconnection_objc', 157 'type': 'static_library', 158 'dependencies': [ 159 'libjingle_peerconnection', 160 ], 161 'sources': [ 162 'app/webrtc/objc/RTCAudioTrack+Internal.h', 163 'app/webrtc/objc/RTCAudioTrack.mm', 164 'app/webrtc/objc/RTCEnumConverter.h', 165 'app/webrtc/objc/RTCEnumConverter.mm', 166 'app/webrtc/objc/RTCI420Frame.mm', 167 'app/webrtc/objc/RTCICECandidate+Internal.h', 168 'app/webrtc/objc/RTCICECandidate.mm', 169 'app/webrtc/objc/RTCICEServer+Internal.h', 170 'app/webrtc/objc/RTCICEServer.mm', 171 'app/webrtc/objc/RTCMediaConstraints+Internal.h', 172 'app/webrtc/objc/RTCMediaConstraints.mm', 173 'app/webrtc/objc/RTCMediaConstraintsNative.cc', 174 'app/webrtc/objc/RTCMediaConstraintsNative.h', 175 'app/webrtc/objc/RTCMediaSource+Internal.h', 176 'app/webrtc/objc/RTCMediaSource.mm', 177 'app/webrtc/objc/RTCMediaStream+Internal.h', 178 'app/webrtc/objc/RTCMediaStream.mm', 179 'app/webrtc/objc/RTCMediaStreamTrack+Internal.h', 180 'app/webrtc/objc/RTCMediaStreamTrack.mm', 181 'app/webrtc/objc/RTCPair.m', 182 'app/webrtc/objc/RTCPeerConnection+Internal.h', 183 'app/webrtc/objc/RTCPeerConnection.mm', 184 'app/webrtc/objc/RTCPeerConnectionFactory.mm', 185 'app/webrtc/objc/RTCPeerConnectionObserver.h', 186 'app/webrtc/objc/RTCPeerConnectionObserver.mm', 187 'app/webrtc/objc/RTCSessionDescription+Internal.h', 188 'app/webrtc/objc/RTCSessionDescription.mm', 189 'app/webrtc/objc/RTCVideoCapturer+Internal.h', 190 'app/webrtc/objc/RTCVideoCapturer.mm', 191 'app/webrtc/objc/RTCVideoRenderer+Internal.h', 192 'app/webrtc/objc/RTCVideoRenderer.mm', 193 'app/webrtc/objc/RTCVideoSource+Internal.h', 194 'app/webrtc/objc/RTCVideoSource.mm', 195 'app/webrtc/objc/RTCVideoTrack+Internal.h', 196 'app/webrtc/objc/RTCVideoTrack.mm', 197 'app/webrtc/objc/public/RTCAudioSource.h', 198 'app/webrtc/objc/public/RTCAudioTrack.h', 199 'app/webrtc/objc/public/RTCI420Frame.h', 200 'app/webrtc/objc/public/RTCICECandidate.h', 201 'app/webrtc/objc/public/RTCICEServer.h', 202 'app/webrtc/objc/public/RTCMediaConstraints.h', 203 'app/webrtc/objc/public/RTCMediaSource.h', 204 'app/webrtc/objc/public/RTCMediaStream.h', 205 'app/webrtc/objc/public/RTCMediaStreamTrack.h', 206 'app/webrtc/objc/public/RTCPair.h', 207 'app/webrtc/objc/public/RTCPeerConnection.h', 208 'app/webrtc/objc/public/RTCPeerConnectionDelegate.h', 209 'app/webrtc/objc/public/RTCPeerConnectionFactory.h', 210 'app/webrtc/objc/public/RTCSessionDescription.h', 211 'app/webrtc/objc/public/RTCSessionDescriptonDelegate.h', 212 'app/webrtc/objc/public/RTCTypes.h', 213 'app/webrtc/objc/public/RTCVideoCapturer.h', 214 'app/webrtc/objc/public/RTCVideoRenderer.h', 215 'app/webrtc/objc/public/RTCVideoRendererDelegate.h', 216 'app/webrtc/objc/public/RTCVideoSource.h', 217 'app/webrtc/objc/public/RTCVideoTrack.h', 218 ], 219 'direct_dependent_settings': { 220 'include_dirs': [ 221 '<(DEPTH)/talk/app/webrtc/objc/public', 222 ], 223 }, 224 'include_dirs': [ 225 '<(DEPTH)/talk/app/webrtc', 226 '<(DEPTH)/talk/app/webrtc/objc', 227 '<(DEPTH)/talk/app/webrtc/objc/public', 228 ], 229 'link_settings': { 230 'libraries': [ 231 '$(SDKROOT)/System/Library/Frameworks/Foundation.framework', 232 '-lstdc++', 233 ], 234 }, 235 'xcode_settings': { 236 'CLANG_ENABLE_OBJC_ARC': 'YES', 237 }, 238 }, # target libjingle_peerconnection_objc 239 ], 240 }], 241 ], 242 243 'targets': [ 244 { 245 'target_name': 'libjingle', 246 'type': 'static_library', 247 'dependencies': [ 248 '<(DEPTH)/third_party/expat/expat.gyp:expat', 249 '<(DEPTH)/third_party/jsoncpp/jsoncpp.gyp:jsoncpp', 250 ], 251 'export_dependent_settings': [ 252 '<(DEPTH)/third_party/expat/expat.gyp:expat', 253 '<(DEPTH)/third_party/jsoncpp/jsoncpp.gyp:jsoncpp', 254 ], 255 'sources': [ 256 'base/asyncfile.cc', 257 'base/asyncfile.h', 258 'base/asynchttprequest.cc', 259 'base/asynchttprequest.h', 260 'base/asyncpacketsocket.h', 261 'base/asyncresolverinterface.h', 262 'base/asyncsocket.cc', 263 'base/asyncsocket.h', 264 'base/asynctcpsocket.cc', 265 'base/asynctcpsocket.h', 266 'base/asyncudpsocket.cc', 267 'base/asyncudpsocket.h', 268 'base/atomicops.h', 269 'base/autodetectproxy.cc', 270 'base/autodetectproxy.h', 271 'base/bandwidthsmoother.cc', 272 'base/bandwidthsmoother.h', 273 'base/base64.cc', 274 'base/base64.h', 275 'base/basicdefs.h', 276 'base/basictypes.h', 277 'base/bind.h', 278 'base/buffer.h', 279 'base/bytebuffer.cc', 280 'base/bytebuffer.h', 281 'base/byteorder.h', 282 'base/checks.cc', 283 'base/checks.h', 284 'base/common.cc', 285 'base/common.h', 286 'base/constructormagic.h', 287 'base/cpumonitor.cc', 288 'base/cpumonitor.h', 289 'base/crc32.cc', 290 'base/crc32.h', 291 'base/criticalsection.h', 292 'base/cryptstring.h', 293 'base/diskcache.cc', 294 'base/diskcache.h', 295 'base/event.cc', 296 'base/event.h', 297 'base/filelock.cc', 298 'base/filelock.h', 299 'base/fileutils.cc', 300 'base/fileutils.h', 301 'base/fileutils_mock.h', 302 'base/firewallsocketserver.cc', 303 'base/firewallsocketserver.h', 304 'base/flags.cc', 305 'base/flags.h', 306 'base/gunit_prod.h', 307 'base/helpers.cc', 308 'base/helpers.h', 309 'base/httpbase.cc', 310 'base/httpbase.h', 311 'base/httpclient.cc', 312 'base/httpclient.h', 313 'base/httpcommon-inl.h', 314 'base/httpcommon.cc', 315 'base/httpcommon.h', 316 'base/httprequest.cc', 317 'base/httprequest.h', 318 'base/httpserver.cc', 319 'base/httpserver.h', 320 'base/ifaddrs-android.cc', 321 'base/ifaddrs-android.h', 322 'base/ipaddress.cc', 323 'base/ipaddress.h', 324 'base/json.cc', 325 'base/json.h', 326 'base/linked_ptr.h', 327 'base/linuxfdwalk.h', 328 'base/logging.cc', 329 'base/logging.h', 330 'base/maccocoathreadhelper.h', 331 'base/maccocoathreadhelper.mm', 332 'base/mathutils.h', 333 'base/md5.cc', 334 'base/md5.h', 335 'base/md5digest.h', 336 'base/messagedigest.cc', 337 'base/messagedigest.h', 338 'base/messagehandler.cc', 339 'base/messagehandler.h', 340 'base/messagequeue.cc', 341 'base/messagequeue.h', 342 'base/multipart.cc', 343 'base/multipart.h', 344 'base/natserver.cc', 345 'base/natserver.h', 346 'base/natsocketfactory.cc', 347 'base/natsocketfactory.h', 348 'base/nattypes.cc', 349 'base/nattypes.h', 350 'base/nethelpers.cc', 351 'base/nethelpers.h', 352 'base/network.cc', 353 'base/network.h', 354 'base/nssidentity.cc', 355 'base/nssidentity.h', 356 'base/nssstreamadapter.cc', 357 'base/nssstreamadapter.h', 358 'base/nullsocketserver.h', 359 'base/optionsfile.cc', 360 'base/optionsfile.h', 361 'base/pathutils.cc', 362 'base/pathutils.h', 363 'base/physicalsocketserver.cc', 364 'base/physicalsocketserver.h', 365 'base/profiler.cc', 366 'base/profiler.h', 367 'base/proxydetect.cc', 368 'base/proxydetect.h', 369 'base/proxyinfo.cc', 370 'base/proxyinfo.h', 371 'base/proxyserver.cc', 372 'base/proxyserver.h', 373 'base/ratelimiter.cc', 374 'base/ratelimiter.h', 375 'base/ratetracker.cc', 376 'base/ratetracker.h', 377 'base/refcount.h', 378 'base/referencecountedsingletonfactory.h', 379 'base/rollingaccumulator.h', 380 'base/scoped_autorelease_pool.h', 381 'base/scoped_ptr.h', 382 'base/scoped_ref_ptr.h', 383 'base/sec_buffer.h', 384 'base/sha1.cc', 385 'base/sha1.h', 386 'base/sha1digest.h', 387 'base/sharedexclusivelock.cc', 388 'base/sharedexclusivelock.h', 389 'base/signalthread.cc', 390 'base/signalthread.h', 391 'base/sigslot.h', 392 'base/sigslotrepeater.h', 393 'base/socket.h', 394 'base/socketadapters.cc', 395 'base/socketadapters.h', 396 'base/socketaddress.cc', 397 'base/socketaddress.h', 398 'base/socketaddresspair.cc', 399 'base/socketaddresspair.h', 400 'base/socketfactory.h', 401 'base/socketpool.cc', 402 'base/socketpool.h', 403 'base/socketserver.h', 404 'base/socketstream.cc', 405 'base/socketstream.h', 406 'base/ssladapter.cc', 407 'base/ssladapter.h', 408 'base/sslconfig.h', 409 'base/sslfingerprint.h', 410 'base/sslidentity.cc', 411 'base/sslidentity.h', 412 'base/sslroots.h', 413 'base/sslsocketfactory.cc', 414 'base/sslsocketfactory.h', 415 'base/sslstreamadapter.cc', 416 'base/sslstreamadapter.h', 417 'base/sslstreamadapterhelper.cc', 418 'base/sslstreamadapterhelper.h', 419 'base/stream.cc', 420 'base/stream.h', 421 'base/stringdigest.h', 422 'base/stringencode.cc', 423 'base/stringencode.h', 424 'base/stringutils.cc', 425 'base/stringutils.h', 426 'base/systeminfo.cc', 427 'base/systeminfo.h', 428 'base/task.cc', 429 'base/task.h', 430 'base/taskparent.cc', 431 'base/taskparent.h', 432 'base/taskrunner.cc', 433 'base/taskrunner.h', 434 'base/testclient.cc', 435 'base/testclient.h', 436 'base/thread.cc', 437 'base/thread.h', 438 'base/timeutils.cc', 439 'base/timeutils.h', 440 'base/timing.cc', 441 'base/timing.h', 442 'base/transformadapter.cc', 443 'base/transformadapter.h', 444 'base/urlencode.cc', 445 'base/urlencode.h', 446 'base/versionparsing.cc', 447 'base/versionparsing.h', 448 'base/virtualsocketserver.cc', 449 'base/virtualsocketserver.h', 450 'base/window.h', 451 'base/windowpicker.h', 452 'base/windowpickerfactory.h', 453 'base/worker.cc', 454 'base/worker.h', 455 'xmllite/qname.cc', 456 'xmllite/qname.h', 457 'xmllite/xmlbuilder.cc', 458 'xmllite/xmlbuilder.h', 459 'xmllite/xmlconstants.cc', 460 'xmllite/xmlconstants.h', 461 'xmllite/xmlelement.cc', 462 'xmllite/xmlelement.h', 463 'xmllite/xmlnsstack.cc', 464 'xmllite/xmlnsstack.h', 465 'xmllite/xmlparser.cc', 466 'xmllite/xmlparser.h', 467 'xmllite/xmlprinter.cc', 468 'xmllite/xmlprinter.h', 469 'xmpp/asyncsocket.h', 470 'xmpp/chatroommodule.h', 471 'xmpp/chatroommoduleimpl.cc', 472 'xmpp/constants.cc', 473 'xmpp/constants.h', 474 'xmpp/discoitemsquerytask.cc', 475 'xmpp/discoitemsquerytask.h', 476 'xmpp/hangoutpubsubclient.cc', 477 'xmpp/hangoutpubsubclient.h', 478 'xmpp/iqtask.cc', 479 'xmpp/iqtask.h', 480 'xmpp/jid.cc', 481 'xmpp/jid.h', 482 'xmpp/module.h', 483 'xmpp/moduleimpl.cc', 484 'xmpp/moduleimpl.h', 485 'xmpp/mucroomconfigtask.cc', 486 'xmpp/mucroomconfigtask.h', 487 'xmpp/mucroomdiscoverytask.cc', 488 'xmpp/mucroomdiscoverytask.h', 489 'xmpp/mucroomlookuptask.cc', 490 'xmpp/mucroomlookuptask.h', 491 'xmpp/mucroomuniquehangoutidtask.cc', 492 'xmpp/mucroomuniquehangoutidtask.h', 493 'xmpp/pingtask.cc', 494 'xmpp/pingtask.h', 495 'xmpp/plainsaslhandler.h', 496 'xmpp/presenceouttask.cc', 497 'xmpp/presenceouttask.h', 498 'xmpp/presencereceivetask.cc', 499 'xmpp/presencereceivetask.h', 500 'xmpp/presencestatus.cc', 501 'xmpp/presencestatus.h', 502 'xmpp/prexmppauth.h', 503 'xmpp/pubsub_task.cc', 504 'xmpp/pubsub_task.h', 505 'xmpp/pubsubclient.cc', 506 'xmpp/pubsubclient.h', 507 'xmpp/pubsubtasks.cc', 508 'xmpp/pubsubtasks.h', 509 'xmpp/receivetask.cc', 510 'xmpp/receivetask.h', 511 'xmpp/rostermodule.h', 512 'xmpp/rostermoduleimpl.cc', 513 'xmpp/rostermoduleimpl.h', 514 'xmpp/saslcookiemechanism.h', 515 'xmpp/saslhandler.h', 516 'xmpp/saslmechanism.cc', 517 'xmpp/saslmechanism.h', 518 'xmpp/saslplainmechanism.h', 519 'xmpp/xmppauth.cc', 520 'xmpp/xmppauth.h', 521 'xmpp/xmppclient.cc', 522 'xmpp/xmppclient.h', 523 'xmpp/xmppclientsettings.h', 524 'xmpp/xmppengine.h', 525 'xmpp/xmppengineimpl.cc', 526 'xmpp/xmppengineimpl.h', 527 'xmpp/xmppengineimpl_iq.cc', 528 'xmpp/xmpplogintask.cc', 529 'xmpp/xmpplogintask.h', 530 'xmpp/xmpppump.cc', 531 'xmpp/xmpppump.h', 532 'xmpp/xmppsocket.cc', 533 'xmpp/xmppsocket.h', 534 'xmpp/xmppstanzaparser.cc', 535 'xmpp/xmppstanzaparser.h', 536 'xmpp/xmpptask.cc', 537 'xmpp/xmpptask.h', 538 'xmpp/xmppthread.cc', 539 'xmpp/xmppthread.h', 540 ], 541 'conditions': [ 542 ['OS=="mac" or OS=="ios" or OS=="win"', { 543 'dependencies': [ 544 # The chromium copy of nss should NOT be used on platforms that 545 # have NSS as system libraries, such as linux. 546 '<(DEPTH)/third_party/nss/nss.gyp:nss', 547 ], 548 }], 549 ['OS=="android"', { 550 'sources': [ 551 'base/ifaddrs-android.cc', 552 ], 553 'link_settings': { 554 'libraries': [ 555 '-llog', 556 '-lGLESv2', 557 ], 558 }, 559 }], 560 ['OS=="linux" or OS=="android"', { 561 'sources': [ 562 'base/linux.cc', 563 'base/linux.h', 564 ], 565 }], 566 ['OS=="linux"', { 567 'sources': [ 568 'base/dbus.cc', 569 'base/dbus.h', 570 'base/libdbusglibsymboltable.cc', 571 'base/libdbusglibsymboltable.h', 572 'base/linuxfdwalk.c', 573 'base/linuxwindowpicker.cc', 574 'base/linuxwindowpicker.h', 575 ], 576 'link_settings': { 577 'libraries': [ 578 '-lcrypto', 579 '-ldl', 580 '-lrt', 581 '-lXext', 582 '-lX11', 583 '-lXcomposite', 584 '-lXrender', 585 '<!@(<(pkg-config) --libs-only-l nss | sed -e "s/-lssl3//")', 586 ], 587 }, 588 'cflags': [ 589 '<!@(<(pkg-config) --cflags nss)', 590 ], 591 'ldflags': [ 592 '<!@(<(pkg-config) --libs-only-L --libs-only-other nss)', 593 ], 594 }], 595 ['OS=="mac"', { 596 'sources': [ 597 'base/macasyncsocket.cc', 598 'base/macasyncsocket.h', 599 'base/maccocoasocketserver.h', 600 'base/maccocoasocketserver.mm', 601 'base/macconversion.cc', 602 'base/macconversion.h', 603 'base/macsocketserver.cc', 604 'base/macsocketserver.h', 605 'base/macutils.cc', 606 'base/macutils.h', 607 'base/macwindowpicker.cc', 608 'base/macwindowpicker.h', 609 'base/scoped_autorelease_pool.mm', 610 ], 611 'link_settings': { 612 'libraries': [ 613 '$(SDKROOT)/usr/lib/libcrypto.dylib', 614 '$(SDKROOT)/usr/lib/libssl.dylib', 615 ], 616 }, 617 'all_dependent_settings': { 618 'link_settings': { 619 'xcode_settings': { 620 'OTHER_LDFLAGS': [ 621 '-framework Cocoa', 622 '-framework Foundation', 623 '-framework IOKit', 624 '-framework Security', 625 '-framework SystemConfiguration', 626 ], 627 }, 628 }, 629 }, 630 'conditions': [ 631 ['target_arch=="ia32"', { 632 'all_dependent_settings': { 633 'link_settings': { 634 'xcode_settings': { 635 'OTHER_LDFLAGS': [ 636 '-framework Carbon', 637 ], 638 }, 639 }, 640 }, 641 }], 642 ], 643 }], 644 ['OS=="ios"', { 645 'sources': [ 646 'base/scoped_autorelease_pool.mm', 647 ], 648 'dependencies': [ 649 '../net/third_party/nss/ssl.gyp:libssl', 650 ], 651 'all_dependent_settings': { 652 'xcode_settings': { 653 'OTHER_LDFLAGS': [ 654 '-framework Foundation', 655 '-framework IOKit', 656 '-framework Security', 657 '-framework SystemConfiguration', 658 '-framework UIKit', 659 ], 660 }, 661 }, 662 }], 663 ['OS=="win"', { 664 'sources': [ 665 'base/diskcache_win32.cc', 666 'base/diskcache_win32.h', 667 'base/schanneladapter.cc', 668 'base/schanneladapter.h', 669 'base/win32.cc', 670 'base/win32.h', 671 'base/win32filesystem.cc', 672 'base/win32filesystem.h', 673 'base/win32regkey.cc', 674 'base/win32regkey.h', 675 'base/win32securityerrors.cc', 676 'base/win32socketinit.cc', 677 'base/win32socketinit.h', 678 'base/win32socketserver.cc', 679 'base/win32socketserver.h', 680 'base/win32window.cc', 681 'base/win32window.h', 682 'base/win32windowpicker.cc', 683 'base/win32windowpicker.h', 684 'base/winfirewall.cc', 685 'base/winfirewall.h', 686 'base/winping.cc', 687 'base/winping.h', 688 ], 689 'link_settings': { 690 'libraries': [ 691 '-lcrypt32.lib', 692 '-liphlpapi.lib', 693 '-lsecur32.lib', 694 ], 695 }, 696 # Suppress warnings about WIN32_LEAN_AND_MEAN. 697 'msvs_disabled_warnings': [4005], 698 }], 699 ['os_posix==1', { 700 'sources': [ 701 'base/latebindingsymboltable.cc', 702 'base/latebindingsymboltable.h', 703 'base/posix.cc', 704 'base/posix.h', 705 'base/unixfilesystem.cc', 706 'base/unixfilesystem.h', 707 ], 708 'conditions': [ 709 ['OS=="linux" or OS=="android"', { 710 'dependencies': [ 711 '<(DEPTH)/third_party/openssl/openssl.gyp:openssl', 712 ], 713 }], 714 ['OS!="ios"', { 715 'sources': [ 716 'base/openssladapter.cc', 717 'base/openssladapter.h', 718 'base/openssldigest.cc', 719 'base/openssldigest.h', 720 'base/opensslidentity.cc', 721 'base/opensslidentity.h', 722 'base/opensslstreamadapter.cc', 723 'base/opensslstreamadapter.h', 724 ], 725 }], 726 ], 727 }], 728 ], # conditions 729 }, # target libjingle 730 { 731 'target_name': 'libjingle_sound', 732 'type': 'static_library', 733 'dependencies': [ 734 'libjingle', 735 ], 736 'sources': [ 737 'sound/automaticallychosensoundsystem.h', 738 'sound/nullsoundsystem.cc', 739 'sound/nullsoundsystem.h', 740 'sound/nullsoundsystemfactory.cc', 741 'sound/nullsoundsystemfactory.h', 742 'sound/platformsoundsystem.cc', 743 'sound/platformsoundsystem.h', 744 'sound/platformsoundsystemfactory.cc', 745 'sound/platformsoundsystemfactory.h', 746 'sound/sounddevicelocator.h', 747 'sound/soundinputstreaminterface.h', 748 'sound/soundoutputstreaminterface.h', 749 'sound/soundsystemfactory.h', 750 'sound/soundsysteminterface.cc', 751 'sound/soundsysteminterface.h', 752 'sound/soundsystemproxy.cc', 753 'sound/soundsystemproxy.h', 754 ], 755 'conditions': [ 756 ['OS=="linux"', { 757 'sources': [ 758 'sound/alsasoundsystem.cc', 759 'sound/alsasoundsystem.h', 760 'sound/alsasymboltable.cc', 761 'sound/alsasymboltable.h', 762 'sound/linuxsoundsystem.cc', 763 'sound/linuxsoundsystem.h', 764 'sound/pulseaudiosoundsystem.cc', 765 'sound/pulseaudiosoundsystem.h', 766 'sound/pulseaudiosymboltable.cc', 767 'sound/pulseaudiosymboltable.h', 768 ], 769 }], 770 ], 771 }, # target libjingle_sound 772 { 773 'target_name': 'libjingle_media', 774 'type': 'static_library', 775 'dependencies': [ 776 '<(DEPTH)/third_party/libyuv/libyuv.gyp:libyuv', 777 '<(webrtc_root)/modules/modules.gyp:video_capture_module', 778 '<(webrtc_root)/modules/modules.gyp:video_render_module', 779 '<(webrtc_root)/video_engine/video_engine.gyp:video_engine_core', 780 '<(webrtc_root)/voice_engine/voice_engine.gyp:voice_engine', 781 '<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers', 782 'libjingle', 783 'libjingle_sound', 784 ], 785 'direct_dependent_settings': { 786 'include_dirs': [ 787 '<(DEPTH)/third_party/libyuv/include', 788 ], 789 }, 790 'sources': [ 791 'media/base/audioframe.h', 792 'media/base/audiorenderer.h', 793 'media/base/capturemanager.cc', 794 'media/base/capturemanager.h', 795 'media/base/capturerenderadapter.cc', 796 'media/base/capturerenderadapter.h', 797 'media/base/codec.cc', 798 'media/base/codec.h', 799 'media/base/constants.cc', 800 'media/base/constants.h', 801 'media/base/cpuid.cc', 802 'media/base/cpuid.h', 803 'media/base/cryptoparams.h', 804 'media/base/filemediaengine.cc', 805 'media/base/filemediaengine.h', 806 'media/base/hybriddataengine.h', 807 'media/base/hybridvideoengine.cc', 808 'media/base/hybridvideoengine.h', 809 'media/base/mediachannel.h', 810 'media/base/mediacommon.h', 811 'media/base/mediaengine.cc', 812 'media/base/mediaengine.h', 813 'media/base/mutedvideocapturer.cc', 814 'media/base/mutedvideocapturer.h', 815 'media/base/rtpdataengine.cc', 816 'media/base/rtpdataengine.h', 817 'media/base/rtpdump.cc', 818 'media/base/rtpdump.h', 819 'media/base/rtputils.cc', 820 'media/base/rtputils.h', 821 'media/base/screencastid.h', 822 'media/base/streamparams.cc', 823 'media/base/streamparams.h', 824 'media/base/videoadapter.cc', 825 'media/base/videoadapter.h', 826 'media/base/videocapturer.cc', 827 'media/base/videocapturer.h', 828 'media/base/videocommon.cc', 829 'media/base/videocommon.h', 830 'media/base/videoframe.cc', 831 'media/base/videoframe.h', 832 'media/base/videoprocessor.h', 833 'media/base/videorenderer.h', 834 'media/base/voiceprocessor.h', 835 'media/devices/deviceinfo.h', 836 'media/devices/devicemanager.cc', 837 'media/devices/devicemanager.h', 838 'media/devices/dummydevicemanager.h', 839 'media/devices/filevideocapturer.cc', 840 'media/devices/filevideocapturer.h', 841 'media/devices/videorendererfactory.h', 842 'media/other/linphonemediaengine.h', 843 # TODO(ronghuawu): Enable when SCTP is ready. 844 # 'media/sctp/sctpdataengine.cc', 845 # 'media/sctp/sctpdataengine.h', 846 'media/sctp/sctputils.cc', 847 'media/sctp/sctputils.h', 848 'media/webrtc/webrtccommon.h', 849 'media/webrtc/webrtcexport.h', 850 'media/webrtc/webrtcmediaengine.h', 851 'media/webrtc/webrtcpassthroughrender.cc', 852 'media/webrtc/webrtcpassthroughrender.h', 853 'media/webrtc/webrtctexturevideoframe.cc', 854 'media/webrtc/webrtctexturevideoframe.h', 855 'media/webrtc/webrtcvideocapturer.cc', 856 'media/webrtc/webrtcvideocapturer.h', 857 'media/webrtc/webrtcvideodecoderfactory.h', 858 'media/webrtc/webrtcvideoencoderfactory.h', 859 'media/webrtc/webrtcvideoengine.cc', 860 'media/webrtc/webrtcvideoengine.h', 861 'media/webrtc/webrtcvideoframe.cc', 862 'media/webrtc/webrtcvideoframe.h', 863 'media/webrtc/webrtcvie.h', 864 'media/webrtc/webrtcvoe.h', 865 'media/webrtc/webrtcvoiceengine.cc', 866 'media/webrtc/webrtcvoiceengine.h', 867 ], 868 'conditions': [ 869 ['OS=="linux"', { 870 'sources': [ 871 'media/devices/gtkvideorenderer.cc', 872 'media/devices/gtkvideorenderer.h', 873 'media/devices/libudevsymboltable.cc', 874 'media/devices/libudevsymboltable.h', 875 'media/devices/linuxdeviceinfo.cc', 876 'media/devices/linuxdevicemanager.cc', 877 'media/devices/linuxdevicemanager.h', 878 'media/devices/v4llookup.cc', 879 'media/devices/v4llookup.h', 880 ], 881 'include_dirs': [ 882 'third_party/libudev' 883 ], 884 'cflags': [ 885 '<!@(pkg-config --cflags gobject-2.0 gthread-2.0 gtk+-2.0)', 886 ], 887 'libraries': [ 888 '-lrt', 889 '-lXext', 890 '-lX11', 891 ], 892 }], 893 ['OS=="win"', { 894 'sources': [ 895 'media/devices/gdivideorenderer.cc', 896 'media/devices/gdivideorenderer.h', 897 'media/devices/win32deviceinfo.cc', 898 'media/devices/win32devicemanager.cc', 899 'media/devices/win32devicemanager.h', 900 ], 901 'msvs_settings': { 902 'VCLibrarianTool': { 903 'AdditionalDependencies': [ 904 'd3d9.lib', 905 'gdi32.lib', 906 'strmiids.lib', 907 'winmm.lib', 908 ], 909 }, 910 }, 911 }], 912 ['OS=="mac"', { 913 'sources': [ 914 'media/devices/macdeviceinfo.cc', 915 'media/devices/macdevicemanager.cc', 916 'media/devices/macdevicemanager.h', 917 'media/devices/macdevicemanagermm.mm', 918 ], 919 'conditions': [ 920 ['target_arch=="ia32"', { 921 'sources': [ 922 'media/devices/carbonvideorenderer.cc', 923 'media/devices/carbonvideorenderer.h', 924 ], 925 'link_settings': { 926 'xcode_settings': { 927 'OTHER_LDFLAGS': [ 928 '-framework Carbon', 929 ], 930 }, 931 }, 932 }], 933 ], 934 'xcode_settings': { 935 'WARNING_CFLAGS': [ 936 # TODO(ronghuawu): Update macdevicemanager.cc to stop using 937 # deprecated functions and remove this flag. 938 '-Wno-deprecated-declarations', 939 ], 940 }, 941 'link_settings': { 942 'xcode_settings': { 943 'OTHER_LDFLAGS': [ 944 '-framework Cocoa', 945 '-framework CoreAudio', 946 '-framework CoreVideo', 947 '-framework OpenGL', 948 '-framework QTKit', 949 ], 950 }, 951 }, 952 }], 953 ['OS=="ios"', { 954 'sources': [ 955 'media/devices/iosdeviceinfo.cc', 956 'media/devices/mobiledevicemanager.cc', 957 ], 958 'include_dirs': [ 959 # TODO(sjlee) Remove when vp8 is building for iOS. vp8 pulls in 960 # libjpeg which pulls in libyuv which currently disabled. 961 '../third_party/libyuv/include', 962 ], 963 }], 964 ['OS=="android"', { 965 'sources': [ 966 'media/devices/mobiledevicemanager.cc', 967 ], 968 }], 969 ], 970 }, # target libjingle_media 971 { 972 'target_name': 'libjingle_p2p', 973 'type': 'static_library', 974 'dependencies': [ 975 '<(DEPTH)/third_party/libsrtp/libsrtp.gyp:libsrtp', 976 'libjingle', 977 'libjingle_media', 978 ], 979 'include_dirs': [ 980 '<(DEPTH)/testing/gtest/include', 981 ], 982 'direct_dependent_settings': { 983 'include_dirs': [ 984 '<(DEPTH)/testing/gtest/include', 985 ], 986 }, 987 'defines': [ 988 # TODO(ronghuawu): enable SCTP when it's ready. 989 # 'HAVE_SCTP', 990 ], 991 'sources': [ 992 'p2p/base/asyncstuntcpsocket.cc', 993 'p2p/base/asyncstuntcpsocket.h', 994 'p2p/base/basicpacketsocketfactory.cc', 995 'p2p/base/basicpacketsocketfactory.h', 996 'p2p/base/candidate.h', 997 'p2p/base/common.h', 998 'p2p/base/constants.cc', 999 'p2p/base/constants.h', 1000 'p2p/base/dtlstransportchannel.cc', 1001 'p2p/base/dtlstransportchannel.h', 1002 'p2p/base/p2ptransport.cc', 1003 'p2p/base/p2ptransport.h', 1004 'p2p/base/p2ptransportchannel.cc', 1005 'p2p/base/p2ptransportchannel.h', 1006 'p2p/base/packetsocketfactory.h', 1007 'p2p/base/parsing.cc', 1008 'p2p/base/parsing.h', 1009 'p2p/base/port.cc', 1010 'p2p/base/port.h', 1011 'p2p/base/portallocator.cc', 1012 'p2p/base/portallocator.h', 1013 'p2p/base/portallocatorsessionproxy.cc', 1014 'p2p/base/portallocatorsessionproxy.h', 1015 'p2p/base/portinterface.h', 1016 'p2p/base/portproxy.cc', 1017 'p2p/base/portproxy.h', 1018 'p2p/base/pseudotcp.cc', 1019 'p2p/base/pseudotcp.h', 1020 'p2p/base/rawtransport.cc', 1021 'p2p/base/rawtransport.h', 1022 'p2p/base/rawtransportchannel.cc', 1023 'p2p/base/rawtransportchannel.h', 1024 'p2p/base/relayport.cc', 1025 'p2p/base/relayport.h', 1026 'p2p/base/relayserver.cc', 1027 'p2p/base/relayserver.h', 1028 'p2p/base/session.cc', 1029 'p2p/base/session.h', 1030 'p2p/base/sessionclient.h', 1031 'p2p/base/sessiondescription.cc', 1032 'p2p/base/sessiondescription.h', 1033 'p2p/base/sessionid.h', 1034 'p2p/base/sessionmanager.cc', 1035 'p2p/base/sessionmanager.h', 1036 'p2p/base/sessionmessages.cc', 1037 'p2p/base/sessionmessages.h', 1038 'p2p/base/stun.cc', 1039 'p2p/base/stun.h', 1040 'p2p/base/stunport.cc', 1041 'p2p/base/stunport.h', 1042 'p2p/base/stunrequest.cc', 1043 'p2p/base/stunrequest.h', 1044 'p2p/base/stunserver.cc', 1045 'p2p/base/stunserver.h', 1046 'p2p/base/tcpport.cc', 1047 'p2p/base/tcpport.h', 1048 'p2p/base/transport.cc', 1049 'p2p/base/transport.h', 1050 'p2p/base/transportchannel.cc', 1051 'p2p/base/transportchannel.h', 1052 'p2p/base/transportchannelimpl.h', 1053 'p2p/base/transportchannelproxy.cc', 1054 'p2p/base/transportchannelproxy.h', 1055 'p2p/base/transportdescription.cc', 1056 'p2p/base/transportdescription.h', 1057 'p2p/base/transportdescriptionfactory.cc', 1058 'p2p/base/transportdescriptionfactory.h', 1059 'p2p/base/transportinfo.h', 1060 'p2p/base/turnport.cc', 1061 'p2p/base/turnport.h', 1062 'p2p/base/turnserver.cc', 1063 'p2p/base/turnserver.h', 1064 'p2p/base/udpport.h', 1065 'p2p/client/autoportallocator.h', 1066 'p2p/client/basicportallocator.cc', 1067 'p2p/client/basicportallocator.h', 1068 'p2p/client/connectivitychecker.cc', 1069 'p2p/client/connectivitychecker.h', 1070 'p2p/client/httpportallocator.cc', 1071 'p2p/client/httpportallocator.h', 1072 'p2p/client/sessionmanagertask.h', 1073 'p2p/client/sessionsendtask.h', 1074 'p2p/client/socketmonitor.cc', 1075 'p2p/client/socketmonitor.h', 1076 'session/tunnel/pseudotcpchannel.cc', 1077 'session/tunnel/pseudotcpchannel.h', 1078 'session/tunnel/tunnelsessionclient.cc', 1079 'session/tunnel/tunnelsessionclient.h', 1080 'session/tunnel/securetunnelsessionclient.cc', 1081 'session/tunnel/securetunnelsessionclient.h', 1082 'session/media/audiomonitor.cc', 1083 'session/media/audiomonitor.h', 1084 'session/media/call.cc', 1085 'session/media/call.h', 1086 'session/media/channel.cc', 1087 'session/media/channel.h', 1088 'session/media/channelmanager.cc', 1089 'session/media/channelmanager.h', 1090 'session/media/currentspeakermonitor.cc', 1091 'session/media/currentspeakermonitor.h', 1092 'session/media/mediamessages.cc', 1093 'session/media/mediamessages.h', 1094 'session/media/mediamonitor.cc', 1095 'session/media/mediamonitor.h', 1096 'session/media/mediarecorder.cc', 1097 'session/media/mediarecorder.h', 1098 'session/media/mediasession.cc', 1099 'session/media/mediasession.h', 1100 'session/media/mediasessionclient.cc', 1101 'session/media/mediasessionclient.h', 1102 'session/media/mediasink.h', 1103 'session/media/rtcpmuxfilter.cc', 1104 'session/media/rtcpmuxfilter.h', 1105 'session/media/soundclip.cc', 1106 'session/media/soundclip.h', 1107 'session/media/srtpfilter.cc', 1108 'session/media/srtpfilter.h', 1109 'session/media/ssrcmuxfilter.cc', 1110 'session/media/ssrcmuxfilter.h', 1111 'session/media/typingmonitor.cc', 1112 'session/media/typingmonitor.h', 1113 'session/media/voicechannel.h', 1114 ], 1115 }, # target libjingle_p2p 1116 { 1117 'target_name': 'libjingle_peerconnection', 1118 'type': 'static_library', 1119 'dependencies': [ 1120 'libjingle', 1121 'libjingle_media', 1122 'libjingle_p2p', 1123 ], 1124 'sources': [ 1125 'app/webrtc/audiotrack.cc', 1126 'app/webrtc/audiotrack.h', 1127 'app/webrtc/audiotrackrenderer.cc', 1128 'app/webrtc/audiotrackrenderer.h', 1129 'app/webrtc/datachannel.cc', 1130 'app/webrtc/datachannel.h', 1131 'app/webrtc/datachannelinterface.h', 1132 'app/webrtc/dtmfsender.cc', 1133 'app/webrtc/dtmfsender.h', 1134 'app/webrtc/dtmfsenderinterface.h', 1135 'app/webrtc/fakeportallocatorfactory.h', 1136 'app/webrtc/jsep.h', 1137 'app/webrtc/jsepicecandidate.cc', 1138 'app/webrtc/jsepicecandidate.h', 1139 'app/webrtc/jsepsessiondescription.cc', 1140 'app/webrtc/jsepsessiondescription.h', 1141 'app/webrtc/localaudiosource.cc', 1142 'app/webrtc/localaudiosource.h', 1143 'app/webrtc/mediaconstraintsinterface.cc', 1144 'app/webrtc/mediaconstraintsinterface.h', 1145 'app/webrtc/mediastream.cc', 1146 'app/webrtc/mediastream.h', 1147 'app/webrtc/mediastreamhandler.cc', 1148 'app/webrtc/mediastreamhandler.h', 1149 'app/webrtc/mediastreaminterface.h', 1150 'app/webrtc/mediastreamprovider.h', 1151 'app/webrtc/mediastreamproxy.h', 1152 'app/webrtc/mediastreamsignaling.cc', 1153 'app/webrtc/mediastreamsignaling.h', 1154 'app/webrtc/mediastreamtrack.h', 1155 'app/webrtc/mediastreamtrackproxy.h', 1156 'app/webrtc/notifier.h', 1157 'app/webrtc/peerconnection.cc', 1158 'app/webrtc/peerconnection.h', 1159 'app/webrtc/peerconnectionfactory.cc', 1160 'app/webrtc/peerconnectionfactory.h', 1161 'app/webrtc/peerconnectioninterface.h', 1162 'app/webrtc/peerconnectionproxy.h', 1163 'app/webrtc/portallocatorfactory.cc', 1164 'app/webrtc/portallocatorfactory.h', 1165 'app/webrtc/proxy.h', 1166 'app/webrtc/remotevideocapturer.cc', 1167 'app/webrtc/remotevideocapturer.h', 1168 'app/webrtc/statscollector.cc', 1169 'app/webrtc/statscollector.h', 1170 'app/webrtc/statstypes.h', 1171 'app/webrtc/streamcollection.h', 1172 'app/webrtc/videosource.cc', 1173 'app/webrtc/videosource.h', 1174 'app/webrtc/videosourceinterface.h', 1175 'app/webrtc/videosourceproxy.h', 1176 'app/webrtc/videotrack.cc', 1177 'app/webrtc/videotrack.h', 1178 'app/webrtc/videotrackrenderers.cc', 1179 'app/webrtc/videotrackrenderers.h', 1180 'app/webrtc/webrtcsdp.cc', 1181 'app/webrtc/webrtcsdp.h', 1182 'app/webrtc/webrtcsession.cc', 1183 'app/webrtc/webrtcsession.h', 1184 'app/webrtc/webrtcsessiondescriptionfactory.cc', 1185 'app/webrtc/webrtcsessiondescriptionfactory.h', 1186 ], 1187 }, # target libjingle_peerconnection 1188 ], 1189 } 1190