WebKit fails to build - error: 'webrtc/rtc_base/network.h' file not found
https://bugs.webkit.org/show_bug.cgi?id=235459

Reviewed by Mark Lam.

We needed to create symlinks from the standard location to the SYSTEM_CONTENT_PATH location.
This is needed for both the include files and archive libraries.

* Configurations/boringssl.xcconfig:
* Configurations/libsrtp.xcconfig:
* Configurations/libvpx.xcconfig:
* Configurations/libwebm.xcconfig:
* Configurations/libwebrtc.xcconfig:
* Configurations/libyuv.xcconfig:
* Configurations/opus.xcconfig:
* Configurations/usrsctp.xcconfig:
* Scripts: Added.
* Scripts/create-symlink-to-altroot.sh: Added.
* libwebrtc.xcodeproj/project.pbxproj:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@288391 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/ThirdParty/libwebrtc/ChangeLog b/Source/ThirdParty/libwebrtc/ChangeLog
index 2ab67dc..8351364 100644
--- a/Source/ThirdParty/libwebrtc/ChangeLog
+++ b/Source/ThirdParty/libwebrtc/ChangeLog
@@ -1,3 +1,25 @@
+2022-01-21  Michael Saboff  <msaboff@apple.com>
+
+        WebKit fails to build - error: 'webrtc/rtc_base/network.h' file not found
+        https://bugs.webkit.org/show_bug.cgi?id=235459
+
+        Reviewed by Mark Lam.
+
+        We needed to create symlinks from the standard location to the SYSTEM_CONTENT_PATH location.
+        This is needed for both the include files and archive libraries.
+
+        * Configurations/boringssl.xcconfig:
+        * Configurations/libsrtp.xcconfig:
+        * Configurations/libvpx.xcconfig:
+        * Configurations/libwebm.xcconfig:
+        * Configurations/libwebrtc.xcconfig:
+        * Configurations/libyuv.xcconfig:
+        * Configurations/opus.xcconfig:
+        * Configurations/usrsctp.xcconfig:
+        * Scripts: Added.
+        * Scripts/create-symlink-to-altroot.sh: Added.
+        * libwebrtc.xcodeproj/project.pbxproj:
+
 2022-01-19  Youenn Fablet  <youenn@apple.com>
 
         libvpx firstpass.c is not needed
diff --git a/Source/ThirdParty/libwebrtc/Configurations/boringssl.xcconfig b/Source/ThirdParty/libwebrtc/Configurations/boringssl.xcconfig
index 194f63a..a567d35 100644
--- a/Source/ThirdParty/libwebrtc/Configurations/boringssl.xcconfig
+++ b/Source/ThirdParty/libwebrtc/Configurations/boringssl.xcconfig
@@ -6,9 +6,13 @@
 GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
 COMBINE_HIDPI_IMAGES = NO;
 ENABLE_STRICT_OBJC_MSGSEND = YES;
+
+INSTALL_PATH_PREFIX = $(INSTALL_PATH_PREFIX_USE_SYSTEM_CONTENT_PATH_$(USE_SYSTEM_CONTENT_PATH));
+INSTALL_PATH_PREFIX_USE_SYSTEM_CONTENT_PATH_YES = $(SYSTEM_CONTENT_PATH);
+
 HEADER_SEARCH_PATHS = Source/third_party/boringssl/src/include;
-INSTALL_PATH = /usr/local/lib;
-PUBLIC_HEADERS_FOLDER_PATH = /usr/local/include/libwebrtc;
+INSTALL_PATH = $(INSTALL_PATH_PREFIX)/usr/local/lib;
+PUBLIC_HEADERS_FOLDER_PATH = $(INSTALL_PATH_PREFIX)/usr/local/include/libwebrtc;
 USE_HEADERMAP = NO;
 GCC_WARN_UNUSED_FUNCTION = NO;
 
diff --git a/Source/ThirdParty/libwebrtc/Configurations/libsrtp.xcconfig b/Source/ThirdParty/libwebrtc/Configurations/libsrtp.xcconfig
index a535922..6489756 100644
--- a/Source/ThirdParty/libwebrtc/Configurations/libsrtp.xcconfig
+++ b/Source/ThirdParty/libwebrtc/Configurations/libsrtp.xcconfig
@@ -7,8 +7,11 @@
 COMBINE_HIDPI_IMAGES = NO;
 ENABLE_STRICT_OBJC_MSGSEND = YES;
 
