@@ -83,7 +83,10 @@ function refetchLibmediasoupclient() {
8383 echo ' Cloning libmediasoupclient'
8484 cd $WORK_DIR
8585 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
8790}
8891
8992if [ -d $WORK_DIR /libmediasoupclient ]
@@ -165,6 +168,7 @@ function patchWebRTC() {
165168 patch -b -p0 -d $WORK_DIR < $PATCHES_DIR /objc_video_encoder_factory_mm.patch
166169 patch -b -p0 -d $WORK_DIR < $PATCHES_DIR /video_decoder_factory_h.patch
167170 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
168172}
169173
170174# WebRTC sources are downloaded by git client from Depot tools.
@@ -181,15 +185,15 @@ function refetchWebRTC() {
181185 gclient config --spec \
182186' solutions = [{
183187 "name": "src",
184- "url": "https://webrtc.googlesource. com/src .git",
188+ "url": "https://github. com/webrtc-sdk/webrtc .git",
185189 "deps_file": "DEPS",
186190 "managed": False,
187191 "custom_deps": {},
188192}]
189193target_os = ["ios"]'
190194
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
193197
194198 # Fetch all possible WebRTC versions so you can switch between them.
195199 # Takes longer time and more disk space.
@@ -216,7 +220,7 @@ target_os = ["ios"]'
216220function resetWebRTC() {
217221 cd $WORK_DIR /webrtc/src
218222 git reset --hard
219-
223+
220224 cd $WORK_DIR /webrtc/src/third_party
221225 git reset --hard
222226}
@@ -263,7 +267,7 @@ cd $WEBRTC_DIR
263267# It contains all available configuration flags with comprehensive comments for each.
264268gn_arguments=(
265269 ' target_os="ios"'
266- ' ios_deployment_target="14 .0"'
270+ ' ios_deployment_target="17 .0"'
267271 ' ios_enable_code_signing=false'
268272 ' is_component_build=false'
269273 # 'is_debug=true'
@@ -286,21 +290,36 @@ gn_arguments=(
286290for str in ${gn_arguments[@]} ; do
287291 gn_args+=" ${str} "
288292done
293+
294+ # iOS
289295platform_args=' target_environment="device" target_cpu="arm64"'
290296gn 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
291301platform_args=' target_environment="simulator" target_cpu="x64"'
292302gn gen $BUILD_DIR /WebRTC/simulator/x64 --ide=xcode --args=" ${platform_args}${gn_args} "
293303platform_args=' target_environment="simulator" target_cpu="arm64"'
294304gn 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} "
295311
296312# This command can be used to check which symbols will be included
297313# in each target without waiting to perform actual build:
298314# ninja -t browse webrtc
299315
300316cd $BUILD_DIR /WebRTC
301317ninja -C device/arm64 sdk
318+ ninja -C appletv/arm64 sdk
302319ninja -C simulator/x64 sdk
303320ninja -C simulator/arm64 sdk
321+ # ninja -C appletvsimulator/x64 sdk
322+ ninja -C appletvsimulator/arm64 sdk
304323
305324cd $BUILD_DIR /WebRTC
306325rm -rf simulator/WebRTC.framework
@@ -310,12 +329,24 @@ lipo -create \
310329 simulator/arm64/WebRTC.framework/WebRTC \
311330 simulator/x64/WebRTC.framework/WebRTC \
312331 -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
313342
314343cd $BUILD_DIR /WebRTC
315344rm -rf $OUTPUT_DIR /WebRTC.xcframework
316345xcodebuild -create-xcframework \
317346 -framework device/arm64/WebRTC.framework \
347+ -framework appletv/arm64/WebRTC.framework \
318348 -framework simulator/WebRTC.framework \
349+ -framework appletvsimulator/WebRTC.framework \
319350 -output $OUTPUT_DIR /WebRTC.xcframework
320351
321352cd $WORK_DIR
@@ -350,6 +381,15 @@ function rebuildLMSC() {
350381 -DCMAKE_OSX_SYSROOT=" /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk"
351382 make -C $BUILD_DIR /libmediasoupclient/device/arm64
352383
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+
353393 cmake . -B $BUILD_DIR /libmediasoupclient/simulator/x64 \
354394 ${lmsc_cmake_args} \
355395 -DLIBWEBRTC_BINARY_PATH=$BUILD_DIR /WebRTC/simulator/x64/WebRTC.framework/WebRTC \
@@ -368,8 +408,27 @@ function rebuildLMSC() {
368408 -DCMAKE_OSX_SYSROOT=" /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk"
369409 make -C $BUILD_DIR /libmediasoupclient/simulator/arm64
370410
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+
371429 # Create a FAT libmediasoup / libsdptransform library
372430 mkdir -p $BUILD_DIR /libmediasoupclient/simulator/fat
431+ mkdir -p $BUILD_DIR /libmediasoupclient/appletvsimulator/fat
373432 lipo -create \
374433 $BUILD_DIR /libmediasoupclient/simulator/x64/libmediasoupclient/libmediasoupclient.a \
375434 $BUILD_DIR /libmediasoupclient/simulator/arm64/libmediasoupclient/libmediasoupclient.a \
@@ -378,13 +437,31 @@ function rebuildLMSC() {
378437 $BUILD_DIR /libmediasoupclient/simulator/x64/_deps/libsdptransform-build/libsdptransform.a \
379438 $BUILD_DIR /libmediasoupclient/simulator/arm64/_deps/libsdptransform-build/libsdptransform.a \
380439 -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
381454 xcodebuild -create-xcframework \
382455 -library $BUILD_DIR /libmediasoupclient/device/arm64/libmediasoupclient/libmediasoupclient.a \
456+ -library $BUILD_DIR /libmediasoupclient/appletv/arm64/libmediasoupclient/libmediasoupclient.a \
383457 -library $BUILD_DIR /libmediasoupclient/simulator/fat/libmediasoupclient.a \
458+ -library $BUILD_DIR /libmediasoupclient/appletvsimulator/fat/libmediasoupclient.a \
384459 -output $OUTPUT_DIR /mediasoupclient.xcframework
385460 xcodebuild -create-xcframework \
386461 -library $BUILD_DIR /libmediasoupclient/device/arm64/_deps/libsdptransform-build/libsdptransform.a \
462+ -library $BUILD_DIR /libmediasoupclient/appletv/arm64/_deps/libsdptransform-build/libsdptransform.a \
387463 -library $BUILD_DIR /libmediasoupclient/simulator/fat/libsdptransform.a \
464+ -library $BUILD_DIR /libmediasoupclient/appletvsimulator/fat/libsdptransform.a \
388465 -output $OUTPUT_DIR /sdptransform.xcframework
389466}
390467
0 commit comments