1# Copyright (c) 2012 The WebRTC Project Authors. All rights reserved. 2# 3# Use of this source code is governed by a BSD-style license 4# that can be found in the LICENSE file in the root of the source 5# tree. An additional intellectual property rights grant can be found 6# in the file PATENTS. All contributing project authors may 7# be found in the AUTHORS file in the root of the source tree. 8{ 9 'includes': [ 10 '../talk/build/common.gypi', 11 ], 12 'targets': [ 13 { 14 'target_name': 'relayserver', 15 'type': 'executable', 16 'dependencies': [ 17 '../talk/libjingle.gyp:libjingle', 18 '../talk/libjingle.gyp:libjingle_p2p', 19 ], 20 'sources': [ 21 'examples/relayserver/relayserver_main.cc', 22 ], 23 }, # target relayserver 24 { 25 'target_name': 'stunserver', 26 'type': 'executable', 27 'dependencies': [ 28 '../talk/libjingle.gyp:libjingle', 29 '../talk/libjingle.gyp:libjingle_p2p', 30 ], 31 'sources': [ 32 'examples/stunserver/stunserver_main.cc', 33 ], 34 }, # target stunserver 35 { 36 'target_name': 'turnserver', 37 'type': 'executable', 38 'dependencies': [ 39 '../talk/libjingle.gyp:libjingle', 40 '../talk/libjingle.gyp:libjingle_p2p', 41 ], 42 'sources': [ 43 'examples/turnserver/turnserver_main.cc', 44 ], 45 }, # target turnserver 46 { 47 'target_name': 'peerconnection_server', 48 'type': 'executable', 49 'sources': [ 50 'examples/peerconnection/server/data_socket.cc', 51 'examples/peerconnection/server/data_socket.h', 52 'examples/peerconnection/server/main.cc', 53 'examples/peerconnection/server/peer_channel.cc', 54 'examples/peerconnection/server/peer_channel.h', 55 'examples/peerconnection/server/utils.cc', 56 'examples/peerconnection/server/utils.h', 57 ], 58 'dependencies': [ 59 '<(webrtc_root)/common.gyp:webrtc_common', 60 '../talk/libjingle.gyp:libjingle', 61 ], 62 # TODO(ronghuawu): crbug.com/167187 fix size_t to int truncations. 63 'msvs_disabled_warnings': [ 4309, ], 64 }, # target peerconnection_server 65 ], 66 'conditions': [ 67 ['OS=="linux" or OS=="win"', { 68 'targets': [ 69 { 70 'target_name': 'peerconnection_client', 71 'type': 'executable', 72 'sources': [ 73 'examples/peerconnection/client/conductor.cc', 74 'examples/peerconnection/client/conductor.h', 75 'examples/peerconnection/client/defaults.cc', 76 'examples/peerconnection/client/defaults.h', 77 'examples/peerconnection/client/peer_connection_client.cc', 78 'examples/peerconnection/client/peer_connection_client.h', 79 ], 80 'dependencies': [ 81 '../talk/libjingle.gyp:libjingle_peerconnection', 82 '<(webrtc_root)/system_wrappers/system_wrappers.gyp:field_trial_default', 83 '<@(libjingle_tests_additional_deps)', 84 ], 85 'conditions': [ 86 ['build_json==1', { 87 'dependencies': [ 88 '<(DEPTH)/third_party/jsoncpp/jsoncpp.gyp:jsoncpp', 89 ], 90 }], 91 # TODO(ronghuawu): Move these files to a win/ directory then they 92 # can be excluded automatically. 93 ['OS=="win"', { 94 'sources': [ 95 'examples/peerconnection/client/flagdefs.h', 96 'examples/peerconnection/client/main.cc', 97 'examples/peerconnection/client/main_wnd.cc', 98 'examples/peerconnection/client/main_wnd.h', 99 ], 100 'msvs_settings': { 101 'VCLinkerTool': { 102 'SubSystem': '2', # Windows 103 }, 104 }, 105 }], # OS=="win" 106 ['OS=="win" and clang==1', { 107 'msvs_settings': { 108 'VCCLCompilerTool': { 109 'AdditionalOptions': [ 110 # Disable warnings failing when compiling with Clang on Windows. 111 # https://bugs.chromium.org/p/webrtc/issues/detail?id=5366 112 '-Wno-reorder', 113 '-Wno-unused-function', 114 ], 115 }, 116 }, 117 }], # OS=="win" and clang==1 118 ['OS=="linux"', { 119 'sources': [ 120 'examples/peerconnection/client/linux/main.cc', 121 'examples/peerconnection/client/linux/main_wnd.cc', 122 'examples/peerconnection/client/linux/main_wnd.h', 123 ], 124 'cflags': [ 125 '<!@(pkg-config --cflags glib-2.0 gobject-2.0 gtk+-2.0)', 126 ], 127 'link_settings': { 128 'ldflags': [ 129 '<!@(pkg-config --libs-only-L --libs-only-other glib-2.0' 130 ' gobject-2.0 gthread-2.0 gtk+-2.0)', 131 ], 132 'libraries': [ 133 '<!@(pkg-config --libs-only-l glib-2.0 gobject-2.0' 134 ' gthread-2.0 gtk+-2.0)', 135 '-lX11', 136 '-lXcomposite', 137 '-lXext', 138 '-lXrender', 139 ], 140 }, 141 }], # OS=="linux" 142 ], # conditions 143 }, # target peerconnection_client 144 ], # targets 145 }], # OS=="linux" or OS=="win" 146 147 ['OS=="ios" or (OS=="mac" and target_arch!="ia32")', { 148 'targets': [ 149 { 150 'target_name': 'apprtc_common', 151 'type': 'static_library', 152 'dependencies': [ 153 '<(webrtc_root)/system_wrappers/system_wrappers.gyp:field_trial_default', 154 '../talk/libjingle.gyp:libjingle_peerconnection_objc', 155 ], 156 'sources': [ 157 'examples/objc/AppRTCDemo/common/ARDUtilities.h', 158 'examples/objc/AppRTCDemo/common/ARDUtilities.m', 159 ], 160 'include_dirs': [ 161 'examples/objc/AppRTCDemo/common', 162 ], 163 'direct_dependent_settings': { 164 'include_dirs': [ 165 'examples/objc/AppRTCDemo/common', 166 ], 167 }, 168 'conditions': [ 169 ['OS=="mac"', { 170 'xcode_settings': { 171 'MACOSX_DEPLOYMENT_TARGET' : '10.8', 172 }, 173 }], 174 ], 175 'link_settings': { 176 'xcode_settings': { 177 'OTHER_LDFLAGS': [ 178 '-framework QuartzCore', 179 ], 180 }, 181 }, 182 }, 183 { 184 'target_name': 'apprtc_signaling', 185 'type': 'static_library', 186 'dependencies': [ 187 'apprtc_common', 188 '../talk/libjingle.gyp:libjingle_peerconnection_objc', 189 'socketrocket', 190 ], 191 'sources': [ 192 'examples/objc/AppRTCDemo/ARDAppClient.h', 193 'examples/objc/AppRTCDemo/ARDAppClient.m', 194 'examples/objc/AppRTCDemo/ARDAppClient+Internal.h', 195 'examples/objc/AppRTCDemo/ARDAppEngineClient.h', 196 'examples/objc/AppRTCDemo/ARDAppEngineClient.m', 197 'examples/objc/AppRTCDemo/ARDBitrateTracker.h', 198 'examples/objc/AppRTCDemo/ARDBitrateTracker.m', 199 'examples/objc/AppRTCDemo/ARDCEODTURNClient.h', 200 'examples/objc/AppRTCDemo/ARDCEODTURNClient.m', 201 'examples/objc/AppRTCDemo/ARDJoinResponse.h', 202 'examples/objc/AppRTCDemo/ARDJoinResponse.m', 203 'examples/objc/AppRTCDemo/ARDJoinResponse+Internal.h', 204 'examples/objc/AppRTCDemo/ARDMessageResponse.h', 205 'examples/objc/AppRTCDemo/ARDMessageResponse.m', 206 'examples/objc/AppRTCDemo/ARDMessageResponse+Internal.h', 207 'examples/objc/AppRTCDemo/ARDRoomServerClient.h', 208 'examples/objc/AppRTCDemo/ARDSDPUtils.h', 209 'examples/objc/AppRTCDemo/ARDSDPUtils.m', 210 'examples/objc/AppRTCDemo/ARDSignalingChannel.h', 211 'examples/objc/AppRTCDemo/ARDSignalingMessage.h', 212 'examples/objc/AppRTCDemo/ARDSignalingMessage.m', 213 'examples/objc/AppRTCDemo/ARDStatsBuilder.h', 214 'examples/objc/AppRTCDemo/ARDStatsBuilder.m', 215 'examples/objc/AppRTCDemo/ARDTURNClient.h', 216 'examples/objc/AppRTCDemo/ARDWebSocketChannel.h', 217 'examples/objc/AppRTCDemo/ARDWebSocketChannel.m', 218 'examples/objc/AppRTCDemo/RTCICECandidate+JSON.h', 219 'examples/objc/AppRTCDemo/RTCICECandidate+JSON.m', 220 'examples/objc/AppRTCDemo/RTCICEServer+JSON.h', 221 'examples/objc/AppRTCDemo/RTCICEServer+JSON.m', 222 'examples/objc/AppRTCDemo/RTCMediaConstraints+JSON.h', 223 'examples/objc/AppRTCDemo/RTCMediaConstraints+JSON.m', 224 'examples/objc/AppRTCDemo/RTCSessionDescription+JSON.h', 225 'examples/objc/AppRTCDemo/RTCSessionDescription+JSON.m', 226 ], 227 'include_dirs': [ 228 'examples/objc/AppRTCDemo', 229 ], 230 'direct_dependent_settings': { 231 'include_dirs': [ 232 'examples/objc/AppRTCDemo', 233 ], 234 }, 235 'export_dependent_settings': [ 236 '../talk/libjingle.gyp:libjingle_peerconnection_objc', 237 ], 238 'conditions': [ 239 ['OS=="mac"', { 240 'xcode_settings': { 241 'MACOSX_DEPLOYMENT_TARGET' : '10.8', 242 }, 243 }], 244 ], 245 }, 246 { 247 'target_name': 'AppRTCDemo', 248 'type': 'executable', 249 'product_name': 'AppRTCDemo', 250 'mac_bundle': 1, 251 'dependencies': [ 252 'apprtc_common', 253 'apprtc_signaling', 254 ], 255 'conditions': [ 256 ['OS=="ios"', { 257 'mac_bundle_resources': [ 258 'examples/objc/AppRTCDemo/ios/resources/iPhone5@2x.png', 259 'examples/objc/AppRTCDemo/ios/resources/iPhone6@2x.png', 260 'examples/objc/AppRTCDemo/ios/resources/iPhone6p@3x.png', 261 'examples/objc/AppRTCDemo/ios/resources/Roboto-Regular.ttf', 262 'examples/objc/AppRTCDemo/ios/resources/ic_call_end_black_24dp.png', 263 'examples/objc/AppRTCDemo/ios/resources/ic_call_end_black_24dp@2x.png', 264 'examples/objc/AppRTCDemo/ios/resources/ic_clear_black_24dp.png', 265 'examples/objc/AppRTCDemo/ios/resources/ic_clear_black_24dp@2x.png', 266 'examples/objc/AppRTCDemo/ios/resources/ic_switch_video_black_24dp.png', 267 'examples/objc/AppRTCDemo/ios/resources/ic_switch_video_black_24dp@2x.png', 268 'examples/objc/Icon.png', 269 ], 270 'sources': [ 271 'examples/objc/AppRTCDemo/ios/ARDAppDelegate.h', 272 'examples/objc/AppRTCDemo/ios/ARDAppDelegate.m', 273 'examples/objc/AppRTCDemo/ios/ARDMainView.h', 274 'examples/objc/AppRTCDemo/ios/ARDMainView.m', 275 'examples/objc/AppRTCDemo/ios/ARDMainViewController.h', 276 'examples/objc/AppRTCDemo/ios/ARDMainViewController.m', 277 'examples/objc/AppRTCDemo/ios/ARDStatsView.h', 278 'examples/objc/AppRTCDemo/ios/ARDStatsView.m', 279 'examples/objc/AppRTCDemo/ios/ARDVideoCallView.h', 280 'examples/objc/AppRTCDemo/ios/ARDVideoCallView.m', 281 'examples/objc/AppRTCDemo/ios/ARDVideoCallViewController.h', 282 'examples/objc/AppRTCDemo/ios/ARDVideoCallViewController.m', 283 'examples/objc/AppRTCDemo/ios/AppRTCDemo-Prefix.pch', 284 'examples/objc/AppRTCDemo/ios/UIImage+ARDUtilities.h', 285 'examples/objc/AppRTCDemo/ios/UIImage+ARDUtilities.m', 286 'examples/objc/AppRTCDemo/ios/main.m', 287 ], 288 'xcode_settings': { 289 'INFOPLIST_FILE': 'examples/objc/AppRTCDemo/ios/Info.plist', 290 }, 291 }], 292 ['OS=="mac"', { 293 'sources': [ 294 'examples/objc/AppRTCDemo/mac/APPRTCAppDelegate.h', 295 'examples/objc/AppRTCDemo/mac/APPRTCAppDelegate.m', 296 'examples/objc/AppRTCDemo/mac/APPRTCViewController.h', 297 'examples/objc/AppRTCDemo/mac/APPRTCViewController.m', 298 'examples/objc/AppRTCDemo/mac/main.m', 299 ], 300 'xcode_settings': { 301 'CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS': 'NO', 302 'INFOPLIST_FILE': 'examples/objc/AppRTCDemo/mac/Info.plist', 303 'MACOSX_DEPLOYMENT_TARGET' : '10.8', 304 'OTHER_LDFLAGS': [ 305 '-framework AVFoundation', 306 ], 307 }, 308 }], 309 ['target_arch=="ia32"', { 310 'dependencies' : [ 311 '<(DEPTH)/testing/iossim/iossim.gyp:iossim#host', 312 ], 313 }], 314 ], 315 }, # target AppRTCDemo 316 { 317 # TODO(tkchin): move this into the real third party location and 318 # have it mirrored on chrome infra. 319 'target_name': 'socketrocket', 320 'type': 'static_library', 321 'sources': [ 322 'examples/objc/AppRTCDemo/third_party/SocketRocket/SRWebSocket.h', 323 'examples/objc/AppRTCDemo/third_party/SocketRocket/SRWebSocket.m', 324 ], 325 'conditions': [ 326 ['OS=="mac"', { 327 'xcode_settings': { 328 # SocketRocket autosynthesizes some properties. Disable the 329 # warning so we can compile successfully. 330 'CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS': 'NO', 331 'MACOSX_DEPLOYMENT_TARGET' : '10.8', 332 # SRWebSocket.m uses code with partial availability. 333 # https://code.google.com/p/webrtc/issues/detail?id=4695 334 'WARNING_CFLAGS!': ['-Wpartial-availability'], 335 }, 336 }], 337 ], 338 'direct_dependent_settings': { 339 'include_dirs': [ 340 'examples/objc/AppRTCDemo/third_party/SocketRocket', 341 ], 342 }, 343 'xcode_settings': { 344 'CLANG_ENABLE_OBJC_ARC': 'YES', 345 'WARNING_CFLAGS': [ 346 '-Wno-deprecated-declarations', 347 '-Wno-nonnull', 348 ], 349 }, 350 'link_settings': { 351 'xcode_settings': { 352 'OTHER_LDFLAGS': [ 353 '-framework CFNetwork', 354 '-licucore', 355 ], 356 }, 357 } 358 }, # target socketrocket 359 ], # targets 360 }], # OS=="ios" or (OS=="mac" and target_arch!="ia32") 361 362 ['OS=="android"', { 363 'targets': [ 364 { 365 'target_name': 'AppRTCDemo', 366 'type': 'none', 367 'dependencies': [ 368 '../talk/libjingle.gyp:libjingle_peerconnection_java', 369 ], 370 'variables': { 371 'apk_name': 'AppRTCDemo', 372 'java_in_dir': 'examples/androidapp', 373 'has_java_resources': 1, 374 'resource_dir': 'examples/androidapp/res', 375 'R_package': 'org.appspot.apprtc', 376 'R_package_relpath': 'org/appspot/apprtc', 377 'input_jars_paths': [ 378 'examples/androidapp/third_party/autobanh/autobanh.jar', 379 ], 380 'library_dexed_jars_paths': [ 381 'examples/androidapp/third_party/autobanh/autobanh.jar', 382 ], 383 'native_lib_target': 'libjingle_peerconnection_so', 384 'add_to_dependents_classpaths':1, 385 }, 386 'includes': [ '../build/java_apk.gypi' ], 387 }, # target AppRTCDemo 388 389 { 390 # AppRTCDemo creates a .jar as a side effect. Any java targets 391 # that need that .jar in their classpath should depend on this target, 392 # AppRTCDemo_apk. Dependents of AppRTCDemo_apk receive its 393 # jar path in the variable 'apk_output_jar_path'. 394 # This target should only be used by targets which instrument 395 # AppRTCDemo_apk. 396 'target_name': 'AppRTCDemo_apk', 397 'type': 'none', 398 'dependencies': [ 399 'AppRTCDemo', 400 ], 401 'includes': [ '../build/apk_fake_jar.gypi' ], 402 }, # target AppRTCDemo_apk 403 404 { 405 'target_name': 'AppRTCDemoTest', 406 'type': 'none', 407 'dependencies': [ 408 'AppRTCDemo_apk', 409 ], 410 'variables': { 411 'apk_name': 'AppRTCDemoTest', 412 'java_in_dir': 'examples/androidtests', 413 'is_test_apk': 1, 414 }, 415 'includes': [ '../build/java_apk.gypi' ], 416 }, 417 ], # targets 418 }], # OS=="android" 419 ], 420} 421