+INSTALL_PATH_PREFIX = $(INSTALL_PATH_PREFIX_USE_SYSTEM_CONTENT_PATH_$(USE_SYSTEM_CONTENT_PATH));
+INSTALL_PATH_PREFIX_USE_SYSTEM_CONTENT_PATH_YES = $(SYSTEM_CONTENT_PATH);
+
 HEADER_SEARCH_PATHS = Source/third_party/libsrtp/include Source/third_party/libsrtp/config Source/third_party/boringssl/src/include Source/third_party/libsrtp Source/third_party/libsrtp/crypto/include;
-INSTALL_PATH = /usr/local/lib;
-PUBLIC_HEADERS_FOLDER_PATH = /usr/local/include/libwebrtc;
+INSTALL_PATH = $(INSTALL_PATH_PREFIX)/usr/local/lib;
+PUBLIC_HEADERS_FOLDER_PATH = $(INSTALL_PATH_PREFIX)/usr/local/include/libwebrtc;
 USE_HEADERMAP = NO;
 GCC_PREPROCESSOR_DEFINITIONS = V8_DEPRECATION_WARNINGS ENABLE_NOTIFICATIONS ENABLE_PLUGINS=1 ENABLE_PDF=1 ENABLE_PRINTING=1 ENABLE_BASIC_PRINTING=1 ENABLE_PRINT_PREVIEW=1 ENABLE_SPELLCHECK=1 USE_BROWSER_SPELLCHECKER=1 NO_TCMALLOC USE_EXTERNAL_POPUP_MENU=1 ENABLE_WEBRTC=1 ENABLE_EXTENSIONS=1 ENABLE_TASK_MANAGER=1 ENABLE_THEMES=1 ENABLE_SESSION_SERVICE=1 ENABLE_SUPERVISED_USERS=1 FULL_SAFE_BROWSING SAFE_BROWSING_CSD SAFE_BROWSING_DB_LOCAL CHROMIUM_BUILD ENABLE_MEDIA_ROUTER=1 FIELDTRIAL_TESTING_ENABLED CR_CLANG_REVISION=284979-1 CR_XCODE_VERSION=0820 __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORE=0 _DEBUG DYNAMIC_ANNOTATIONS_ENABLED=1 WTF_USE_DYNAMIC_ANNOTATIONS=1 PACKAGE_STRING="\"libsrtp2 2.0.0-pre\"" PACKAGE_VERSION="\"2.0.0-pre\"" HAVE_CONFIG_H OPENSSL HAVE_STDLIB_H HAVE_STRING_H HAVE_STDINT_H HAVE_INTTYPES_H HAVE_INT16_T HAVE_INT32_T HAVE_INT8_T HAVE_UINT16_T HAVE_UINT32_T HAVE_UINT64_T HAVE_UINT8_T HAVE_ARPA_INET_H HAVE_NETINET_IN_H HAVE_SYS_TYPES_H HAVE_UNISTD_H GCM $(inherited);
diff --git a/Source/ThirdParty/libwebrtc/Configurations/libvpx.xcconfig b/Source/ThirdParty/libwebrtc/Configurations/libvpx.xcconfig
index e78c496..bb39984 100644
--- a/Source/ThirdParty/libwebrtc/Configurations/libvpx.xcconfig
+++ b/Source/ThirdParty/libwebrtc/Configurations/libvpx.xcconfig
@@ -7,11 +7,14 @@
 COMBINE_HIDPI_IMAGES = NO;
 ENABLE_STRICT_OBJC_MSGSEND = YES;
 
+INSTALL_PATH_PREFIX = $(INSTALL_PATH_PREFIX_USE_SYSTEM_CONTENT_PATH_$(USE_SYSTEM_CONTENT_PATH));
+INSTALL_PATH_PREFIX_USE_SYSTEM_CONTENT_PATH_YES = $(SYSTEM_CONTENT_PATH);
+
 HEADER_SEARCH_PATHS[arch=x86_64] = Source/third_party/libvpx/source/config/mac/x64 Source/third_party/libvpx/source/libvpx Source/third_party/libvpx/source/config;
 HEADER_SEARCH_PATHS[arch=arm64*] = Source/third_party/libvpx/source/config/ios/arm64 Source/third_party/libvpx/source/libvpx Source/third_party/libvpx/source/config;
 
