xref: /aosp_15_r20/external/webrtc/examples/BUILD.gn (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1*d9f75844SAndroid Build Coastguard Worker# Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
2*d9f75844SAndroid Build Coastguard Worker#
3*d9f75844SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license
4*d9f75844SAndroid Build Coastguard Worker# that can be found in the LICENSE file in the root of the source
5*d9f75844SAndroid Build Coastguard Worker# tree. An additional intellectual property rights grant can be found
6*d9f75844SAndroid Build Coastguard Worker# in the file PATENTS.  All contributing project authors may
7*d9f75844SAndroid Build Coastguard Worker# be found in the AUTHORS file in the root of the source tree.
8*d9f75844SAndroid Build Coastguard Worker
9*d9f75844SAndroid Build Coastguard Workerimport("../webrtc.gni")
10*d9f75844SAndroid Build Coastguard Worker
11*d9f75844SAndroid Build Coastguard Workerif (is_android) {
12*d9f75844SAndroid Build Coastguard Worker  import("//build/config/android/config.gni")
13*d9f75844SAndroid Build Coastguard Worker  import("//build/config/android/rules.gni")
14*d9f75844SAndroid Build Coastguard Worker} else if (is_mac) {
15*d9f75844SAndroid Build Coastguard Worker  import("//build/config/mac/rules.gni")
16*d9f75844SAndroid Build Coastguard Worker} else if (is_ios) {
17*d9f75844SAndroid Build Coastguard Worker  import("//build/config/ios/rules.gni")
18*d9f75844SAndroid Build Coastguard Worker} else if (is_linux || is_chromeos) {
19*d9f75844SAndroid Build Coastguard Worker  import("//build/config/linux/pkg_config.gni")
20*d9f75844SAndroid Build Coastguard Worker}
21*d9f75844SAndroid Build Coastguard Worker
22*d9f75844SAndroid Build Coastguard Workergroup("examples") {
23*d9f75844SAndroid Build Coastguard Worker  # This target shall build all targets in examples.
24*d9f75844SAndroid Build Coastguard Worker  testonly = true
25*d9f75844SAndroid Build Coastguard Worker  deps = []
26*d9f75844SAndroid Build Coastguard Worker
27*d9f75844SAndroid Build Coastguard Worker  if (is_android) {
28*d9f75844SAndroid Build Coastguard Worker    deps += [
29*d9f75844SAndroid Build Coastguard Worker      ":AppRTCMobile",
30*d9f75844SAndroid Build Coastguard Worker      ":AppRTCMobile_test_apk",
31*d9f75844SAndroid Build Coastguard Worker      ":libwebrtc_unity",
32*d9f75844SAndroid Build Coastguard Worker      "androidvoip",
33*d9f75844SAndroid Build Coastguard Worker    ]
34*d9f75844SAndroid Build Coastguard Worker
35*d9f75844SAndroid Build Coastguard Worker    # TODO(sakal): We include some code from the tests. Remove this dependency
36*d9f75844SAndroid Build Coastguard Worker    # and remove this if-clause.
37*d9f75844SAndroid Build Coastguard Worker    if (rtc_include_tests) {
38*d9f75844SAndroid Build Coastguard Worker      deps += [ "androidnativeapi" ]
39*d9f75844SAndroid Build Coastguard Worker    }
40*d9f75844SAndroid Build Coastguard Worker  }
41*d9f75844SAndroid Build Coastguard Worker
42*d9f75844SAndroid Build Coastguard Worker  if (!build_with_chromium) {
43*d9f75844SAndroid Build Coastguard Worker    deps += [ ":stun_prober" ]
44*d9f75844SAndroid Build Coastguard Worker  }
45*d9f75844SAndroid Build Coastguard Worker
46*d9f75844SAndroid Build Coastguard Worker  if (is_ios || (is_mac && target_cpu != "x86")) {
47*d9f75844SAndroid Build Coastguard Worker    deps += [ ":AppRTCMobile" ]
48*d9f75844SAndroid Build Coastguard Worker  }
49*d9f75844SAndroid Build Coastguard Worker
50*d9f75844SAndroid Build Coastguard Worker  if (is_linux || is_chromeos || is_win) {
51*d9f75844SAndroid Build Coastguard Worker    deps += [
52*d9f75844SAndroid Build Coastguard Worker      ":peerconnection_server",
53*d9f75844SAndroid Build Coastguard Worker      ":stunserver",
54*d9f75844SAndroid Build Coastguard Worker      ":turnserver",
55*d9f75844SAndroid Build Coastguard Worker    ]
56*d9f75844SAndroid Build Coastguard Worker    if (current_os != "winuwp") {
57*d9f75844SAndroid Build Coastguard Worker      deps += [ ":peerconnection_client" ]
58*d9f75844SAndroid Build Coastguard Worker    }
59*d9f75844SAndroid Build Coastguard Worker  }
60*d9f75844SAndroid Build Coastguard Worker
61*d9f75844SAndroid Build Coastguard Worker  if (is_android || is_win) {
62*d9f75844SAndroid Build Coastguard Worker    deps += [ ":webrtc_unity_plugin" ]
63*d9f75844SAndroid Build Coastguard Worker  }
64*d9f75844SAndroid Build Coastguard Worker}
65*d9f75844SAndroid Build Coastguard Worker
66*d9f75844SAndroid Build Coastguard Workerrtc_library("read_auth_file") {
67*d9f75844SAndroid Build Coastguard Worker  testonly = true
68*d9f75844SAndroid Build Coastguard Worker  sources = [
69*d9f75844SAndroid Build Coastguard Worker    "turnserver/read_auth_file.cc",
70*d9f75844SAndroid Build Coastguard Worker    "turnserver/read_auth_file.h",
71*d9f75844SAndroid Build Coastguard Worker  ]
72*d9f75844SAndroid Build Coastguard Worker  deps = [
73*d9f75844SAndroid Build Coastguard Worker    "../api:array_view",
74*d9f75844SAndroid Build Coastguard Worker    "../rtc_base",
75*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:stringutils",
76*d9f75844SAndroid Build Coastguard Worker  ]
77*d9f75844SAndroid Build Coastguard Worker  absl_deps = [ "//third_party/abseil-cpp/absl/strings:strings" ]
78*d9f75844SAndroid Build Coastguard Worker}
79*d9f75844SAndroid Build Coastguard Worker
80*d9f75844SAndroid Build Coastguard Workerif (rtc_include_tests) {
81*d9f75844SAndroid Build Coastguard Worker  rtc_test("examples_unittests") {
82*d9f75844SAndroid Build Coastguard Worker    testonly = true
83*d9f75844SAndroid Build Coastguard Worker    sources = [ "turnserver/read_auth_file_unittest.cc" ]
84*d9f75844SAndroid Build Coastguard Worker    deps = [
85*d9f75844SAndroid Build Coastguard Worker      ":read_auth_file",
86*d9f75844SAndroid Build Coastguard Worker      "../test:test_main",
87*d9f75844SAndroid Build Coastguard Worker      "//test:test_support",
88*d9f75844SAndroid Build Coastguard Worker      "//testing/gtest",
89*d9f75844SAndroid Build Coastguard Worker    ]
90*d9f75844SAndroid Build Coastguard Worker  }
91*d9f75844SAndroid Build Coastguard Worker}
92*d9f75844SAndroid Build Coastguard Worker
93*d9f75844SAndroid Build Coastguard Workerif (is_android) {
94*d9f75844SAndroid Build Coastguard Worker  rtc_android_apk("AppRTCMobile") {
95*d9f75844SAndroid Build Coastguard Worker    testonly = true
96*d9f75844SAndroid Build Coastguard Worker    apk_name = "AppRTCMobile"
97*d9f75844SAndroid Build Coastguard Worker    android_manifest = "androidapp/AndroidManifest.xml"
98*d9f75844SAndroid Build Coastguard Worker    min_sdk_version = 21
99*d9f75844SAndroid Build Coastguard Worker    target_sdk_version = 31
100*d9f75844SAndroid Build Coastguard Worker
101*d9f75844SAndroid Build Coastguard Worker    deps = [
102*d9f75844SAndroid Build Coastguard Worker      ":AppRTCMobile_javalib",
103*d9f75844SAndroid Build Coastguard Worker      ":AppRTCMobile_resources",
104*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:base_java",
105*d9f75844SAndroid Build Coastguard Worker    ]
106*d9f75844SAndroid Build Coastguard Worker
107*d9f75844SAndroid Build Coastguard Worker    shared_libraries = [ "../sdk/android:libjingle_peerconnection_so" ]
108*d9f75844SAndroid Build Coastguard Worker  }
109*d9f75844SAndroid Build Coastguard Worker
110*d9f75844SAndroid Build Coastguard Worker  rtc_android_library("AppRTCMobile_javalib") {
111*d9f75844SAndroid Build Coastguard Worker    testonly = true
112*d9f75844SAndroid Build Coastguard Worker    android_manifest = "androidapp/AndroidManifest.xml"
113*d9f75844SAndroid Build Coastguard Worker
114*d9f75844SAndroid Build Coastguard Worker    sources = [
115*d9f75844SAndroid Build Coastguard Worker      "androidapp/src/org/appspot/apprtc/AppRTCAudioManager.java",
116*d9f75844SAndroid Build Coastguard Worker      "androidapp/src/org/appspot/apprtc/AppRTCBluetoothManager.java",
117*d9f75844SAndroid Build Coastguard Worker      "androidapp/src/org/appspot/apprtc/AppRTCClient.java",
118*d9f75844SAndroid Build Coastguard Worker      "androidapp/src/org/appspot/apprtc/AppRTCProximitySensor.java",
119*d9f75844SAndroid Build Coastguard Worker      "androidapp/src/org/appspot/apprtc/CallActivity.java",
120*d9f75844SAndroid Build Coastguard Worker      "androidapp/src/org/appspot/apprtc/CallFragment.java",
121*d9f75844SAndroid Build Coastguard Worker      "androidapp/src/org/appspot/apprtc/CaptureQualityController.java",
122*d9f75844SAndroid Build Coastguard Worker      "androidapp/src/org/appspot/apprtc/ConnectActivity.java",
123*d9f75844SAndroid Build Coastguard Worker      "androidapp/src/org/appspot/apprtc/CpuMonitor.java",
124*d9f75844SAndroid Build Coastguard Worker      "androidapp/src/org/appspot/apprtc/DirectRTCClient.java",
125*d9f75844SAndroid Build Coastguard Worker      "androidapp/src/org/appspot/apprtc/HudFragment.java",
126*d9f75844SAndroid Build Coastguard Worker      "androidapp/src/org/appspot/apprtc/PeerConnectionClient.java",
127*d9f75844SAndroid Build Coastguard Worker      "androidapp/src/org/appspot/apprtc/RecordedAudioToFileController.java",
128*d9f75844SAndroid Build Coastguard Worker      "androidapp/src/org/appspot/apprtc/RoomParametersFetcher.java",
129*d9f75844SAndroid Build Coastguard Worker      "androidapp/src/org/appspot/apprtc/RtcEventLog.java",
130*d9f75844SAndroid Build Coastguard Worker      "androidapp/src/org/appspot/apprtc/SettingsActivity.java",
131*d9f75844SAndroid Build Coastguard Worker      "androidapp/src/org/appspot/apprtc/SettingsFragment.java",
132*d9f75844SAndroid Build Coastguard Worker      "androidapp/src/org/appspot/apprtc/TCPChannelClient.java",
133*d9f75844SAndroid Build Coastguard Worker      "androidapp/src/org/appspot/apprtc/UnhandledExceptionHandler.java",
134*d9f75844SAndroid Build Coastguard Worker      "androidapp/src/org/appspot/apprtc/WebSocketChannelClient.java",
135*d9f75844SAndroid Build Coastguard Worker      "androidapp/src/org/appspot/apprtc/WebSocketRTCClient.java",
136*d9f75844SAndroid Build Coastguard Worker      "androidapp/src/org/appspot/apprtc/util/AppRTCUtils.java",
137*d9f75844SAndroid Build Coastguard Worker      "androidapp/src/org/appspot/apprtc/util/AsyncHttpURLConnection.java",
138*d9f75844SAndroid Build Coastguard Worker    ]
139*d9f75844SAndroid Build Coastguard Worker
140*d9f75844SAndroid Build Coastguard Worker    resources_package = "org.appspot.apprtc"
141*d9f75844SAndroid Build Coastguard Worker    deps = [
142*d9f75844SAndroid Build Coastguard Worker      ":AppRTCMobile_resources",
143*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:base_java",
144*d9f75844SAndroid Build Coastguard Worker      "../sdk/android:audio_api_java",
145*d9f75844SAndroid Build Coastguard Worker      "../sdk/android:base_java",
146*d9f75844SAndroid Build Coastguard Worker      "../sdk/android:camera_java",
147*d9f75844SAndroid Build Coastguard Worker      "../sdk/android:default_video_codec_factory_java",
148*d9f75844SAndroid Build Coastguard Worker      "../sdk/android:filevideo_java",
149*d9f75844SAndroid Build Coastguard Worker      "../sdk/android:hwcodecs_java",
150*d9f75844SAndroid Build Coastguard Worker      "../sdk/android:java_audio_device_module_java",
151*d9f75844SAndroid Build Coastguard Worker      "../sdk/android:libjingle_peerconnection_java",
152*d9f75844SAndroid Build Coastguard Worker      "../sdk/android:libjingle_peerconnection_metrics_default_java",
153*d9f75844SAndroid Build Coastguard Worker      "../sdk/android:peerconnection_java",
154*d9f75844SAndroid Build Coastguard Worker      "../sdk/android:screencapturer_java",
155*d9f75844SAndroid Build Coastguard Worker      "../sdk/android:surfaceviewrenderer_java",
156*d9f75844SAndroid Build Coastguard Worker      "../sdk/android:swcodecs_java",
157*d9f75844SAndroid Build Coastguard Worker      "../sdk/android:video_api_java",
158*d9f75844SAndroid Build Coastguard Worker      "../sdk/android:video_java",
159*d9f75844SAndroid Build Coastguard Worker      "androidapp/third_party/autobanh:autobanh_java",
160*d9f75844SAndroid Build Coastguard Worker      "//third_party/androidx:androidx_annotation_annotation_java",
161*d9f75844SAndroid Build Coastguard Worker    ]
162*d9f75844SAndroid Build Coastguard Worker  }
163*d9f75844SAndroid Build Coastguard Worker
164*d9f75844SAndroid Build Coastguard Worker  android_resources("AppRTCMobile_resources") {
165*d9f75844SAndroid Build Coastguard Worker    testonly = true
166*d9f75844SAndroid Build Coastguard Worker    sources = [
167*d9f75844SAndroid Build Coastguard Worker      "androidapp/res/drawable-hdpi/disconnect.png",
168*d9f75844SAndroid Build Coastguard Worker      "androidapp/res/drawable-hdpi/ic_action_full_screen.png",
169*d9f75844SAndroid Build Coastguard Worker      "androidapp/res/drawable-hdpi/ic_action_return_from_full_screen.png",
170*d9f75844SAndroid Build Coastguard Worker      "androidapp/res/drawable-hdpi/ic_launcher.png",
171*d9f75844SAndroid Build Coastguard Worker      "androidapp/res/drawable-hdpi/ic_loopback_call.png",
172*d9f75844SAndroid Build Coastguard Worker      "androidapp/res/drawable-ldpi/disconnect.png",
173*d9f75844SAndroid Build Coastguard Worker      "androidapp/res/drawable-ldpi/ic_action_full_screen.png",
174*d9f75844SAndroid Build Coastguard Worker      "androidapp/res/drawable-ldpi/ic_action_return_from_full_screen.png",
175*d9f75844SAndroid Build Coastguard Worker      "androidapp/res/drawable-ldpi/ic_launcher.png",
176*d9f75844SAndroid Build Coastguard Worker      "androidapp/res/drawable-ldpi/ic_loopback_call.png",
177*d9f75844SAndroid Build Coastguard Worker      "androidapp/res/drawable-mdpi/disconnect.png",
178*d9f75844SAndroid Build Coastguard Worker      "androidapp/res/drawable-mdpi/ic_action_full_screen.png",
179*d9f75844SAndroid Build Coastguard Worker      "androidapp/res/drawable-mdpi/ic_action_return_from_full_screen.png",
180*d9f75844SAndroid Build Coastguard Worker      "androidapp/res/drawable-mdpi/ic_launcher.png",
181*d9f75844SAndroid Build Coastguard Worker      "androidapp/res/drawable-mdpi/ic_loopback_call.png",
182*d9f75844SAndroid Build Coastguard Worker      "androidapp/res/drawable-xhdpi/disconnect.png",
183*d9f75844SAndroid Build Coastguard Worker      "androidapp/res/drawable-xhdpi/ic_action_full_screen.png",
184*d9f75844SAndroid Build Coastguard Worker      "androidapp/res/drawable-xhdpi/ic_action_return_from_full_screen.png",
185*d9f75844SAndroid Build Coastguard Worker      "androidapp/res/drawable-xhdpi/ic_launcher.png",
186*d9f75844SAndroid Build Coastguard Worker      "androidapp/res/drawable-xhdpi/ic_loopback_call.png",
187*d9f75844SAndroid Build Coastguard Worker      "androidapp/res/layout/activity_call.xml",
188*d9f75844SAndroid Build Coastguard Worker      "androidapp/res/layout/activity_connect.xml",
189*d9f75844SAndroid Build Coastguard Worker      "androidapp/res/layout/fragment_call.xml",
190*d9f75844SAndroid Build Coastguard Worker      "androidapp/res/layout/fragment_hud.xml",
191*d9f75844SAndroid Build Coastguard Worker      "androidapp/res/menu/connect_menu.xml",
192*d9f75844SAndroid Build Coastguard Worker      "androidapp/res/values-v17/styles.xml",
193*d9f75844SAndroid Build Coastguard Worker      "androidapp/res/values-v21/styles.xml",
194*d9f75844SAndroid Build Coastguard Worker      "androidapp/res/values/arrays.xml",
195*d9f75844SAndroid Build Coastguard Worker      "androidapp/res/values/strings.xml",
196*d9f75844SAndroid Build Coastguard Worker      "androidapp/res/xml/preferences.xml",
197*d9f75844SAndroid Build Coastguard Worker    ]
198*d9f75844SAndroid Build Coastguard Worker
199*d9f75844SAndroid Build Coastguard Worker    # Needed for Bazel converter.
200*d9f75844SAndroid Build Coastguard Worker    custom_package = "org.appspot.apprtc"
201*d9f75844SAndroid Build Coastguard Worker    resource_dirs = [ "androidapp/res" ]
202*d9f75844SAndroid Build Coastguard Worker    assert(resource_dirs != [])  # Mark as used.
203*d9f75844SAndroid Build Coastguard Worker  }
204*d9f75844SAndroid Build Coastguard Worker
205*d9f75844SAndroid Build Coastguard Worker  rtc_instrumentation_test_apk("AppRTCMobile_test_apk") {
206*d9f75844SAndroid Build Coastguard Worker    apk_name = "AppRTCMobileTest"
207*d9f75844SAndroid Build Coastguard Worker    android_manifest = "androidtests/AndroidManifest.xml"
208*d9f75844SAndroid Build Coastguard Worker    min_sdk_version = 21
209*d9f75844SAndroid Build Coastguard Worker    target_sdk_version = 31
210*d9f75844SAndroid Build Coastguard Worker
211*d9f75844SAndroid Build Coastguard Worker    sources = [
212*d9f75844SAndroid Build Coastguard Worker      "androidtests/src/org/appspot/apprtc/test/PeerConnectionClientTest.java",
213*d9f75844SAndroid Build Coastguard Worker    ]
214*d9f75844SAndroid Build Coastguard Worker
215*d9f75844SAndroid Build Coastguard Worker    apk_under_test = ":AppRTCMobile"
216*d9f75844SAndroid Build Coastguard Worker
217*d9f75844SAndroid Build Coastguard Worker    deps = [
218*d9f75844SAndroid Build Coastguard Worker      ":AppRTCMobile_javalib",
219*d9f75844SAndroid Build Coastguard Worker      "../sdk/android:base_java",
220*d9f75844SAndroid Build Coastguard Worker      "../sdk/android:camera_java",
221*d9f75844SAndroid Build Coastguard Worker      "../sdk/android:libjingle_peerconnection_java",
222*d9f75844SAndroid Build Coastguard Worker      "../sdk/android:peerconnection_java",
223*d9f75844SAndroid Build Coastguard Worker      "../sdk/android:video_api_java",
224*d9f75844SAndroid Build Coastguard Worker      "../sdk/android:video_java",
225*d9f75844SAndroid Build Coastguard Worker      "//third_party/android_support_test_runner:runner_java",
226*d9f75844SAndroid Build Coastguard Worker      "//third_party/androidx:androidx_test_runner_java",
227*d9f75844SAndroid Build Coastguard Worker      "//third_party/junit",
228*d9f75844SAndroid Build Coastguard Worker    ]
229*d9f75844SAndroid Build Coastguard Worker  }
230*d9f75844SAndroid Build Coastguard Worker}
231*d9f75844SAndroid Build Coastguard Worker
232*d9f75844SAndroid Build Coastguard Workerif (is_ios || (is_mac && target_cpu != "x86")) {
233*d9f75844SAndroid Build Coastguard Worker  config("apprtc_common_config") {
234*d9f75844SAndroid Build Coastguard Worker    include_dirs = [ "objc/AppRTCMobile/common" ]
235*d9f75844SAndroid Build Coastguard Worker  }
236*d9f75844SAndroid Build Coastguard Worker
237*d9f75844SAndroid Build Coastguard Worker  rtc_library("apprtc_common") {
238*d9f75844SAndroid Build Coastguard Worker    testonly = true
239*d9f75844SAndroid Build Coastguard Worker    sources = [
240*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/common/ARDUtilities.h",
241*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/common/ARDUtilities.m",
242*d9f75844SAndroid Build Coastguard Worker    ]
243*d9f75844SAndroid Build Coastguard Worker    public_configs = [ ":apprtc_common_config" ]
244*d9f75844SAndroid Build Coastguard Worker    deps = [ "../sdk:base_objc" ]
245*d9f75844SAndroid Build Coastguard Worker  }
246*d9f75844SAndroid Build Coastguard Worker
247*d9f75844SAndroid Build Coastguard Worker  config("apprtc_signaling_config") {
248*d9f75844SAndroid Build Coastguard Worker    include_dirs = [ "objc/AppRTCMobile" ]
249*d9f75844SAndroid Build Coastguard Worker  }
250*d9f75844SAndroid Build Coastguard Worker
251*d9f75844SAndroid Build Coastguard Worker  rtc_library("apprtc_signaling") {
252*d9f75844SAndroid Build Coastguard Worker    testonly = true
253*d9f75844SAndroid Build Coastguard Worker    sources = [
254*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDAppClient+Internal.h",
255*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDAppClient.h",
256*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDAppClient.m",
257*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDAppEngineClient.h",
258*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDAppEngineClient.m",
259*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDCaptureController.h",
260*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDCaptureController.m",
261*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDExternalSampleCapturer.h",
262*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDExternalSampleCapturer.m",
263*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDJoinResponse+Internal.h",
264*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDJoinResponse.h",
265*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDJoinResponse.m",
266*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDMessageResponse+Internal.h",
267*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDMessageResponse.h",
268*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDMessageResponse.m",
269*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDRoomServerClient.h",
270*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDSettingsModel+Private.h",
271*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDSettingsModel.h",
272*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDSettingsModel.m",
273*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDSettingsStore.h",
274*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDSettingsStore.m",
275*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDSignalingChannel.h",
276*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDSignalingMessage.h",
277*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDSignalingMessage.m",
278*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDStatsBuilder.h",
279*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDStatsBuilder.m",
280*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDTURNClient+Internal.h",
281*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDTURNClient.h",
282*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDTURNClient.m",
283*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDWebSocketChannel.h",
284*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/ARDWebSocketChannel.m",
285*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/RTCIceCandidate+JSON.h",
286*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/RTCIceCandidate+JSON.m",
287*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/RTCIceServer+JSON.h",
288*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/RTCIceServer+JSON.m",
289*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/RTCSessionDescription+JSON.h",
290*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/RTCSessionDescription+JSON.m",
291*d9f75844SAndroid Build Coastguard Worker    ]
292*d9f75844SAndroid Build Coastguard Worker    public_configs = [ ":apprtc_signaling_config" ]
293*d9f75844SAndroid Build Coastguard Worker    deps = [
294*d9f75844SAndroid Build Coastguard Worker      ":apprtc_common",
295*d9f75844SAndroid Build Coastguard Worker      ":socketrocket",
296*d9f75844SAndroid Build Coastguard Worker      "../sdk:base_objc",
297*d9f75844SAndroid Build Coastguard Worker      "../sdk:default_codec_factory_objc",
298*d9f75844SAndroid Build Coastguard Worker      "../sdk:file_logger_objc",
299*d9f75844SAndroid Build Coastguard Worker      "../sdk:helpers_objc",
300*d9f75844SAndroid Build Coastguard Worker      "../sdk:mediaconstraints_objc",
301*d9f75844SAndroid Build Coastguard Worker      "../sdk:peerconnectionfactory_base_objc",
302*d9f75844SAndroid Build Coastguard Worker      "../sdk:videocapture_objc",
303*d9f75844SAndroid Build Coastguard Worker      "../sdk:videoframebuffer_objc",
304*d9f75844SAndroid Build Coastguard Worker      "../sdk:videosource_objc",
305*d9f75844SAndroid Build Coastguard Worker    ]
306*d9f75844SAndroid Build Coastguard Worker    frameworks = [
307*d9f75844SAndroid Build Coastguard Worker      "CoreMedia.framework",
308*d9f75844SAndroid Build Coastguard Worker      "QuartzCore.framework",
309*d9f75844SAndroid Build Coastguard Worker    ]
310*d9f75844SAndroid Build Coastguard Worker  }
311*d9f75844SAndroid Build Coastguard Worker
312*d9f75844SAndroid Build Coastguard Worker  if (is_ios) {
313*d9f75844SAndroid Build Coastguard Worker    rtc_library("AppRTCMobile_lib") {
314*d9f75844SAndroid Build Coastguard Worker      # iOS must use WebRTC.framework which is dynamically linked.
315*d9f75844SAndroid Build Coastguard Worker      testonly = true
316*d9f75844SAndroid Build Coastguard Worker      sources = [
317*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/ARDAppDelegate.h",
318*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/ARDAppDelegate.m",
319*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/ARDFileCaptureController.h",
320*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/ARDFileCaptureController.m",
321*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/ARDMainView.h",
322*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/ARDMainView.m",
323*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/ARDMainViewController.h",
324*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/ARDMainViewController.m",
325*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/ARDSettingsViewController.h",
326*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/ARDSettingsViewController.m",
327*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/ARDStatsView.h",
328*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/ARDStatsView.m",
329*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/ARDVideoCallView.h",
330*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/ARDVideoCallView.m",
331*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/ARDVideoCallViewController.h",
332*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/ARDVideoCallViewController.m",
333*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/RTCVideoCodecInfo+HumanReadable.h",
334*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/RTCVideoCodecInfo+HumanReadable.m",
335*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/UIImage+ARDUtilities.h",
336*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/UIImage+ARDUtilities.m",
337*d9f75844SAndroid Build Coastguard Worker      ]
338*d9f75844SAndroid Build Coastguard Worker
339*d9f75844SAndroid Build Coastguard Worker      configs += [ "..:common_objc" ]
340*d9f75844SAndroid Build Coastguard Worker
341*d9f75844SAndroid Build Coastguard Worker      deps = [
342*d9f75844SAndroid Build Coastguard Worker        ":apprtc_common",
343*d9f75844SAndroid Build Coastguard Worker        ":apprtc_signaling",
344*d9f75844SAndroid Build Coastguard Worker        "../sdk:audio_session_objc",
345*d9f75844SAndroid Build Coastguard Worker        "../sdk:base_objc",
346*d9f75844SAndroid Build Coastguard Worker        "../sdk:helpers_objc",
347*d9f75844SAndroid Build Coastguard Worker        "../sdk:mediaconstraints_objc",
348*d9f75844SAndroid Build Coastguard Worker        "../sdk:metal_objc",
349*d9f75844SAndroid Build Coastguard Worker        "../sdk:peerconnectionfactory_base_objc",
350*d9f75844SAndroid Build Coastguard Worker        "../sdk:peerconnectionfactory_base_objc",
351*d9f75844SAndroid Build Coastguard Worker        "../sdk:videocapture_objc",
352*d9f75844SAndroid Build Coastguard Worker        "../sdk:videocodec_objc",
353*d9f75844SAndroid Build Coastguard Worker      ]
354*d9f75844SAndroid Build Coastguard Worker      if (rtc_ios_macos_use_opengl_rendering) {
355*d9f75844SAndroid Build Coastguard Worker        deps += [ "../sdk:opengl_ui_objc" ]
356*d9f75844SAndroid Build Coastguard Worker      }
357*d9f75844SAndroid Build Coastguard Worker
358*d9f75844SAndroid Build Coastguard Worker      frameworks = [ "AVFoundation.framework" ]
359*d9f75844SAndroid Build Coastguard Worker    }
360*d9f75844SAndroid Build Coastguard Worker
361*d9f75844SAndroid Build Coastguard Worker    ios_app_bundle("AppRTCMobile") {
362*d9f75844SAndroid Build Coastguard Worker      testonly = true
363*d9f75844SAndroid Build Coastguard Worker      sources = [ "objc/AppRTCMobile/ios/main.m" ]
364*d9f75844SAndroid Build Coastguard Worker
365*d9f75844SAndroid Build Coastguard Worker      info_plist = "objc/AppRTCMobile/ios/Info.plist"
366*d9f75844SAndroid Build Coastguard Worker
367*d9f75844SAndroid Build Coastguard Worker      configs += [ "..:common_config" ]
368*d9f75844SAndroid Build Coastguard Worker      public_configs = [ "..:common_inherited_config" ]
369*d9f75844SAndroid Build Coastguard Worker
370*d9f75844SAndroid Build Coastguard Worker      deps = [
371*d9f75844SAndroid Build Coastguard Worker        ":AppRTCMobile_ios_bundle_data",
372*d9f75844SAndroid Build Coastguard Worker        ":AppRTCMobile_lib",
373*d9f75844SAndroid Build Coastguard Worker        "../sdk:framework_objc",
374*d9f75844SAndroid Build Coastguard Worker        "../sdk:ios_framework_bundle",
375*d9f75844SAndroid Build Coastguard Worker      ]
376*d9f75844SAndroid Build Coastguard Worker
377*d9f75844SAndroid Build Coastguard Worker      if (rtc_apprtcmobile_broadcast_extension) {
378*d9f75844SAndroid Build Coastguard Worker        deps += [
379*d9f75844SAndroid Build Coastguard Worker          ":AppRTCMobileBroadcastSetupUI_extension_bundle",
380*d9f75844SAndroid Build Coastguard Worker          ":AppRTCMobileBroadcastUpload_extension_bundle",
381*d9f75844SAndroid Build Coastguard Worker        ]
382*d9f75844SAndroid Build Coastguard Worker      }
383*d9f75844SAndroid Build Coastguard Worker
384*d9f75844SAndroid Build Coastguard Worker      if (target_cpu == "x86") {
385*d9f75844SAndroid Build Coastguard Worker        deps += [ "//testing/iossim" ]
386*d9f75844SAndroid Build Coastguard Worker      }
387*d9f75844SAndroid Build Coastguard Worker    }
388*d9f75844SAndroid Build Coastguard Worker
389*d9f75844SAndroid Build Coastguard Worker    if (rtc_apprtcmobile_broadcast_extension) {
390*d9f75844SAndroid Build Coastguard Worker      bundle_data("AppRTCMobileBroadcastUpload_extension_bundle") {
391*d9f75844SAndroid Build Coastguard Worker        testonly = true
392*d9f75844SAndroid Build Coastguard Worker        public_deps = [  # no-presubmit-check TODO(webrtc:8603)
393*d9f75844SAndroid Build Coastguard Worker          ":AppRTCMobileBroadcastUpload",  # prevent code format
394*d9f75844SAndroid Build Coastguard Worker        ]
395*d9f75844SAndroid Build Coastguard Worker        sources = [ "$root_out_dir/AppRTCMobileBroadcastUpload.appex" ]
396*d9f75844SAndroid Build Coastguard Worker        outputs = [ "{{bundle_contents_dir}}/Plugins/{{source_file_part}}" ]
397*d9f75844SAndroid Build Coastguard Worker      }
398*d9f75844SAndroid Build Coastguard Worker
399*d9f75844SAndroid Build Coastguard Worker      bundle_data("AppRTCMobileBroadcastSetupUI_extension_bundle") {
400*d9f75844SAndroid Build Coastguard Worker        testonly = true
401*d9f75844SAndroid Build Coastguard Worker        public_deps = [  # no-presubmit-check TODO(webrtc:8603)
402*d9f75844SAndroid Build Coastguard Worker          ":AppRTCMobileBroadcastSetupUI",  # prevent code format
403*d9f75844SAndroid Build Coastguard Worker        ]
404*d9f75844SAndroid Build Coastguard Worker        sources = [ "$root_out_dir/AppRTCMobileBroadcastSetupUI.appex" ]
405*d9f75844SAndroid Build Coastguard Worker        outputs = [ "{{bundle_contents_dir}}/Plugins/{{source_file_part}}" ]
406*d9f75844SAndroid Build Coastguard Worker      }
407*d9f75844SAndroid Build Coastguard Worker
408*d9f75844SAndroid Build Coastguard Worker      rtc_library("AppRTCMobileBroadcastUpload_lib") {
409*d9f75844SAndroid Build Coastguard Worker        testonly = true
410*d9f75844SAndroid Build Coastguard Worker        sources = [
411*d9f75844SAndroid Build Coastguard Worker          "objc/AppRTCMobile/ios/broadcast_extension/ARDBroadcastSampleHandler.h",
412*d9f75844SAndroid Build Coastguard Worker          "objc/AppRTCMobile/ios/broadcast_extension/ARDBroadcastSampleHandler.m",
413*d9f75844SAndroid Build Coastguard Worker        ]
414*d9f75844SAndroid Build Coastguard Worker
415*d9f75844SAndroid Build Coastguard Worker        deps = [
416*d9f75844SAndroid Build Coastguard Worker          ":apprtc_signaling",
417*d9f75844SAndroid Build Coastguard Worker          "../sdk:framework_objc+link",
418*d9f75844SAndroid Build Coastguard Worker          "../sdk:ios_framework_bundle",
419*d9f75844SAndroid Build Coastguard Worker        ]
420*d9f75844SAndroid Build Coastguard Worker
421*d9f75844SAndroid Build Coastguard Worker        frameworks = [ "ReplayKit.framework" ]
422*d9f75844SAndroid Build Coastguard Worker      }
423*d9f75844SAndroid Build Coastguard Worker
424*d9f75844SAndroid Build Coastguard Worker      ios_appex_bundle("AppRTCMobileBroadcastUpload") {
425*d9f75844SAndroid Build Coastguard Worker        testonly = true
426*d9f75844SAndroid Build Coastguard Worker        configs += [ "..:common_config" ]
427*d9f75844SAndroid Build Coastguard Worker        public_configs = [ "..:common_inherited_config" ]
428*d9f75844SAndroid Build Coastguard Worker
429*d9f75844SAndroid Build Coastguard Worker        info_plist = "objc/AppRTCMobile/ios/broadcast_extension/BroadcastUploadInfo.plist"
430*d9f75844SAndroid Build Coastguard Worker
431*d9f75844SAndroid Build Coastguard Worker        deps = [
432*d9f75844SAndroid Build Coastguard Worker          ":AppRTCMobileBroadcastUpload_lib",
433*d9f75844SAndroid Build Coastguard Worker          "../sdk:framework_objc",
434*d9f75844SAndroid Build Coastguard Worker        ]
435*d9f75844SAndroid Build Coastguard Worker      }
436*d9f75844SAndroid Build Coastguard Worker
437*d9f75844SAndroid Build Coastguard Worker      ios_appex_bundle("AppRTCMobileBroadcastSetupUI") {
438*d9f75844SAndroid Build Coastguard Worker        sources = [
439*d9f75844SAndroid Build Coastguard Worker          "objc/AppRTCMobile/ios/broadcast_extension/ARDBroadcastSetupViewController.h",
440*d9f75844SAndroid Build Coastguard Worker          "objc/AppRTCMobile/ios/broadcast_extension/ARDBroadcastSetupViewController.m",
441*d9f75844SAndroid Build Coastguard Worker        ]
442*d9f75844SAndroid Build Coastguard Worker
443*d9f75844SAndroid Build Coastguard Worker        info_plist = "objc/AppRTCMobile/ios/broadcast_extension/BroadcastSetupUIInfo.plist"
444*d9f75844SAndroid Build Coastguard Worker
445*d9f75844SAndroid Build Coastguard Worker        frameworks = [ "ReplayKit.framework" ]
446*d9f75844SAndroid Build Coastguard Worker
447*d9f75844SAndroid Build Coastguard Worker        deps = [ ":AppRTCMobile_ios_bundle_data" ]
448*d9f75844SAndroid Build Coastguard Worker      }
449*d9f75844SAndroid Build Coastguard Worker    }
450*d9f75844SAndroid Build Coastguard Worker
451*d9f75844SAndroid Build Coastguard Worker    bundle_data("AppRTCMobile_ios_bundle_data") {
452*d9f75844SAndroid Build Coastguard Worker      sources = [
453*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/resources/Roboto-Regular.ttf",
454*d9f75844SAndroid Build Coastguard Worker
455*d9f75844SAndroid Build Coastguard Worker        # Sample video taken from https://media.xiph.org/video/derf/
456*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/resources/foreman.mp4",
457*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/resources/iPhone5@2x.png",
458*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/resources/iPhone6@2x.png",
459*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/resources/iPhone6p@3x.png",
460*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/resources/ic_call_end_black_24dp.png",
461*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/resources/ic_call_end_black_24dp@2x.png",
462*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/resources/ic_clear_black_24dp.png",
463*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/resources/ic_clear_black_24dp@2x.png",
464*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/resources/ic_settings_black_24dp.png",
465*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/resources/ic_settings_black_24dp@2x.png",
466*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/resources/ic_surround_sound_black_24dp.png",
467*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/resources/ic_surround_sound_black_24dp@2x.png",
468*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/resources/ic_switch_video_black_24dp.png",
469*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/resources/ic_switch_video_black_24dp@2x.png",
470*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/ios/resources/mozart.mp3",
471*d9f75844SAndroid Build Coastguard Worker        "objc/Icon-120.png",
472*d9f75844SAndroid Build Coastguard Worker        "objc/Icon-180.png",
473*d9f75844SAndroid Build Coastguard Worker        "objc/Icon.png",
474*d9f75844SAndroid Build Coastguard Worker      ]
475*d9f75844SAndroid Build Coastguard Worker      outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ]
476*d9f75844SAndroid Build Coastguard Worker    }
477*d9f75844SAndroid Build Coastguard Worker
478*d9f75844SAndroid Build Coastguard Worker    rtc_library("ObjCNativeAPIDemo_lib") {
479*d9f75844SAndroid Build Coastguard Worker      testonly = true
480*d9f75844SAndroid Build Coastguard Worker      sources = [
481*d9f75844SAndroid Build Coastguard Worker        "objcnativeapi/objc/NADAppDelegate.h",
482*d9f75844SAndroid Build Coastguard Worker        "objcnativeapi/objc/NADAppDelegate.m",
483*d9f75844SAndroid Build Coastguard Worker        "objcnativeapi/objc/NADViewController.h",
484*d9f75844SAndroid Build Coastguard Worker        "objcnativeapi/objc/NADViewController.mm",
485*d9f75844SAndroid Build Coastguard Worker        "objcnativeapi/objc/objc_call_client.h",
486*d9f75844SAndroid Build Coastguard Worker        "objcnativeapi/objc/objc_call_client.mm",
487*d9f75844SAndroid Build Coastguard Worker      ]
488*d9f75844SAndroid Build Coastguard Worker
489*d9f75844SAndroid Build Coastguard Worker      deps = [
490*d9f75844SAndroid Build Coastguard Worker        "../api:libjingle_peerconnection_api",
491*d9f75844SAndroid Build Coastguard Worker        "../api:scoped_refptr",
492*d9f75844SAndroid Build Coastguard Worker        "../api:sequence_checker",
493*d9f75844SAndroid Build Coastguard Worker        "../api/audio_codecs:builtin_audio_decoder_factory",
494*d9f75844SAndroid Build Coastguard Worker        "../api/audio_codecs:builtin_audio_encoder_factory",
495*d9f75844SAndroid Build Coastguard Worker        "../api/rtc_event_log:rtc_event_log_factory",
496*d9f75844SAndroid Build Coastguard Worker        "../api/task_queue:default_task_queue_factory",
497*d9f75844SAndroid Build Coastguard Worker        "../media:rtc_audio_video",
498*d9f75844SAndroid Build Coastguard Worker        "../modules/audio_processing",
499*d9f75844SAndroid Build Coastguard Worker        "../modules/audio_processing:api",
500*d9f75844SAndroid Build Coastguard Worker        "../pc:libjingle_peerconnection",
501*d9f75844SAndroid Build Coastguard Worker        "../rtc_base",
502*d9f75844SAndroid Build Coastguard Worker        "../rtc_base/synchronization:mutex",
503*d9f75844SAndroid Build Coastguard Worker        "../sdk:base_objc",
504*d9f75844SAndroid Build Coastguard Worker        "../sdk:default_codec_factory_objc",
505*d9f75844SAndroid Build Coastguard Worker        "../sdk:helpers_objc",
506*d9f75844SAndroid Build Coastguard Worker        "../sdk:metal_objc",
507*d9f75844SAndroid Build Coastguard Worker        "../sdk:native_api",
508*d9f75844SAndroid Build Coastguard Worker        "../sdk:videocapture_objc",
509*d9f75844SAndroid Build Coastguard Worker        "../sdk:videotoolbox_objc",
510*d9f75844SAndroid Build Coastguard Worker      ]
511*d9f75844SAndroid Build Coastguard Worker
512*d9f75844SAndroid Build Coastguard Worker      if (rtc_ios_macos_use_opengl_rendering) {
513*d9f75844SAndroid Build Coastguard Worker        deps += [ "../sdk:opengl_ui_objc" ]
514*d9f75844SAndroid Build Coastguard Worker      }
515*d9f75844SAndroid Build Coastguard Worker    }
516*d9f75844SAndroid Build Coastguard Worker
517*d9f75844SAndroid Build Coastguard Worker    ios_app_bundle("ObjCNativeAPIDemo") {
518*d9f75844SAndroid Build Coastguard Worker      testonly = true
519*d9f75844SAndroid Build Coastguard Worker      sources = [ "objcnativeapi/objc/main.m" ]
520*d9f75844SAndroid Build Coastguard Worker
521*d9f75844SAndroid Build Coastguard Worker      info_plist = "objcnativeapi/Info.plist"
522*d9f75844SAndroid Build Coastguard Worker
523*d9f75844SAndroid Build Coastguard Worker      configs += [ "..:common_config" ]
524*d9f75844SAndroid Build Coastguard Worker      public_configs = [ "..:common_inherited_config" ]
525*d9f75844SAndroid Build Coastguard Worker
526*d9f75844SAndroid Build Coastguard Worker      deps = [ ":ObjCNativeAPIDemo_lib" ]
527*d9f75844SAndroid Build Coastguard Worker
528*d9f75844SAndroid Build Coastguard Worker      if (target_cpu == "x86") {
529*d9f75844SAndroid Build Coastguard Worker        deps += [ "//testing/iossim" ]
530*d9f75844SAndroid Build Coastguard Worker      }
531*d9f75844SAndroid Build Coastguard Worker    }
532*d9f75844SAndroid Build Coastguard Worker  }
533*d9f75844SAndroid Build Coastguard Worker
534*d9f75844SAndroid Build Coastguard Worker  if (is_mac) {
535*d9f75844SAndroid Build Coastguard Worker    rtc_library("AppRTCMobile_lib") {
536*d9f75844SAndroid Build Coastguard Worker      testonly = true
537*d9f75844SAndroid Build Coastguard Worker      sources = [
538*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/mac/APPRTCAppDelegate.h",
539*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/mac/APPRTCAppDelegate.m",
540*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/mac/APPRTCViewController.h",
541*d9f75844SAndroid Build Coastguard Worker        "objc/AppRTCMobile/mac/APPRTCViewController.m",
542*d9f75844SAndroid Build Coastguard Worker      ]
543*d9f75844SAndroid Build Coastguard Worker      configs += [ "..:common_objc" ]
544*d9f75844SAndroid Build Coastguard Worker      deps = [
545*d9f75844SAndroid Build Coastguard Worker        ":apprtc_common",
546*d9f75844SAndroid Build Coastguard Worker        ":apprtc_signaling",
547*d9f75844SAndroid Build Coastguard Worker        "../sdk:base_objc",
548*d9f75844SAndroid Build Coastguard Worker        "../sdk:helpers_objc",
549*d9f75844SAndroid Build Coastguard Worker        "../sdk:mediaconstraints_objc",
550*d9f75844SAndroid Build Coastguard Worker        "../sdk:metal_objc",
551*d9f75844SAndroid Build Coastguard Worker        "../sdk:opengl_ui_objc",
552*d9f75844SAndroid Build Coastguard Worker        "../sdk:peerconnectionfactory_base_objc",
553*d9f75844SAndroid Build Coastguard Worker        "../sdk:peerconnectionfactory_base_objc",
554*d9f75844SAndroid Build Coastguard Worker        "../sdk:videocapture_objc",
555*d9f75844SAndroid Build Coastguard Worker        "../sdk:videocodec_objc",
556*d9f75844SAndroid Build Coastguard Worker      ]
557*d9f75844SAndroid Build Coastguard Worker    }
558*d9f75844SAndroid Build Coastguard Worker
559*d9f75844SAndroid Build Coastguard Worker    mac_app_bundle("AppRTCMobile") {
560*d9f75844SAndroid Build Coastguard Worker      testonly = true
561*d9f75844SAndroid Build Coastguard Worker      output_name = "AppRTCMobile"
562*d9f75844SAndroid Build Coastguard Worker
563*d9f75844SAndroid Build Coastguard Worker      sources = [ "objc/AppRTCMobile/mac/main.m" ]
564*d9f75844SAndroid Build Coastguard Worker
565*d9f75844SAndroid Build Coastguard Worker      public_configs = [ "..:common_inherited_config" ]
566*d9f75844SAndroid Build Coastguard Worker
567*d9f75844SAndroid Build Coastguard Worker      info_plist = "objc/AppRTCMobile/mac/Info.plist"
568*d9f75844SAndroid Build Coastguard Worker
569*d9f75844SAndroid Build Coastguard Worker      frameworks = [ "AppKit.framework" ]
570*d9f75844SAndroid Build Coastguard Worker
571*d9f75844SAndroid Build Coastguard Worker      ldflags = [
572*d9f75844SAndroid Build Coastguard Worker        "-rpath",
573*d9f75844SAndroid Build Coastguard Worker        "@executable_path/../Frameworks",
574*d9f75844SAndroid Build Coastguard Worker      ]
575*d9f75844SAndroid Build Coastguard Worker
576*d9f75844SAndroid Build Coastguard Worker      deps = [
577*d9f75844SAndroid Build Coastguard Worker        ":AppRTCMobile_lib",
578*d9f75844SAndroid Build Coastguard Worker        "../sdk:mac_framework_bundle",
579*d9f75844SAndroid Build Coastguard Worker        "../sdk:mac_framework_objc+link",
580*d9f75844SAndroid Build Coastguard Worker      ]
581*d9f75844SAndroid Build Coastguard Worker    }
582*d9f75844SAndroid Build Coastguard Worker  }
583*d9f75844SAndroid Build Coastguard Worker
584*d9f75844SAndroid Build Coastguard Worker  config("socketrocket_include_config") {
585*d9f75844SAndroid Build Coastguard Worker    include_dirs = [ "objc/AppRTCMobile/third_party/SocketRocket" ]
586*d9f75844SAndroid Build Coastguard Worker  }
587*d9f75844SAndroid Build Coastguard Worker
588*d9f75844SAndroid Build Coastguard Worker  config("socketrocket_warning_config") {
589*d9f75844SAndroid Build Coastguard Worker    # GN orders flags on a target before flags from configs. The default config
590*d9f75844SAndroid Build Coastguard Worker    # adds these flags so to cancel them out they need to come from a config and
591*d9f75844SAndroid Build Coastguard Worker    # cannot be on the target directly.
592*d9f75844SAndroid Build Coastguard Worker    cflags = [
593*d9f75844SAndroid Build Coastguard Worker      "-Wno-deprecated-declarations",
594*d9f75844SAndroid Build Coastguard Worker      "-Wno-nonnull",
595*d9f75844SAndroid Build Coastguard Worker      "-Wno-semicolon-before-method-body",
596*d9f75844SAndroid Build Coastguard Worker      "-Wno-unused-variable",
597*d9f75844SAndroid Build Coastguard Worker    ]
598*d9f75844SAndroid Build Coastguard Worker
599*d9f75844SAndroid Build Coastguard Worker    cflags_objc = [
600*d9f75844SAndroid Build Coastguard Worker      # Enabled for cflags_objc in build/config/compiler/BUILD.gn.
601*d9f75844SAndroid Build Coastguard Worker      "-Wno-objc-missing-property-synthesis",
602*d9f75844SAndroid Build Coastguard Worker    ]
603*d9f75844SAndroid Build Coastguard Worker  }
604*d9f75844SAndroid Build Coastguard Worker
605*d9f75844SAndroid Build Coastguard Worker  rtc_library("socketrocket") {
606*d9f75844SAndroid Build Coastguard Worker    testonly = true
607*d9f75844SAndroid Build Coastguard Worker    sources = [
608*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/third_party/SocketRocket/SRWebSocket.h",
609*d9f75844SAndroid Build Coastguard Worker      "objc/AppRTCMobile/third_party/SocketRocket/SRWebSocket.m",
610*d9f75844SAndroid Build Coastguard Worker    ]
611*d9f75844SAndroid Build Coastguard Worker    configs += [ ":socketrocket_warning_config" ]
612*d9f75844SAndroid Build Coastguard Worker    public_configs = [ ":socketrocket_include_config" ]
613*d9f75844SAndroid Build Coastguard Worker
614*d9f75844SAndroid Build Coastguard Worker    libs = [ "icucore" ]
615*d9f75844SAndroid Build Coastguard Worker    frameworks = [
616*d9f75844SAndroid Build Coastguard Worker      "CFNetwork.framework",
617*d9f75844SAndroid Build Coastguard Worker      "Security.framework",
618*d9f75844SAndroid Build Coastguard Worker    ]
619*d9f75844SAndroid Build Coastguard Worker  }
620*d9f75844SAndroid Build Coastguard Worker
621*d9f75844SAndroid Build Coastguard Worker  if (rtc_include_tests) {
622*d9f75844SAndroid Build Coastguard Worker    # TODO(kthelgason): compile xctests on mac when chromium supports it.
623*d9f75844SAndroid Build Coastguard Worker    if (is_ios) {
624*d9f75844SAndroid Build Coastguard Worker      rtc_library("apprtcmobile_test_sources") {
625*d9f75844SAndroid Build Coastguard Worker        # iOS must use WebRTC.framework which is dynamically linked.
626*d9f75844SAndroid Build Coastguard Worker        testonly = true
627*d9f75844SAndroid Build Coastguard Worker        include_dirs = [
628*d9f75844SAndroid Build Coastguard Worker          "objc/AppRTCMobile",
629*d9f75844SAndroid Build Coastguard Worker          "objc/AppRTCMobile/ios",
630*d9f75844SAndroid Build Coastguard Worker        ]
631*d9f75844SAndroid Build Coastguard Worker        sources = [
632*d9f75844SAndroid Build Coastguard Worker          "objc/AppRTCMobile/tests/ARDAppClient_xctest.mm",
633*d9f75844SAndroid Build Coastguard Worker          "objc/AppRTCMobile/tests/ARDFileCaptureController_xctest.mm",
634*d9f75844SAndroid Build Coastguard Worker          "objc/AppRTCMobile/tests/ARDSettingsModel_xctest.mm",
635*d9f75844SAndroid Build Coastguard Worker        ]
636*d9f75844SAndroid Build Coastguard Worker        deps = [
637*d9f75844SAndroid Build Coastguard Worker          ":AppRTCMobile_lib",
638*d9f75844SAndroid Build Coastguard Worker          ":apprtc_signaling",
639*d9f75844SAndroid Build Coastguard Worker          "../rtc_base",
640*d9f75844SAndroid Build Coastguard Worker          "../sdk:mediaconstraints_objc",
641*d9f75844SAndroid Build Coastguard Worker          "../sdk:peerconnectionfactory_base_objc",
642*d9f75844SAndroid Build Coastguard Worker          "../sdk:videocapture_objc",
643*d9f75844SAndroid Build Coastguard Worker          "//build/config/ios:xctest",
644*d9f75844SAndroid Build Coastguard Worker          "//third_party/ocmock",
645*d9f75844SAndroid Build Coastguard Worker        ]
646*d9f75844SAndroid Build Coastguard Worker      }
647*d9f75844SAndroid Build Coastguard Worker
648*d9f75844SAndroid Build Coastguard Worker      rtc_test("apprtcmobile_tests") {
649*d9f75844SAndroid Build Coastguard Worker        is_xctest = true
650*d9f75844SAndroid Build Coastguard Worker        info_plist = "objc/AppRTCMobile/ios/Info.plist"
651*d9f75844SAndroid Build Coastguard Worker        sources = [ "objc/AppRTCMobile/tests/main.mm" ]
652*d9f75844SAndroid Build Coastguard Worker        deps = [
653*d9f75844SAndroid Build Coastguard Worker          ":AppRTCMobile_lib",
654*d9f75844SAndroid Build Coastguard Worker          ":apprtcmobile_test_sources",
655*d9f75844SAndroid Build Coastguard Worker          "../sdk:framework_objc",
656*d9f75844SAndroid Build Coastguard Worker          "//test:test_support",
657*d9f75844SAndroid Build Coastguard Worker        ]
658*d9f75844SAndroid Build Coastguard Worker        ldflags = [ "-all_load" ]
659*d9f75844SAndroid Build Coastguard Worker      }
660*d9f75844SAndroid Build Coastguard Worker    }
661*d9f75844SAndroid Build Coastguard Worker  }
662*d9f75844SAndroid Build Coastguard Worker}
663*d9f75844SAndroid Build Coastguard Worker
664*d9f75844SAndroid Build Coastguard Workerif (is_linux || is_chromeos || is_win) {
665*d9f75844SAndroid Build Coastguard Worker  if (is_linux || is_chromeos) {
666*d9f75844SAndroid Build Coastguard Worker    pkg_config("gtk_config") {
667*d9f75844SAndroid Build Coastguard Worker      packages = [
668*d9f75844SAndroid Build Coastguard Worker        # Gtk requires gmodule, but it does not list it as a dependency in some
669*d9f75844SAndroid Build Coastguard Worker        # misconfigured systems.
670*d9f75844SAndroid Build Coastguard Worker        "gmodule-2.0",
671*d9f75844SAndroid Build Coastguard Worker        "gthread-2.0",
672*d9f75844SAndroid Build Coastguard Worker        "gtk+-3.0",
673*d9f75844SAndroid Build Coastguard Worker      ]
674*d9f75844SAndroid Build Coastguard Worker    }
675*d9f75844SAndroid Build Coastguard Worker  }
676*d9f75844SAndroid Build Coastguard Worker
677*d9f75844SAndroid Build Coastguard Worker  rtc_executable("peerconnection_client") {
678*d9f75844SAndroid Build Coastguard Worker    testonly = true
679*d9f75844SAndroid Build Coastguard Worker    sources = [
680*d9f75844SAndroid Build Coastguard Worker      "peerconnection/client/conductor.cc",
681*d9f75844SAndroid Build Coastguard Worker      "peerconnection/client/conductor.h",
682*d9f75844SAndroid Build Coastguard Worker      "peerconnection/client/defaults.cc",
683*d9f75844SAndroid Build Coastguard Worker      "peerconnection/client/defaults.h",
684*d9f75844SAndroid Build Coastguard Worker      "peerconnection/client/peer_connection_client.cc",
685*d9f75844SAndroid Build Coastguard Worker      "peerconnection/client/peer_connection_client.h",
686*d9f75844SAndroid Build Coastguard Worker    ]
687*d9f75844SAndroid Build Coastguard Worker
688*d9f75844SAndroid Build Coastguard Worker    deps = [
689*d9f75844SAndroid Build Coastguard Worker      "../api:audio_options_api",
690*d9f75844SAndroid Build Coastguard Worker      "../api:create_peerconnection_factory",
691*d9f75844SAndroid Build Coastguard Worker      "../api:libjingle_peerconnection_api",
692*d9f75844SAndroid Build Coastguard Worker      "../api:media_stream_interface",
693*d9f75844SAndroid Build Coastguard Worker      "../api:rtp_sender_interface",
694*d9f75844SAndroid Build Coastguard Worker      "../api:scoped_refptr",
695*d9f75844SAndroid Build Coastguard Worker      "../api/audio:audio_mixer_api",
696*d9f75844SAndroid Build Coastguard Worker      "../api/audio_codecs:audio_codecs_api",
697*d9f75844SAndroid Build Coastguard Worker      "../api/task_queue:pending_task_safety_flag",
698*d9f75844SAndroid Build Coastguard Worker      "../api/units:time_delta",
699*d9f75844SAndroid Build Coastguard Worker      "../api/video:video_frame",
700*d9f75844SAndroid Build Coastguard Worker      "../api/video:video_rtp_headers",
701*d9f75844SAndroid Build Coastguard Worker      "../api/video_codecs:video_codecs_api",
702*d9f75844SAndroid Build Coastguard Worker      "../media:rtc_media_base",
703*d9f75844SAndroid Build Coastguard Worker      "../p2p:rtc_p2p",
704*d9f75844SAndroid Build Coastguard Worker      "../pc:video_track_source",
705*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:checks",
706*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:logging",
707*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:macromagic",
708*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:net_helpers",
709*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:refcount",
710*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:stringutils",
711*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:threading",
712*d9f75844SAndroid Build Coastguard Worker      "../rtc_base/third_party/sigslot",
713*d9f75844SAndroid Build Coastguard Worker      "../system_wrappers:field_trial",
714*d9f75844SAndroid Build Coastguard Worker      "../test:field_trial",
715*d9f75844SAndroid Build Coastguard Worker      "../test:platform_video_capturer",
716*d9f75844SAndroid Build Coastguard Worker      "../test:rtp_test_utils",
717*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/memory",
718*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/types:optional",
719*d9f75844SAndroid Build Coastguard Worker    ]
720*d9f75844SAndroid Build Coastguard Worker    if (is_win) {
721*d9f75844SAndroid Build Coastguard Worker      sources += [
722*d9f75844SAndroid Build Coastguard Worker        "peerconnection/client/flag_defs.h",
723*d9f75844SAndroid Build Coastguard Worker        "peerconnection/client/main.cc",
724*d9f75844SAndroid Build Coastguard Worker        "peerconnection/client/main_wnd.cc",
725*d9f75844SAndroid Build Coastguard Worker        "peerconnection/client/main_wnd.h",
726*d9f75844SAndroid Build Coastguard Worker      ]
727*d9f75844SAndroid Build Coastguard Worker      configs += [ "//build/config/win:windowed" ]
728*d9f75844SAndroid Build Coastguard Worker      deps += [
729*d9f75844SAndroid Build Coastguard Worker        "../media:rtc_media_base",
730*d9f75844SAndroid Build Coastguard Worker        "../rtc_base:win32",
731*d9f75844SAndroid Build Coastguard Worker      ]
732*d9f75844SAndroid Build Coastguard Worker    }
733*d9f75844SAndroid Build Coastguard Worker    if (is_linux || is_chromeos) {
734*d9f75844SAndroid Build Coastguard Worker      sources += [
735*d9f75844SAndroid Build Coastguard Worker        "peerconnection/client/linux/main.cc",
736*d9f75844SAndroid Build Coastguard Worker        "peerconnection/client/linux/main_wnd.cc",
737*d9f75844SAndroid Build Coastguard Worker        "peerconnection/client/linux/main_wnd.h",
738*d9f75844SAndroid Build Coastguard Worker      ]
739*d9f75844SAndroid Build Coastguard Worker      cflags = [ "-Wno-deprecated-declarations" ]
740*d9f75844SAndroid Build Coastguard Worker      libs = [
741*d9f75844SAndroid Build Coastguard Worker        "X11",
742*d9f75844SAndroid Build Coastguard Worker        "Xcomposite",
743*d9f75844SAndroid Build Coastguard Worker        "Xext",
744*d9f75844SAndroid Build Coastguard Worker        "Xrender",
745*d9f75844SAndroid Build Coastguard Worker      ]
746*d9f75844SAndroid Build Coastguard Worker      configs += [ ":gtk_config" ]
747*d9f75844SAndroid Build Coastguard Worker    }
748*d9f75844SAndroid Build Coastguard Worker
749*d9f75844SAndroid Build Coastguard Worker    deps += [
750*d9f75844SAndroid Build Coastguard Worker      "../api:libjingle_peerconnection_api",
751*d9f75844SAndroid Build Coastguard Worker      "../api/audio_codecs:builtin_audio_decoder_factory",
752*d9f75844SAndroid Build Coastguard Worker      "../api/audio_codecs:builtin_audio_encoder_factory",
753*d9f75844SAndroid Build Coastguard Worker      "../api/video:video_frame",
754*d9f75844SAndroid Build Coastguard Worker      "../api/video:video_rtp_headers",
755*d9f75844SAndroid Build Coastguard Worker      "../api/video_codecs:builtin_video_decoder_factory",
756*d9f75844SAndroid Build Coastguard Worker      "../api/video_codecs:builtin_video_encoder_factory",
757*d9f75844SAndroid Build Coastguard Worker      "../media:rtc_audio_video",
758*d9f75844SAndroid Build Coastguard Worker      "../modules/audio_device",
759*d9f75844SAndroid Build Coastguard Worker      "../modules/audio_processing",
760*d9f75844SAndroid Build Coastguard Worker      "../modules/audio_processing:api",
761*d9f75844SAndroid Build Coastguard Worker      "../modules/video_capture:video_capture_module",
762*d9f75844SAndroid Build Coastguard Worker      "../pc:libjingle_peerconnection",
763*d9f75844SAndroid Build Coastguard Worker      "../rtc_base",
764*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:rtc_json",
765*d9f75844SAndroid Build Coastguard Worker      "../test:video_test_common",
766*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/flags:flag",
767*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/flags:parse",
768*d9f75844SAndroid Build Coastguard Worker      "//third_party/libyuv",
769*d9f75844SAndroid Build Coastguard Worker    ]
770*d9f75844SAndroid Build Coastguard Worker  }
771*d9f75844SAndroid Build Coastguard Worker
772*d9f75844SAndroid Build Coastguard Worker  rtc_executable("peerconnection_server") {
773*d9f75844SAndroid Build Coastguard Worker    testonly = true
774*d9f75844SAndroid Build Coastguard Worker    sources = [
775*d9f75844SAndroid Build Coastguard Worker      "peerconnection/server/data_socket.cc",
776*d9f75844SAndroid Build Coastguard Worker      "peerconnection/server/data_socket.h",
777*d9f75844SAndroid Build Coastguard Worker      "peerconnection/server/main.cc",
778*d9f75844SAndroid Build Coastguard Worker      "peerconnection/server/peer_channel.cc",
779*d9f75844SAndroid Build Coastguard Worker      "peerconnection/server/peer_channel.h",
780*d9f75844SAndroid Build Coastguard Worker      "peerconnection/server/utils.cc",
781*d9f75844SAndroid Build Coastguard Worker      "peerconnection/server/utils.h",
782*d9f75844SAndroid Build Coastguard Worker    ]
783*d9f75844SAndroid Build Coastguard Worker    deps = [
784*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:checks",
785*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:stringutils",
786*d9f75844SAndroid Build Coastguard Worker      "../system_wrappers:field_trial",
787*d9f75844SAndroid Build Coastguard Worker      "../test:field_trial",
788*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/flags:flag",
789*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/flags:parse",
790*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/flags:usage",
791*d9f75844SAndroid Build Coastguard Worker    ]
792*d9f75844SAndroid Build Coastguard Worker  }
793*d9f75844SAndroid Build Coastguard Worker  rtc_executable("turnserver") {
794*d9f75844SAndroid Build Coastguard Worker    testonly = true
795*d9f75844SAndroid Build Coastguard Worker    sources = [ "turnserver/turnserver_main.cc" ]
796*d9f75844SAndroid Build Coastguard Worker    deps = [
797*d9f75844SAndroid Build Coastguard Worker      ":read_auth_file",
798*d9f75844SAndroid Build Coastguard Worker      "../p2p:p2p_server_utils",
799*d9f75844SAndroid Build Coastguard Worker      "../p2p:rtc_p2p",
800*d9f75844SAndroid Build Coastguard Worker      "../pc:rtc_pc",
801*d9f75844SAndroid Build Coastguard Worker      "../rtc_base",
802*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:ip_address",
803*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:socket_address",
804*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:socket_server",
805*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:threading",
806*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/strings:strings",
807*d9f75844SAndroid Build Coastguard Worker    ]
808*d9f75844SAndroid Build Coastguard Worker  }
809*d9f75844SAndroid Build Coastguard Worker  rtc_executable("stunserver") {
810*d9f75844SAndroid Build Coastguard Worker    testonly = true
811*d9f75844SAndroid Build Coastguard Worker    sources = [ "stunserver/stunserver_main.cc" ]
812*d9f75844SAndroid Build Coastguard Worker    deps = [
813*d9f75844SAndroid Build Coastguard Worker      "../p2p:p2p_server_utils",
814*d9f75844SAndroid Build Coastguard Worker      "../p2p:rtc_p2p",
815*d9f75844SAndroid Build Coastguard Worker      "../pc:rtc_pc",
816*d9f75844SAndroid Build Coastguard Worker      "../rtc_base",
817*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:socket_address",
818*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:socket_server",
819*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:threading",
820*d9f75844SAndroid Build Coastguard Worker    ]
821*d9f75844SAndroid Build Coastguard Worker  }
822*d9f75844SAndroid Build Coastguard Worker}
823*d9f75844SAndroid Build Coastguard Worker
824*d9f75844SAndroid Build Coastguard Workerif (is_win || is_android) {
825*d9f75844SAndroid Build Coastguard Worker  rtc_shared_library("webrtc_unity_plugin") {
826*d9f75844SAndroid Build Coastguard Worker    testonly = true
827*d9f75844SAndroid Build Coastguard Worker    sources = [
828*d9f75844SAndroid Build Coastguard Worker      "unityplugin/simple_peer_connection.cc",
829*d9f75844SAndroid Build Coastguard Worker      "unityplugin/simple_peer_connection.h",
830*d9f75844SAndroid Build Coastguard Worker      "unityplugin/unity_plugin_apis.cc",
831*d9f75844SAndroid Build Coastguard Worker      "unityplugin/unity_plugin_apis.h",
832*d9f75844SAndroid Build Coastguard Worker      "unityplugin/video_observer.cc",
833*d9f75844SAndroid Build Coastguard Worker      "unityplugin/video_observer.h",
834*d9f75844SAndroid Build Coastguard Worker    ]
835*d9f75844SAndroid Build Coastguard Worker
836*d9f75844SAndroid Build Coastguard Worker    if (is_android) {
837*d9f75844SAndroid Build Coastguard Worker      sources += [
838*d9f75844SAndroid Build Coastguard Worker        "unityplugin/class_reference_holder.cc",
839*d9f75844SAndroid Build Coastguard Worker        "unityplugin/class_reference_holder.h",
840*d9f75844SAndroid Build Coastguard Worker        "unityplugin/jni_onload.cc",
841*d9f75844SAndroid Build Coastguard Worker      ]
842*d9f75844SAndroid Build Coastguard Worker      suppressed_configs += [ "//build/config/android:hide_all_but_jni_onload" ]
843*d9f75844SAndroid Build Coastguard Worker    }
844*d9f75844SAndroid Build Coastguard Worker
845*d9f75844SAndroid Build Coastguard Worker    if (is_win) {
846*d9f75844SAndroid Build Coastguard Worker      configs += [ "//build/config/win:windowed" ]
847*d9f75844SAndroid Build Coastguard Worker    }
848*d9f75844SAndroid Build Coastguard Worker    deps = [
849*d9f75844SAndroid Build Coastguard Worker      "../api:create_peerconnection_factory",
850*d9f75844SAndroid Build Coastguard Worker      "../api:libjingle_peerconnection_api",
851*d9f75844SAndroid Build Coastguard Worker      "../api:media_stream_interface",
852*d9f75844SAndroid Build Coastguard Worker      "../api/audio_codecs:builtin_audio_decoder_factory",
853*d9f75844SAndroid Build Coastguard Worker      "../api/audio_codecs:builtin_audio_encoder_factory",
854*d9f75844SAndroid Build Coastguard Worker      "../api/video:video_frame",
855*d9f75844SAndroid Build Coastguard Worker      "../api/video:video_rtp_headers",
856*d9f75844SAndroid Build Coastguard Worker      "../media:rtc_audio_video",
857*d9f75844SAndroid Build Coastguard Worker      "../media:rtc_internal_video_codecs",
858*d9f75844SAndroid Build Coastguard Worker      "../media:rtc_media",
859*d9f75844SAndroid Build Coastguard Worker      "../media:rtc_media_base",
860*d9f75844SAndroid Build Coastguard Worker      "../modules/audio_device",
861*d9f75844SAndroid Build Coastguard Worker      "../modules/audio_processing",
862*d9f75844SAndroid Build Coastguard Worker      "../modules/audio_processing:api",
863*d9f75844SAndroid Build Coastguard Worker      "../modules/video_capture:video_capture_module",
864*d9f75844SAndroid Build Coastguard Worker      "../pc:libjingle_peerconnection",
865*d9f75844SAndroid Build Coastguard Worker      "../pc:video_track_source",
866*d9f75844SAndroid Build Coastguard Worker      "../rtc_base",
867*d9f75844SAndroid Build Coastguard Worker      "../test:platform_video_capturer",
868*d9f75844SAndroid Build Coastguard Worker      "../test:video_test_common",
869*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/memory",
870*d9f75844SAndroid Build Coastguard Worker    ]
871*d9f75844SAndroid Build Coastguard Worker    if (is_android) {
872*d9f75844SAndroid Build Coastguard Worker      deps += [
873*d9f75844SAndroid Build Coastguard Worker        "../modules/utility",
874*d9f75844SAndroid Build Coastguard Worker        "../sdk/android:libjingle_peerconnection_jni",
875*d9f75844SAndroid Build Coastguard Worker        "../sdk/android:native_api_jni",
876*d9f75844SAndroid Build Coastguard Worker      ]
877*d9f75844SAndroid Build Coastguard Worker    }
878*d9f75844SAndroid Build Coastguard Worker  }
879*d9f75844SAndroid Build Coastguard Worker}
880*d9f75844SAndroid Build Coastguard Worker
881*d9f75844SAndroid Build Coastguard Workerif (is_android) {
882*d9f75844SAndroid Build Coastguard Worker  rtc_android_library("webrtc_unity_java") {
883*d9f75844SAndroid Build Coastguard Worker    sources = [ "unityplugin/java/src/org/webrtc/UnityUtility.java" ]
884*d9f75844SAndroid Build Coastguard Worker    deps = [
885*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:base_java",
886*d9f75844SAndroid Build Coastguard Worker      "../sdk/android:camera_java",
887*d9f75844SAndroid Build Coastguard Worker      "../sdk/android:libjingle_peerconnection_java",
888*d9f75844SAndroid Build Coastguard Worker      "../sdk/android:peerconnection_java",
889*d9f75844SAndroid Build Coastguard Worker      "../sdk/android:video_api_java",
890*d9f75844SAndroid Build Coastguard Worker      "../sdk/android:video_java",
891*d9f75844SAndroid Build Coastguard Worker      "//third_party/androidx:androidx_annotation_annotation_java",
892*d9f75844SAndroid Build Coastguard Worker    ]
893*d9f75844SAndroid Build Coastguard Worker  }
894*d9f75844SAndroid Build Coastguard Worker
895*d9f75844SAndroid Build Coastguard Worker  dist_jar("libwebrtc_unity") {
896*d9f75844SAndroid Build Coastguard Worker    _target_dir_name = get_label_info(":$target_name", "dir")
897*d9f75844SAndroid Build Coastguard Worker    output = "${root_out_dir}/lib.java${_target_dir_name}/${target_name}.jar"
898*d9f75844SAndroid Build Coastguard Worker    direct_deps_only = false
899*d9f75844SAndroid Build Coastguard Worker    use_interface_jars = false
900*d9f75844SAndroid Build Coastguard Worker    use_unprocessed_jars = false
901*d9f75844SAndroid Build Coastguard Worker    requires_android = true
902*d9f75844SAndroid Build Coastguard Worker    deps = [
903*d9f75844SAndroid Build Coastguard Worker      ":webrtc_unity_java",
904*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:base_java",
905*d9f75844SAndroid Build Coastguard Worker      "../sdk/android:libjingle_peerconnection_java",
906*d9f75844SAndroid Build Coastguard Worker      "../sdk/android:libjingle_peerconnection_metrics_default_java",
907*d9f75844SAndroid Build Coastguard Worker      "//third_party/androidx:androidx_annotation_annotation_java",
908*d9f75844SAndroid Build Coastguard Worker    ]
909*d9f75844SAndroid Build Coastguard Worker  }
910*d9f75844SAndroid Build Coastguard Worker
911*d9f75844SAndroid Build Coastguard Worker  robolectric_binary("android_examples_junit_tests") {
912*d9f75844SAndroid Build Coastguard Worker    sources = [
913*d9f75844SAndroid Build Coastguard Worker      "androidjunit/src/org/appspot/apprtc/BluetoothManagerTest.java",
914*d9f75844SAndroid Build Coastguard Worker      "androidjunit/src/org/appspot/apprtc/DirectRTCClientTest.java",
915*d9f75844SAndroid Build Coastguard Worker      "androidjunit/src/org/appspot/apprtc/TCPChannelClientTest.java",
916*d9f75844SAndroid Build Coastguard Worker    ]
917*d9f75844SAndroid Build Coastguard Worker
918*d9f75844SAndroid Build Coastguard Worker    deps = [
919*d9f75844SAndroid Build Coastguard Worker      ":AppRTCMobile_javalib",
920*d9f75844SAndroid Build Coastguard Worker      "../sdk/android:peerconnection_java",
921*d9f75844SAndroid Build Coastguard Worker      "//third_party/androidx:androidx_test_core_java",
922*d9f75844SAndroid Build Coastguard Worker      "//third_party/google-truth:google_truth_java",
923*d9f75844SAndroid Build Coastguard Worker    ]
924*d9f75844SAndroid Build Coastguard Worker
925*d9f75844SAndroid Build Coastguard Worker    additional_jar_files = [ [
926*d9f75844SAndroid Build Coastguard Worker          "../sdk/android/tests/resources/robolectric.properties",
927*d9f75844SAndroid Build Coastguard Worker          "robolectric.properties",
928*d9f75844SAndroid Build Coastguard Worker        ] ]
929*d9f75844SAndroid Build Coastguard Worker  }
930*d9f75844SAndroid Build Coastguard Worker}
931*d9f75844SAndroid Build Coastguard Worker
932*d9f75844SAndroid Build Coastguard Workerif (!build_with_chromium) {
933*d9f75844SAndroid Build Coastguard Worker  # Doesn't build within Chrome on Win.
934*d9f75844SAndroid Build Coastguard Worker  rtc_executable("stun_prober") {
935*d9f75844SAndroid Build Coastguard Worker    testonly = true
936*d9f75844SAndroid Build Coastguard Worker    sources = [ "stunprober/main.cc" ]
937*d9f75844SAndroid Build Coastguard Worker    deps = [
938*d9f75844SAndroid Build Coastguard Worker      "../p2p:libstunprober",
939*d9f75844SAndroid Build Coastguard Worker      "../p2p:rtc_p2p",
940*d9f75844SAndroid Build Coastguard Worker      "../rtc_base",
941*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:checks",
942*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:logging",
943*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:socket_address",
944*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:threading",
945*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:timeutils",
946*d9f75844SAndroid Build Coastguard Worker      "../test:scoped_key_value_config",
947*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/flags:flag",
948*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/flags:parse",
949*d9f75844SAndroid Build Coastguard Worker    ]
950*d9f75844SAndroid Build Coastguard Worker  }
951*d9f75844SAndroid Build Coastguard Worker}
952