@@ -83,7 +83,10 @@ function refetchLibmediasoupclient() {
83
83
echo ' Cloning libmediasoupclient'
84
84
cd $WORK_DIR
85
85
rm -rf libmediasoupclient
86
- git clone -b vl-3.4.1 --depth 1 https://github.com/VLprojects/libmediasoupclient.git
86
+ git clone -b vivi --depth 1 https://github.com/viviedu/libmediasoupclient
87
+ pushd libmediasoupclient
88
+ git checkout 050f3298324e5c9686753333550cce44ac012e07
89
+ popd
87
90
}
88
91
89
92
if [ -d $WORK_DIR /libmediasoupclient ]
@@ -165,6 +168,7 @@ function patchWebRTC() {
165
168
patch -b -p0 -d $WORK_DIR < $PATCHES_DIR /objc_video_encoder_factory_mm.patch
166
169
patch -b -p0 -d $WORK_DIR < $PATCHES_DIR /video_decoder_factory_h.patch
167
170
patch -b -p0 -d $WORK_DIR < $PATCHES_DIR /video_encoder_factory_h.patch
171
+ patch -b -p0 -d $WORK_DIR < $PATCHES_DIR /pc_BUILD.patch
168
172
}
169
173
170
174
# WebRTC sources are downloaded by git client from Depot tools.
@@ -181,15 +185,15 @@ function refetchWebRTC() {
181
185
gclient config --spec \
182
186
' solutions = [{
183
187
"name": "src",
184
- "url": "https://webrtc.googlesource. com/src .git",
188
+ "url": "https://github. com/webrtc-sdk/webrtc .git",
185
189
"deps_file": "DEPS",
186
190
"managed": False,
187
191
"custom_deps": {},
188
192
}]
189
193
target_os = ["ios"]'
190
194
191
- # Fetch WebRTC m120 version.
192
- gclient sync --no-history --revision src@branch-heads/6099
195
+ # Fetch WebRTC m125 version.
196
+ gclient sync --no-history --revision src@844bafa06d0b9088fd7fa4244832abf8e70a1d3d
193
197
194
198
# Fetch all possible WebRTC versions so you can switch between them.
195
199
# Takes longer time and more disk space.
@@ -216,7 +220,7 @@ target_os = ["ios"]'
216
220
function resetWebRTC() {
217
221
cd $WORK_DIR /webrtc/src
218
222
git reset --hard
219
-
223
+
220
224
cd $WORK_DIR /webrtc/src/third_party
221
225
git reset --hard
222
226
}
@@ -263,7 +267,7 @@ cd $WEBRTC_DIR
263
267
# It contains all available configuration flags with comprehensive comments for each.
264
268
gn_arguments=(
265
269
' target_os="ios"'
266
- ' ios_deployment_target="14 .0"'
270
+ ' ios_deployment_target="17 .0"'
267
271
' ios_enable_code_signing=false'
268
272
' is_component_build=false'
269
273
# 'is_debug=true'
@@ -286,21 +290,36 @@ gn_arguments=(
286
290
for str in ${gn_arguments[@]} ; do
287
291
gn_args+=" ${str} "
288
292
done
293
+
294
+ # iOS
289
295
platform_args=' target_environment="device" target_cpu="arm64"'
290
296
gn gen $BUILD_DIR /WebRTC/device/arm64 --ide=xcode --args=" ${platform_args}${gn_args} "
297
+ # tvOS
298
+ platform_args=' target_environment="appletv" target_cpu="arm64"'
299
+ gn gen $BUILD_DIR /WebRTC/appletv/arm64 --ide=xcode --args=" ${platform_args}${gn_args} "
300
+ # iOS Simulator
291
301
platform_args=' target_environment="simulator" target_cpu="x64"'
292
302
gn gen $BUILD_DIR /WebRTC/simulator/x64 --ide=xcode --args=" ${platform_args}${gn_args} "
293
303
platform_args=' target_environment="simulator" target_cpu="arm64"'
294
304
gn gen $BUILD_DIR /WebRTC/simulator/arm64 --ide=xcode --args=" ${platform_args}${gn_args} "
305
+ # tvOS Simulator
306
+ # FIXME x64 build fails at the ninja step below
307
+ # platform_args='target_environment="appletvsimulator" target_cpu="x64"'
308
+ # gn gen $BUILD_DIR/WebRTC/appletvsimulator/x64 --ide=xcode --args="${platform_args}${gn_args}"
309
+ platform_args=' target_environment="appletvsimulator" target_cpu="arm64"'
310
+ gn gen $BUILD_DIR /WebRTC/appletvsimulator/arm64 --ide=xcode --args=" ${platform_args}${gn_args} "
295
311
296
312
# This command can be used to check which symbols will be included
297
313
# in each target without waiting to perform actual build:
298
314
# ninja -t browse webrtc
299
315
300
316
cd $BUILD_DIR /WebRTC
301
317
ninja -C device/arm64 sdk
318
+ ninja -C appletv/arm64 sdk
302
319
ninja -C simulator/x64 sdk
303
320
ninja -C simulator/arm64 sdk
321
+ # ninja -C appletvsimulator/x64 sdk
322
+ ninja -C appletvsimulator/arm64 sdk
304
323
305
324
cd $BUILD_DIR /WebRTC
306
325
rm -rf simulator/WebRTC.framework
@@ -310,12 +329,24 @@ lipo -create \
310
329
simulator/arm64/WebRTC.framework/WebRTC \
311
330
simulator/x64/WebRTC.framework/WebRTC \
312
331
-output simulator/WebRTC.framework/WebRTC
332
+ rm -rf appletvsimulator/WebRTC.framework
333
+ cp -R appletvsimulator/arm64/WebRTC.framework appletvsimulator/WebRTC.framework
334
+ rm appletvsimulator/WebRTC.framework/WebRTC
335
+ # lipo -create \
336
+ # appletvsimulator/arm64/WebRTC.framework/WebRTC \
337
+ # appletvsimulator/x64/WebRTC.framework/WebRTC \
338
+ # -output appletvsimulator/WebRTC.framework/WebRTC
339
+ lipo -create \
340
+ appletvsimulator/arm64/WebRTC.framework/WebRTC \
341
+ -output appletvsimulator/WebRTC.framework/WebRTC
313
342
314
343
cd $BUILD_DIR /WebRTC
315
344
rm -rf $OUTPUT_DIR /WebRTC.xcframework
316
345
xcodebuild -create-xcframework \
317
346
-framework device/arm64/WebRTC.framework \
347
+ -framework appletv/arm64/WebRTC.framework \
318
348
-framework simulator/WebRTC.framework \
349
+ -framework appletvsimulator/WebRTC.framework \
319
350
-output $OUTPUT_DIR /WebRTC.xcframework
320
351
321
352
cd $WORK_DIR
@@ -350,6 +381,15 @@ function rebuildLMSC() {
350
381
-DCMAKE_OSX_SYSROOT=" /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk"
351
382
make -C $BUILD_DIR /libmediasoupclient/device/arm64
352
383
384
+ cmake . -B $BUILD_DIR /libmediasoupclient/appletv/arm64 \
385
+ ${lmsc_cmake_args} \
386
+ -DLIBWEBRTC_BINARY_PATH=$BUILD_DIR /WebRTC/appletv/arm64/WebRTC.framework/WebRTC \
387
+ -DIOS_SDK=appletv \
388
+ -DIOS_ARCHS=" arm64" \
389
+ -DPLATFORM=OS64 \
390
+ -DCMAKE_OSX_SYSROOT=" /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk"
391
+ make -C $BUILD_DIR /libmediasoupclient/appletv/arm64
392
+
353
393
cmake . -B $BUILD_DIR /libmediasoupclient/simulator/x64 \
354
394
${lmsc_cmake_args} \
355
395
-DLIBWEBRTC_BINARY_PATH=$BUILD_DIR /WebRTC/simulator/x64/WebRTC.framework/WebRTC \
@@ -368,8 +408,27 @@ function rebuildLMSC() {
368
408
-DCMAKE_OSX_SYSROOT=" /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk"
369
409
make -C $BUILD_DIR /libmediasoupclient/simulator/arm64
370
410
411
+ # cmake . -B $BUILD_DIR/libmediasoupclient/appletvsimulator/x64 \
412
+ # ${lmsc_cmake_args} \
413
+ # -DLIBWEBRTC_BINARY_PATH=$BUILD_DIR/WebRTC/appletvsimulator/x64/WebRTC.framework/WebRTC \
414
+ # -DIOS_SDK=appletvsimulator \
415
+ # -DIOS_ARCHS="x86_64" \
416
+ # -DPLATFORM=SIMULATOR64 \
417
+ # -DCMAKE_OSX_SYSROOT="/Applications/Xcode.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/SDKs/AppleTVSimulator.sdk"
418
+ # make -C $BUILD_DIR/libmediasoupclient/appletvsimulator/x64
419
+
420
+ cmake . -B $BUILD_DIR /libmediasoupclient/appletvsimulator/arm64 \
421
+ ${lmsc_cmake_args} \
422
+ -DLIBWEBRTC_BINARY_PATH=$BUILD_DIR /WebRTC/appletvsimulator/arm64/WebRTC.framework/WebRTC \
423
+ -DIOS_SDK=appletvsimulator \
424
+ -DIOS_ARCHS=" arm64" \
425
+ -DPLATFORM=SIMULATORARM64 \
426
+ -DCMAKE_OSX_SYSROOT=" /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/SDKs/AppleTVSimulator.sdk"
427
+ make -C $BUILD_DIR /libmediasoupclient/appletvsimulator/arm64
428
+
371
429
# Create a FAT libmediasoup / libsdptransform library
372
430
mkdir -p $BUILD_DIR /libmediasoupclient/simulator/fat
431
+ mkdir -p $BUILD_DIR /libmediasoupclient/appletvsimulator/fat
373
432
lipo -create \
374
433
$BUILD_DIR /libmediasoupclient/simulator/x64/libmediasoupclient/libmediasoupclient.a \
375
434
$BUILD_DIR /libmediasoupclient/simulator/arm64/libmediasoupclient/libmediasoupclient.a \
@@ -378,13 +437,31 @@ function rebuildLMSC() {
378
437
$BUILD_DIR /libmediasoupclient/simulator/x64/_deps/libsdptransform-build/libsdptransform.a \
379
438
$BUILD_DIR /libmediasoupclient/simulator/arm64/_deps/libsdptransform-build/libsdptransform.a \
380
439
-output $BUILD_DIR /libmediasoupclient/simulator/fat/libsdptransform.a
440
+ # lipo -create \
441
+ # $BUILD_DIR/libmediasoupclient/appletvsimulator/x64/libmediasoupclient/libmediasoupclient.a \
442
+ # $BUILD_DIR/libmediasoupclient/appletvsimulator/arm64/libmediasoupclient/libmediasoupclient.a \
443
+ # -output $BUILD_DIR/libmediasoupclient/appletvsimulator/fat/libmediasoupclient.a
444
+ lipo -create \
445
+ $BUILD_DIR /libmediasoupclient/appletvsimulator/arm64/libmediasoupclient/libmediasoupclient.a \
446
+ -output $BUILD_DIR /libmediasoupclient/appletvsimulator/fat/libmediasoupclient.a
447
+ # lipo -create \
448
+ # $BUILD_DIR/libmediasoupclient/appletvsimulator/x64/_deps/libsdptransform-build/libsdptransform.a \
449
+ # $BUILD_DIR/libmediasoupclient/appletvsimulator/arm64/_deps/libsdptransform-build/libsdptransform.a \
450
+ # -output $BUILD_DIR/libmediasoupclient/appletvsimulator/fat/libsdptransform.a
451
+ lipo -create \
452
+ $BUILD_DIR /libmediasoupclient/appletvsimulator/arm64/_deps/libsdptransform-build/libsdptransform.a \
453
+ -output $BUILD_DIR /libmediasoupclient/appletvsimulator/fat/libsdptransform.a
381
454
xcodebuild -create-xcframework \
382
455
-library $BUILD_DIR /libmediasoupclient/device/arm64/libmediasoupclient/libmediasoupclient.a \
456
+ -library $BUILD_DIR /libmediasoupclient/appletv/arm64/libmediasoupclient/libmediasoupclient.a \
383
457
-library $BUILD_DIR /libmediasoupclient/simulator/fat/libmediasoupclient.a \
458
+ -library $BUILD_DIR /libmediasoupclient/appletvsimulator/fat/libmediasoupclient.a \
384
459
-output $OUTPUT_DIR /mediasoupclient.xcframework
385
460
xcodebuild -create-xcframework \
386
461
-library $BUILD_DIR /libmediasoupclient/device/arm64/_deps/libsdptransform-build/libsdptransform.a \
462
+ -library $BUILD_DIR /libmediasoupclient/appletv/arm64/_deps/libsdptransform-build/libsdptransform.a \
387
463
-library $BUILD_DIR /libmediasoupclient/simulator/fat/libsdptransform.a \
464
+ -library $BUILD_DIR /libmediasoupclient/appletvsimulator/fat/libsdptransform.a \
388
465
-output $OUTPUT_DIR /sdptransform.xcframework
389
466
}
390
467
0 commit comments