-INSTALL_PATH = /usr/local/lib;
-PUBLIC_HEADERS_FOLDER_PATH = /usr/local/include/libwebrtc;
+INSTALL_PATH = $(INSTALL_PATH_PREFIX)/usr/local/lib;
+PUBLIC_HEADERS_FOLDER_PATH = $(INSTALL_PATH_PREFIX)/usr/local/include/libwebrtc;
 USE_HEADERMAP = NO;
 
 GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*] = $(inherited) WEBRTC_WEBKIT_DISABLE_HARDWARE_ACCELERATION;
diff --git a/Source/ThirdParty/libwebrtc/Configurations/libwebm.xcconfig b/Source/ThirdParty/libwebrtc/Configurations/libwebm.xcconfig
index bc1948d..3c4a77e 100644
--- a/Source/ThirdParty/libwebrtc/Configurations/libwebm.xcconfig
+++ b/Source/ThirdParty/libwebrtc/Configurations/libwebm.xcconfig
@@ -5,8 +5,11 @@
 CLANG_WARN_INT_CONVERSION = YES;
 GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
 
+INSTALL_PATH_PREFIX = $(INSTALL_PATH_PREFIX_USE_SYSTEM_CONTENT_PATH_$(USE_SYSTEM_CONTENT_PATH));
+INSTALL_PATH_PREFIX_USE_SYSTEM_CONTENT_PATH_YES = $(SYSTEM_CONTENT_PATH);
+
 HEADER_SEARCH_PATHS = Source/third_party/libwebm Source/third_party/libwebm/webm_parser Source/third_party/libwebm/webm_parser/include;
 
-INSTALL_PATH = /usr/local/lib;
-PUBLIC_HEADERS_FOLDER_PATH = /usr/local/include/webm;
+INSTALL_PATH = $(INSTALL_PATH_PREFIX)/usr/local/lib;
+PUBLIC_HEADERS_FOLDER_PATH = $(INSTALL_PATH_PREFIX)/usr/local/include/webm;
 USE_HEADERMAP = NO;
diff --git a/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig b/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig
index 9acf4ef..9de6601 100644
--- a/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig
+++ b/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig
@@ -45,15 +45,23 @@
 DYLIB_INSTALL_NAME_BASE_WK_RELOCATABLE_FRAMEWORKS_ = $(DYLIB_INSTALL_NAME_BASE);
 DYLIB_INSTALL_NAME_BASE_WK_RELOCATABLE_FRAMEWORKS_YES = @loader_path/../../../;
 
-ALTERNATE_ROOT_PATH = $(DYLIB_INSTALL_NAME_BASE);
-
-OUTPUT_ALTERNATE_ROOT_PATH = $(OUTPUT_ALTERNATE_ROOT_PATH_$(USE_SYSTEM_CONTENT_PATH));
-OUTPUT_ALTERNATE_ROOT_PATH_YES = $(DSTROOT)$(ALTERNATE_ROOT_PATH)/$(FULL_PRODUCT_NAME);
-
 GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
 HEADER_SEARCH_PATHS = Source Source/third_party/jsoncpp/source/include Source/third_party/libsrtp/crypto/include Source/third_party/libsrtp/include Source/third_party/boringssl/src/include Source/third_party/libyuv/include Source/third_party/usrsctp Source/third_party/usrsctp/usrsctplib Source/third_party/usrsctp/usrsctplib/usrsctplib Source/webrtc/sdk/objc/Framework/Headers Source/webrtc/common_audio/signal_processing/include Source/webrtc/modules/audio_coding/codecs/isac/main/include Source/third_party/opus/src/celt Source/third_party/opus/src/include Source/third_party/opus/src/src Source/webrtc/modules/audio_device/mac Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet Source/webrtc/modules/audio_device/ios Source/webrtc Source/webrtc/sdk/objc Source/webrtc/sdk/objc/base Source/webrtc/sdk/objc/Framework/Classes Source/third_party/libsrtp/config Source/webrtc/sdk/objc/Framework/Classes/Common Source/webrtc/sdk/objc/Framework/Classes/Video Source/webrtc/sdk/objc/Framework/Classes/PeerConnection Source/third_party/abseil-cpp Source/third_party/libvpx/source/libvpx Source/third_party/libwebm/webm_parser/include;
 
