blob: 347810bea4323fda3cb57b7578e20ba638fe87e3 [file] [log] [blame]
Peter Boströme31d7252015-11-11 12:11:151# Copyright (c) 2012 The WebRTC Project Authors. All rights reserved.
henrike@webrtc.orga48c91d2013-12-12 16:55:372#
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{
Peter Boströme31d7252015-11-11 12:11:159 'includes': [
10 '../talk/build/common.gypi',
11 ],
tkchin62837f42016-03-12 04:45:1612
henrike@webrtc.orga48c91d2013-12-12 16:55:3713 'conditions': [
Peter Boströme31d7252015-11-11 12:11:1514 ['OS=="linux" or OS=="win"', {
15 'targets': [
16 {
tkchin62837f42016-03-12 04:45:1617 'target_name': 'relayserver',
18 'type': 'executable',
19 'dependencies': [
20 '<(webrtc_root)/base/base.gyp:rtc_base_approved',
21 '<(webrtc_root)/pc/pc.gyp:rtc_pc',
22 ],
23 'sources': [
24 'examples/relayserver/relayserver_main.cc',
25 ],
26 }, # target relayserver
27 {
28 'target_name': 'stunserver',
29 'type': 'executable',
30 'dependencies': [
31 '<(webrtc_root)/base/base.gyp:rtc_base_approved',
32 '<(webrtc_root)/pc/pc.gyp:rtc_pc',
33 ],
34 'sources': [
35 'examples/stunserver/stunserver_main.cc',
36 ],
37 }, # target stunserver
38 {
39 'target_name': 'turnserver',
40 'type': 'executable',
41 'dependencies': [
42 '<(webrtc_root)/base/base.gyp:rtc_base_approved',
43 '<(webrtc_root)/pc/pc.gyp:rtc_pc',
44 ],
45 'sources': [
46 'examples/turnserver/turnserver_main.cc',
47 ],
48 }, # target turnserver
49 {
50 'target_name': 'peerconnection_server',
51 'type': 'executable',
52 'sources': [
53 'examples/peerconnection/server/data_socket.cc',
54 'examples/peerconnection/server/data_socket.h',
55 'examples/peerconnection/server/main.cc',
56 'examples/peerconnection/server/peer_channel.cc',
57 'examples/peerconnection/server/peer_channel.h',
58 'examples/peerconnection/server/utils.cc',
59 'examples/peerconnection/server/utils.h',
60 ],
61 'dependencies': [
62 '<(webrtc_root)/base/base.gyp:rtc_base_approved',
63 '<(webrtc_root)/common.gyp:webrtc_common',
64 '<(webrtc_root)/tools/internal_tools.gyp:command_line_parser',
65 ],
66 # TODO(ronghuawu): crbug.com/167187 fix size_t to int truncations.
67 'msvs_disabled_warnings': [ 4309, ],
68 }, # target peerconnection_server
69 {
Peter Boströme31d7252015-11-11 12:11:1570 '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': [
Henrik Kjellanderbd0ae452016-02-10 09:53:1281 'api/api.gyp:libjingle_peerconnection',
Peter Boströme31d7252015-11-11 12:11:1582 '<(webrtc_root)/system_wrappers/system_wrappers.gyp:field_trial_default',
kjellander6bd8e1a2016-06-01 12:28:5483 '<(webrtc_root)/system_wrappers/system_wrappers.gyp:metrics_default',
Peter Boströme31d7252015-11-11 12:11:1584 ],
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"
kjellander1841c4e2015-12-16 22:05:29106 ['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
Peter Boströme31d7252015-11-11 12:11:15118 ['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"
Henrik Kjellander3d5ef5c2016-02-18 20:52:21142 ['OS=="linux" and target_arch=="ia32"', {
143 'cflags': [
144 '-Wno-sentinel',
145 ],
146 }], # OS=="linux" and target_arch=="ia32"
Peter Boströme31d7252015-11-11 12:11:15147 ], # conditions
148 }, # target peerconnection_client
149 ], # targets
150 }], # OS=="linux" or OS=="win"
151
tkchin5c855902015-12-03 00:42:18152 ['OS=="ios" or (OS=="mac" and target_arch!="ia32")', {
Peter Boströme31d7252015-11-11 12:11:15153 'targets': [
154 {
155 'target_name': 'apprtc_common',
156 'type': 'static_library',
157 'dependencies': [
tkchin09716bd2016-04-27 08:54:20158 '<(webrtc_root)/sdk/sdk.gyp:rtc_sdk_common_objc',
Peter Boströme31d7252015-11-11 12:11:15159 '<(webrtc_root)/system_wrappers/system_wrappers.gyp:field_trial_default',
kjellander6bd8e1a2016-06-01 12:28:54160 '<(webrtc_root)/system_wrappers/system_wrappers.gyp:metrics_default',
Peter Boströme31d7252015-11-11 12:11:15161 ],
162 'sources': [
163 'examples/objc/AppRTCDemo/common/ARDUtilities.h',
164 'examples/objc/AppRTCDemo/common/ARDUtilities.m',
165 ],
166 'include_dirs': [
167 'examples/objc/AppRTCDemo/common',
168 ],
169 'direct_dependent_settings': {
170 'include_dirs': [
171 'examples/objc/AppRTCDemo/common',
172 ],
173 },
174 'conditions': [
kjellander@webrtc.orgc2dc7772016-02-18 19:30:14175 ['OS=="ios"', {
176 'xcode_settings': {
177 'WARNING_CFLAGS': [
178 # Suppress compiler warnings about deprecated that triggered
179 # when moving from ios_deployment_target 7.0 to 9.0.
180 # See webrtc:5549 for more details.
181 '-Wno-deprecated-declarations',
182 ],
183 },
184 }],
Peter Boströme31d7252015-11-11 12:11:15185 ['OS=="mac"', {
186 'xcode_settings': {
187 'MACOSX_DEPLOYMENT_TARGET' : '10.8',
188 },
189 }],
190 ],
hjon3551d9d2016-03-14 05:08:26191 'xcode_settings': {
192 'CLANG_ENABLE_OBJC_ARC': 'YES',
193 },
Peter Boströme31d7252015-11-11 12:11:15194 'link_settings': {
195 'xcode_settings': {
196 'OTHER_LDFLAGS': [
197 '-framework QuartzCore',
198 ],
199 },
200 },
201 },
202 {
203 'target_name': 'apprtc_signaling',
204 'type': 'static_library',
205 'dependencies': [
tkchin09716bd2016-04-27 08:54:20206 '<(webrtc_root)/sdk/sdk.gyp:rtc_sdk_peerconnection_objc',
Peter Boströme31d7252015-11-11 12:11:15207 'apprtc_common',
Peter Boströme31d7252015-11-11 12:11:15208 'socketrocket',
209 ],
210 'sources': [
211 'examples/objc/AppRTCDemo/ARDAppClient.h',
212 'examples/objc/AppRTCDemo/ARDAppClient.m',
213 'examples/objc/AppRTCDemo/ARDAppClient+Internal.h',
214 'examples/objc/AppRTCDemo/ARDAppEngineClient.h',
215 'examples/objc/AppRTCDemo/ARDAppEngineClient.m',
216 'examples/objc/AppRTCDemo/ARDBitrateTracker.h',
217 'examples/objc/AppRTCDemo/ARDBitrateTracker.m',
218 'examples/objc/AppRTCDemo/ARDCEODTURNClient.h',
219 'examples/objc/AppRTCDemo/ARDCEODTURNClient.m',
220 'examples/objc/AppRTCDemo/ARDJoinResponse.h',
221 'examples/objc/AppRTCDemo/ARDJoinResponse.m',
222 'examples/objc/AppRTCDemo/ARDJoinResponse+Internal.h',
223 'examples/objc/AppRTCDemo/ARDMessageResponse.h',
224 'examples/objc/AppRTCDemo/ARDMessageResponse.m',
225 'examples/objc/AppRTCDemo/ARDMessageResponse+Internal.h',
226 'examples/objc/AppRTCDemo/ARDRoomServerClient.h',
227 'examples/objc/AppRTCDemo/ARDSDPUtils.h',
228 'examples/objc/AppRTCDemo/ARDSDPUtils.m',
229 'examples/objc/AppRTCDemo/ARDSignalingChannel.h',
230 'examples/objc/AppRTCDemo/ARDSignalingMessage.h',
231 'examples/objc/AppRTCDemo/ARDSignalingMessage.m',
232 'examples/objc/AppRTCDemo/ARDStatsBuilder.h',
233 'examples/objc/AppRTCDemo/ARDStatsBuilder.m',
234 'examples/objc/AppRTCDemo/ARDTURNClient.h',
235 'examples/objc/AppRTCDemo/ARDWebSocketChannel.h',
236 'examples/objc/AppRTCDemo/ARDWebSocketChannel.m',
hjon3551d9d2016-03-14 05:08:26237 'examples/objc/AppRTCDemo/RTCIceCandidate+JSON.h',
238 'examples/objc/AppRTCDemo/RTCIceCandidate+JSON.m',
239 'examples/objc/AppRTCDemo/RTCIceServer+JSON.h',
240 'examples/objc/AppRTCDemo/RTCIceServer+JSON.m',
Peter Boströme31d7252015-11-11 12:11:15241 'examples/objc/AppRTCDemo/RTCMediaConstraints+JSON.h',
242 'examples/objc/AppRTCDemo/RTCMediaConstraints+JSON.m',
243 'examples/objc/AppRTCDemo/RTCSessionDescription+JSON.h',
244 'examples/objc/AppRTCDemo/RTCSessionDescription+JSON.m',
245 ],
246 'include_dirs': [
247 'examples/objc/AppRTCDemo',
248 ],
249 'direct_dependent_settings': {
250 'include_dirs': [
251 'examples/objc/AppRTCDemo',
252 ],
253 },
254 'export_dependent_settings': [
tkchin09716bd2016-04-27 08:54:20255 '<(webrtc_root)/sdk/sdk.gyp:rtc_sdk_peerconnection_objc',
Peter Boströme31d7252015-11-11 12:11:15256 ],
257 'conditions': [
kjellander@webrtc.orgc2dc7772016-02-18 19:30:14258 ['OS=="ios"', {
259 'xcode_settings': {
260 'WARNING_CFLAGS': [
261 # Suppress compiler warnings about deprecated that triggered
262 # when moving from ios_deployment_target 7.0 to 9.0.
263 # See webrtc:5549 for more details.
264 '-Wno-deprecated-declarations',
265 ],
266 },
267 }],
Peter Boströme31d7252015-11-11 12:11:15268 ['OS=="mac"', {
269 'xcode_settings': {
270 'MACOSX_DEPLOYMENT_TARGET' : '10.8',
271 },
272 }],
273 ],
hjon3551d9d2016-03-14 05:08:26274 'xcode_settings': {
275 'CLANG_ENABLE_OBJC_ARC': 'YES',
276 },
Peter Boströme31d7252015-11-11 12:11:15277 },
278 {
279 'target_name': 'AppRTCDemo',
280 'type': 'executable',
281 'product_name': 'AppRTCDemo',
282 'mac_bundle': 1,
283 'dependencies': [
284 'apprtc_common',
285 'apprtc_signaling',
286 ],
287 'conditions': [
288 ['OS=="ios"', {
289 'mac_bundle_resources': [
tkchin86dc4352016-03-13 00:52:04290 'examples/objc/AppRTCDemo/ios/resources/Roboto-Regular.ttf',
Peter Boströme31d7252015-11-11 12:11:15291 'examples/objc/AppRTCDemo/ios/resources/iPhone5@2x.png',
292 'examples/objc/AppRTCDemo/ios/resources/iPhone6@2x.png',
293 'examples/objc/AppRTCDemo/ios/resources/iPhone6p@3x.png',
Peter Boströme31d7252015-11-11 12:11:15294 'examples/objc/AppRTCDemo/ios/resources/ic_call_end_black_24dp.png',
295 'examples/objc/AppRTCDemo/ios/resources/ic_call_end_black_24dp@2x.png',
296 'examples/objc/AppRTCDemo/ios/resources/ic_clear_black_24dp.png',
297 'examples/objc/AppRTCDemo/ios/resources/ic_clear_black_24dp@2x.png',
tkchin86dc4352016-03-13 00:52:04298 'examples/objc/AppRTCDemo/ios/resources/ic_surround_sound_black_24dp.png',
299 'examples/objc/AppRTCDemo/ios/resources/ic_surround_sound_black_24dp@2x.png',
Peter Boströme31d7252015-11-11 12:11:15300 'examples/objc/AppRTCDemo/ios/resources/ic_switch_video_black_24dp.png',
301 'examples/objc/AppRTCDemo/ios/resources/ic_switch_video_black_24dp@2x.png',
Zeke Chinc6c2ec32016-02-24 18:58:52302 'examples/objc/AppRTCDemo/ios/resources/mozart.mp3',
Peter Boströme31d7252015-11-11 12:11:15303 'examples/objc/Icon.png',
304 ],
305 'sources': [
306 'examples/objc/AppRTCDemo/ios/ARDAppDelegate.h',
307 'examples/objc/AppRTCDemo/ios/ARDAppDelegate.m',
308 'examples/objc/AppRTCDemo/ios/ARDMainView.h',
309 'examples/objc/AppRTCDemo/ios/ARDMainView.m',
310 'examples/objc/AppRTCDemo/ios/ARDMainViewController.h',
311 'examples/objc/AppRTCDemo/ios/ARDMainViewController.m',
312 'examples/objc/AppRTCDemo/ios/ARDStatsView.h',
313 'examples/objc/AppRTCDemo/ios/ARDStatsView.m',
314 'examples/objc/AppRTCDemo/ios/ARDVideoCallView.h',
315 'examples/objc/AppRTCDemo/ios/ARDVideoCallView.m',
316 'examples/objc/AppRTCDemo/ios/ARDVideoCallViewController.h',
317 'examples/objc/AppRTCDemo/ios/ARDVideoCallViewController.m',
318 'examples/objc/AppRTCDemo/ios/AppRTCDemo-Prefix.pch',
319 'examples/objc/AppRTCDemo/ios/UIImage+ARDUtilities.h',
320 'examples/objc/AppRTCDemo/ios/UIImage+ARDUtilities.m',
321 'examples/objc/AppRTCDemo/ios/main.m',
322 ],
323 'xcode_settings': {
324 'INFOPLIST_FILE': 'examples/objc/AppRTCDemo/ios/Info.plist',
kjellander@webrtc.orgc2dc7772016-02-18 19:30:14325 'WARNING_CFLAGS': [
326 # Suppress compiler warnings about deprecated that triggered
327 # when moving from ios_deployment_target 7.0 to 9.0.
328 # See webrtc:5549 for more details.
329 '-Wno-deprecated-declarations',
330 ],
Peter Boströme31d7252015-11-11 12:11:15331 },
332 }],
333 ['OS=="mac"', {
334 'sources': [
335 'examples/objc/AppRTCDemo/mac/APPRTCAppDelegate.h',
336 'examples/objc/AppRTCDemo/mac/APPRTCAppDelegate.m',
337 'examples/objc/AppRTCDemo/mac/APPRTCViewController.h',
338 'examples/objc/AppRTCDemo/mac/APPRTCViewController.m',
339 'examples/objc/AppRTCDemo/mac/main.m',
340 ],
341 'xcode_settings': {
342 'CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS': 'NO',
343 'INFOPLIST_FILE': 'examples/objc/AppRTCDemo/mac/Info.plist',
344 'MACOSX_DEPLOYMENT_TARGET' : '10.8',
345 'OTHER_LDFLAGS': [
346 '-framework AVFoundation',
347 ],
348 },
349 }],
350 ['target_arch=="ia32"', {
351 'dependencies' : [
352 '<(DEPTH)/testing/iossim/iossim.gyp:iossim#host',
353 ],
354 }],
355 ],
hjon3551d9d2016-03-14 05:08:26356 'xcode_settings': {
357 'CLANG_ENABLE_OBJC_ARC': 'YES',
358 },
Peter Boströme31d7252015-11-11 12:11:15359 }, # target AppRTCDemo
360 {
361 # TODO(tkchin): move this into the real third party location and
362 # have it mirrored on chrome infra.
363 'target_name': 'socketrocket',
364 'type': 'static_library',
365 'sources': [
366 'examples/objc/AppRTCDemo/third_party/SocketRocket/SRWebSocket.h',
367 'examples/objc/AppRTCDemo/third_party/SocketRocket/SRWebSocket.m',
368 ],
369 'conditions': [
370 ['OS=="mac"', {
371 'xcode_settings': {
372 # SocketRocket autosynthesizes some properties. Disable the
373 # warning so we can compile successfully.
374 'CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS': 'NO',
375 'MACOSX_DEPLOYMENT_TARGET' : '10.8',
376 # SRWebSocket.m uses code with partial availability.
377 # https://code.google.com/p/webrtc/issues/detail?id=4695
378 'WARNING_CFLAGS!': ['-Wpartial-availability'],
379 },
380 }],
381 ],
382 'direct_dependent_settings': {
383 'include_dirs': [
384 'examples/objc/AppRTCDemo/third_party/SocketRocket',
385 ],
386 },
387 'xcode_settings': {
388 'CLANG_ENABLE_OBJC_ARC': 'YES',
389 'WARNING_CFLAGS': [
390 '-Wno-deprecated-declarations',
tkchin5c855902015-12-03 00:42:18391 '-Wno-nonnull',
Peter Boströme31d7252015-11-11 12:11:15392 ],
393 },
394 'link_settings': {
395 'xcode_settings': {
396 'OTHER_LDFLAGS': [
397 '-framework CFNetwork',
398 '-licucore',
399 ],
400 },
401 }
402 }, # target socketrocket
403 ], # targets
tkchin5c855902015-12-03 00:42:18404 }], # OS=="ios" or (OS=="mac" and target_arch!="ia32")
Peter Boströme31d7252015-11-11 12:11:15405
henrike@webrtc.orga48c91d2013-12-12 16:55:37406 ['OS=="android"', {
407 'targets': [
408 {
Peter Boströme31d7252015-11-11 12:11:15409 'target_name': 'AppRTCDemo',
henrike@webrtc.orga48c91d2013-12-12 16:55:37410 'type': 'none',
411 'dependencies': [
kjellander882cc752016-06-20 08:34:06412 'api/api_java.gyp:libjingle_peerconnection_java',
henrike@webrtc.orga48c91d2013-12-12 16:55:37413 ],
Peter Boströme31d7252015-11-11 12:11:15414 'variables': {
415 'apk_name': 'AppRTCDemo',
416 'java_in_dir': 'examples/androidapp',
417 'has_java_resources': 1,
418 'resource_dir': 'examples/androidapp/res',
419 'R_package': 'org.appspot.apprtc',
420 'R_package_relpath': 'org/appspot/apprtc',
421 'input_jars_paths': [
Sami Kalliomaki1b868e32016-06-29 12:55:00422 'examples/androidapp/third_party/autobanh/lib/autobanh.jar',
Peter Boströme31d7252015-11-11 12:11:15423 ],
424 'library_dexed_jars_paths': [
Sami Kalliomaki1b868e32016-06-29 12:55:00425 'examples/androidapp/third_party/autobanh/lib/autobanh.jar',
Peter Boströme31d7252015-11-11 12:11:15426 ],
427 'native_lib_target': 'libjingle_peerconnection_so',
428 'add_to_dependents_classpaths':1,
429 },
430 'includes': [ '../build/java_apk.gypi' ],
431 }, # target AppRTCDemo
432
433 {
434 # AppRTCDemo creates a .jar as a side effect. Any java targets
435 # that need that .jar in their classpath should depend on this target,
436 # AppRTCDemo_apk. Dependents of AppRTCDemo_apk receive its
437 # jar path in the variable 'apk_output_jar_path'.
438 # This target should only be used by targets which instrument
439 # AppRTCDemo_apk.
440 'target_name': 'AppRTCDemo_apk',
441 'type': 'none',
442 'dependencies': [
443 'AppRTCDemo',
444 ],
445 'includes': [ '../build/apk_fake_jar.gypi' ],
446 }, # target AppRTCDemo_apk
447
448 {
449 'target_name': 'AppRTCDemoTest',
450 'type': 'none',
451 'dependencies': [
452 'AppRTCDemo_apk',
453 ],
454 'variables': {
455 'apk_name': 'AppRTCDemoTest',
456 'java_in_dir': 'examples/androidtests',
457 'is_test_apk': 1,
agrievee7931c72016-04-08 13:54:23458 'test_type': 'instrumentation',
459 'test_runner_path': '<(DEPTH)/webrtc/build/android/test_runner.py',
Peter Boströme31d7252015-11-11 12:11:15460 },
agrievee7931c72016-04-08 13:54:23461 'includes': [
462 '../build/java_apk.gypi',
463 '../build/android/test_runner.gypi',
464 ],
henrike@webrtc.orga48c91d2013-12-12 16:55:37465 },
sakaled467382016-05-17 10:22:32466
467 {
468 'target_name': 'AppRTCDemoJUnitTest',
469 'type': 'none',
470 'dependencies': [
471 'AppRTCDemo_apk',
472 '<(DEPTH)/base/base.gyp:base_java',
473 '<(DEPTH)/base/base.gyp:base_java_test_support',
474 '<(DEPTH)/base/base.gyp:base_junit_test_support',
475 ],
476 'variables': {
477 'main_class': 'org.chromium.testing.local.JunitTestMain',
478 'src_paths': [
479 'examples/androidjunit/',
480 ],
481 'test_type': 'junit',
482 'wrapper_script_name': 'helper/<(_target_name)',
483 },
484 'includes': [
485 '../build/host_jar.gypi',
486 '../build/android/test_runner.gypi',
487 ],
488 },
Peter Boströme31d7252015-11-11 12:11:15489 ], # targets
490 }], # OS=="android"
henrike@webrtc.orga48c91d2013-12-12 16:55:37491 ],
492}