-PUBLIC_HEADERS_FOLDER_PATH = /usr/local/include/libwebrtc;
+PUBLIC_HEADERS_FOLDER_PREFIX = /usr/local/include;
+INSTALL_PUBLIC_HEADER_PREFIX = $(INSTALL_PATH_PREFIX)$(PUBLIC_HEADERS_FOLDER_PREFIX);
+SYSTEM_PUBLIC_HEADER_PREFIX = $(SYSTEM_PUBLIC_HEADER_PREFIX_$(USE_SYSTEM_CONTENT_PATH));
+SYSTEM_PUBLIC_HEADER_PREFIX_YES = $(DSTROOT)$(PUBLIC_HEADERS_FOLDER_PREFIX);
+HEADER_FOLDER_LIST = absl libwebrtc webm webrtc;
+
+PUBLIC_LIBRARY_FOLDER_PREFIX = /usr/local/lib;
+INSTALL_PUBLIC_LIBRARY_PREFIX = $(INSTALL_PATH_PREFIX)$(PUBLIC_LIBRARY_FOLDER_PREFIX);
+SYSTEM_PUBLIC_LIBRARY_PREFIX = $(SYSTEM_PUBLIC_LIBRARY_PREFIX_$(USE_SYSTEM_CONTENT_PATH));
+SYSTEM_PUBLIC_LIBRARY_PREFIX_YES = $(DSTROOT)$(PUBLIC_LIBRARY_FOLDER_PREFIX);
+LIBRARY_LIST = libboringssl.a libopus.a libsrtp.a libusrsctp.a libvpx.a libwebm.a libyuv.a
+
+CREATE_SYMLINK_OUTPUT_FILES = ${SYSTEM_PUBLIC_HEADER_PREFIX}  ${SYSTEM_PUBLIC_LIBRARY_PREFIX};
+
 USE_HEADERMAP = NO;
 INSTALLHDRS_SCRIPT_PHASE = YES;
 WARNING_CFLAGS = -Wno-deprecated-declarations $(inherited);
diff --git a/Source/ThirdParty/libwebrtc/Configurations/libyuv.xcconfig b/Source/ThirdParty/libwebrtc/Configurations/libyuv.xcconfig
index 14c1737..56e1b9f 100644
--- a/Source/ThirdParty/libwebrtc/Configurations/libyuv.xcconfig
+++ b/Source/ThirdParty/libwebrtc/Configurations/libyuv.xcconfig
@@ -6,7 +6,11 @@
 GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
 COMBINE_HIDPI_IMAGES = NO;
 ENABLE_STRICT_OBJC_MSGSEND = YES;
+
+INSTALL_PATH_PREFIX = $(INSTALL_PATH_PREFIX_USE_SYSTEM_CONTENT_PATH_$(USE_SYSTEM_CONTENT_PATH));
+INSTALL_PATH_PREFIX_USE_SYSTEM_CONTENT_PATH_YES = $(SYSTEM_CONTENT_PATH);
+
 HEADER_SEARCH_PATHS = Source/third_party/libyuv/include;
-INSTALL_PATH = /usr/local/lib;
-PUBLIC_HEADERS_FOLDER_PATH = /usr/local/include/libwebrtc;
+INSTALL_PATH = $(INSTALL_PATH_PREFIX)/usr/local/lib;
+PUBLIC_HEADERS_FOLDER_PATH = $(INSTALL_PATH_PREFIX)/usr/local/include/libwebrtc;
 USE_HEADERMAP = NO;
diff --git a/Source/ThirdParty/libwebrtc/Configurations/opus.xcconfig b/Source/ThirdParty/libwebrtc/Configurations/opus.xcconfig
index a7ca329..b0934df 100644
--- a/Source/ThirdParty/libwebrtc/Configurations/opus.xcconfig
+++ b/Source/ThirdParty/libwebrtc/Configurations/opus.xcconfig
@@ -8,9 +8,13 @@
 GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
 COMBINE_HIDPI_IMAGES = NO;
 ENABLE_STRICT_OBJC_MSGSEND = YES;
+
+INSTALL_PATH_PREFIX = $(INSTALL_PATH_PREFIX_USE_SYSTEM_CONTENT_PATH_$(USE_SYSTEM_CONTENT_PATH));
+INSTALL_PATH_PREFIX_USE_SYSTEM_CONTENT_PATH_YES = $(SYSTEM_CONTENT_PATH);
+
 HEADER_SEARCH_PATHS = Source/third_party/opus/src/include Source/third_party/opus/src/celt Source/third_party/opus/src/silk Source/third_party/opus/src/silk/float Source/third_party/opus/src;
-INSTALL_PATH = /usr/local/lib;
-PUBLIC_HEADERS_FOLDER_PATH = /usr/local/include/libwebrtc;
+INSTALL_PATH = $(INSTALL_PATH_PREFIX)/usr/local/lib;
+PUBLIC_HEADERS_FOLDER_PATH = $(INSTALL_PATH_PREFIX)/usr/local/include/libwebrtc;
 USE_HEADERMAP = NO;
 WARNING_CFLAGS = -Wno-incompatible-pointer-types $(inherited)
 GCC_PREPROCESSOR_DEFINITIONS = VAR_ARRAYS OPUS_BUILD OPUS_EXPORT= HAVE_LRINT HAVE_LRINTF $(inherited);
diff --git a/Source/ThirdParty/libwebrtc/Configurations/usrsctp.xcconfig b/Source/ThirdParty/libwebrtc/Configurations/usrsctp.xcconfig
index 38911ac..d616dec 100644
--- a/Source/ThirdParty/libwebrtc/Configurations/usrsctp.xcconfig
+++ b/Source/ThirdParty/libwebrtc/Configurations/usrsctp.xcconfig
@@ -6,9 +6,13 @@
 GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
 COMBINE_HIDPI_IMAGES = NO;
 ENABLE_STRICT_OBJC_MSGSEND = YES;
+
+INSTALL_PATH_PREFIX = $(INSTALL_PATH_PREFIX_USE_SYSTEM_CONTENT_PATH_$(USE_SYSTEM_CONTENT_PATH));
+INSTALL_PATH_PREFIX_USE_SYSTEM_CONTENT_PATH_YES = $(SYSTEM_CONTENT_PATH);
+
 HEADER_SEARCH_PATHS = Source/ Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/ Source/third_party/usrsctp/usrsctplib/usrsctplib/ Source/third_party/boringssl/src/include/;
-INSTALL_PATH = /usr/local/lib;
-PUBLIC_HEADERS_FOLDER_PATH = /usr/local/include/libwebrtc;
+INSTALL_PATH = $(INSTALL_PATH_PREFIX)/usr/local/lib;
+PUBLIC_HEADERS_FOLDER_PATH = $(INSTALL_PATH_PREFIX)/usr/local/include/libwebrtc;
 USE_HEADERMAP = NO;
 WARNING_CFLAGS = -Wno-deprecated-declarations $(inherited);
 GCC_PREPROCESSOR_DEFINITIONS = SCTP_PROCESS_LEVEL_LOCKS SCTP_SIMPLE_ALLOCATOR SCTP_USE_OPENSSL_SHA1 __Userspace__ HAVE_SA_LEN HAVE_SCONN_LEN __APPLE_USE_RFC_2292 __Userspace_os_Darwin $(inherited);
diff --git a/Source/ThirdParty/libwebrtc/Scripts/create-symlink-to-altroot.sh b/Source/ThirdParty/libwebrtc/Scripts/create-symlink-to-altroot.sh
new file mode 100755
index 0000000..5b7a891
--- /dev/null
+++ b/Source/ThirdParty/libwebrtc/Scripts/create-symlink-to-altroot.sh
@@ -0,0 +1,68 @@
+#!/bin/sh
+
+set -e
+
+if [[ "${ACTION}" == "installhdrs" && ( -z "${SYSTEM_PUBLIC_HEADER_PREFIX}" || -z "${HEADER_FOLDER_LIST}" ) ]]; then
+    exit 0
+fi
+
+if [[ "${ACTION}" == "install" && ( -z "${SYSTEM_PUBLIC_LIBRARY_PREFIX}" || -z "${LIBRARY_LIST}" ) ]]; then
+    exit 0
+fi
+
+if [[ "${SKIP_INSTALL}" == "YES" ]]; then
+    exit 0
+fi
+
+create_symlink_if_needed()
+{
+    INSTALL_FOLDER_PREFIX=$1
+    PUBLIC_FOLDER_PREFIX=$2
+    SYSTEM_FOLDER_PREFIX=$3
+    TARGET=$4
+
+    SYSTEM_HEADER_PATH="${SYSTEM_FOLDER_PREFIX}/${TARGET}"
+
+    # Convert eg. `/System/Library/PrivateFrameworks` to `../../..`
+    RELATIVE_PATH_FROM_SYMLINK_TO_ROOT=$(echo "${PUBLIC_FOLDER_PREFIX}" | sed -E -e "s/\/[a-zA-Z0-9_]+/..\//g" -e "s/\/$//")
+    SYMLINK_VALUE="${RELATIVE_PATH_FROM_SYMLINK_TO_ROOT}${INSTALL_FOLDER_PREFIX}/${TARGET}"
+
+    if [[ -L "${SYSTEM_HEADER_PATH}" ]]; then
+        EXISTING_SYMLINK_VALUE=$(readlink "${SYSTEM_HEADER_PATH}")
+
+        if [[ "${EXISTING_SYMLINK_VALUE}" == "${SYMLINK_VALUE}" ]]; then
+            exit 0
+        fi
+
+        echo "warning: existing symlink is incorrect; expected ${SYMLINK_VALUE}, got ${EXISTING_SYMLINK_VALUE}"
+    elif [[ -e "${SYSTEM_HEADER_PATH}" ]]; then
+        echo "error: expected a symlink at ${SYSTEM_HEADER_PATH}"
+        exit 1
+    fi
+
+    ln -sf "${SYMLINK_VALUE}" "${SYSTEM_HEADER_PATH}"
+}
+
+if [[ "${ACTION}" == "installhdrs" ]]
+then
+    if [[ ! -d ${SYSTEM_PUBLIC_HEADER_PREFIX} ]]; then
+        mkdir -p ${SYSTEM_PUBLIC_HEADER_PREFIX}
+    fi
+
+    for HEADER_FOLDER in `echo ${HEADER_FOLDER_LIST} | cut -d' ' -f1-`
+    do
+        create_symlink_if_needed ${INSTALL_PUBLIC_HEADER_PREFIX} ${PUBLIC_HEADERS_FOLDER_PREFIX} ${SYSTEM_PUBLIC_HEADER_PREFIX} ${HEADER_FOLDER}
+    done
+fi
+
+if [[ "${ACTION}" == "install" ]]
+then
+    if [[ ! -d ${SYSTEM_PUBLIC_LIBRARY_PREFIX} ]]; then
+        mkdir -p ${SYSTEM_PUBLIC_LIBRARY_PREFIX}
+    fi
+
+    for LIBRARY in `echo ${LIBRARY_LIST} | cut -d' ' -f1-`
+    do
+        create_symlink_if_needed ${INSTALL_PUBLIC_LIBRARY_PREFIX} ${PUBLIC_LIBRARY_FOLDER_PREFIX} ${SYSTEM_PUBLIC_LIBRARY_PREFIX} ${LIBRARY}
+    done
+fi
diff --git a/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj b/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj
index efd1b08..5354ce4 100644
--- a/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj
+++ b/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj
@@ -17392,6 +17392,7 @@
 				41F2354122F39AC000B4FCDB /* Check For Inappropriate Objective-C Class Names */,
 				312BDB0B15FECAB00097EBC7 /* CopyFiles */,
 				312BDB0D15FECACE0097EBC7 /* CopyFiles */,
+				659A86EA279796F800AC37B6 /* Create Symlink to Alt Root Path */,
 			);
 			buildRules = (
 			);
@@ -17493,7 +17494,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "PRIVATE_HEADERS_FOLDER_PATH=usr/local/include\n\nif [[ \"${DEPLOYMENT_LOCATION}\" == \"NO\" ]]; then\n    PRIVATE_HEADERS_PATH=\"${TARGET_BUILD_DIR%/}/${PRIVATE_HEADERS_FOLDER_PATH}\"\nelse\n    PRIVATE_HEADERS_PATH=\"${DSTROOT}${INSTALL_PATH_PREFIX%/}/${PRIVATE_HEADERS_FOLDER_PATH}\"\nfi;\n\nmkdir -p \"${PRIVATE_HEADERS_PATH}\"\n\nrsync -av --no-owner --no-group --prune-empty-dirs --exclude \".svn\" --exclude \"usr\" --include \"*/\" --include \"*.h\" --exclude \"*\" \"${SRCROOT}/Source/webrtc\" \"${PRIVATE_HEADERS_PATH}\"\n\nrsync -av --no-owner --no-group --prune-empty-dirs --exclude \".svn\" --exclude \"usr\" --include \"*/\" --include \"*.h\" --exclude \"*\" \"${SRCROOT}/Source/third_party/abseil-cpp/absl\" \"${PRIVATE_HEADERS_PATH}\"\n";
+			shellScript = "PRIVATE_HEADERS_FOLDER_PATH=usr/local/include\n\nif [[ \"${DEPLOYMENT_LOCATION}\" == \"NO\" ]]; then\n    PRIVATE_HEADERS_PATH=\"${TARGET_BUILD_DIR%/}/${PRIVATE_HEADERS_FOLDER_PATH}\"\nelse\n    PRIVATE_HEADERS_PATH=\"${DSTROOT}${INSTALL_PATH_PREFIX%/}/${PRIVATE_HEADERS_FOLDER_PATH}\"\nfi;\n\necho \"#### PRIVATE_HEADERS_PATH = ${PRIVATE_HEADERS_PATH}\"\necho\n\nmkdir -p \"${PRIVATE_HEADERS_PATH}\"\n\nrsync -av --no-owner --no-group --prune-empty-dirs --exclude \".svn\" --exclude \"usr\" --include \"*/\" --include \"*.h\" --exclude \"*\" \"${SRCROOT}/Source/webrtc\" \"${PRIVATE_HEADERS_PATH}\"\n\nrsync -av --no-owner --no-group --prune-empty-dirs --exclude \".svn\" --exclude \"usr\" --include \"*/\" --include \"*.h\" --exclude \"*\" \"${SRCROOT}/Source/third_party/abseil-cpp/absl\" \"${PRIVATE_HEADERS_PATH}\"\n";
 		};
 		5CD286461E6E154E0094FDC8 /* Check for Weak VTables and Externals */ = {
 			isa = PBXShellScriptBuildPhase;
@@ -17510,6 +17511,26 @@
 			shellPath = /bin/sh;
 			shellScript = "if [ \"${ACTION}\" = \"installhdrs\" ] || [ \"${ACTION}\" = \"installapi\" ]; then\n    exit 0;\nfi\n\nif [ -f ../../../Tools/Scripts/check-for-weak-vtables-and-externals ]; then\n    ../../../Tools/Scripts/check-for-weak-vtables-and-externals || exit $?\nfi";
 		};
+		659A86EA279796F800AC37B6 /* Create Symlink to Alt Root Path */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 8;
+			files = (
+			);
+			inputFileListPaths = (
+			);
+			inputPaths = (
+			);
+			name = "Create Symlink to Alt Root Path";
+			outputFileListPaths = (
+			);
+			outputPaths = (
+				"${SYSTEM_PUBLIC_HEADER_PREFIX}",
+				"${SYSTEM_PUBLIC_LIBRARY_PREFIX}",
+			);
+			runOnlyForDeploymentPostprocessing = 1;
+			shellPath = /bin/sh;
+			shellScript = "\"${SRCROOT}/Scripts/create-symlink-to-altroot.sh\"\n";
+		};
 /* End PBXShellScriptBuildPhase section */
 
 /* Begin PBXSourcesBuildPhase section */