[Xcode] Prevent STP and other self-contained builds from overwriting content in the macOS SDK
https://bugs.webkit.org/show_bug.cgi?id=240408
Reviewed by Alexey Proskuryakov.
When building with WK_OVERRIDE_FRAMEWORKS_DIR, we assume that WebKit is
being built as part of a self-contained application, e.g. Safari
Technology Preview. This means that most content is installed to the
override directory, instead of the normal /System/Library/Frameworks
directory.
However, static library content (e.g. headers and archives
for bmalloc, webrtc, WTF) is _not_ installed to the override directory,
as it is not needed at runtime. It was being installed to the default
/usr/local prefix, where it would merge with and overwrite whatever
WebKit content was already present.
To prevent overwrites and other sorts of conflict with the
system-provided WebKit, introduce WK_LIBRARY_HEADERS_FOLDER_PATH and
WK_LIBRARY_INSTALL_PATH, which expand to /usr/local/include/safari-sdk
and /usr/local/lib/safari-sdk respectively when building in this mode.
Static library headers and archives are built to these locations, where
they're still in the expected SDK location, but won't clobber system
WebKit.
- Source/bmalloc/Configurations/Base.xcconfig:
- Source/bmalloc/Configurations/bmalloc.xcconfig:
- Source/bmalloc/Configurations/mbmalloc.xcconfig:
- Source/JavaScriptCore/Configurations/Base.xcconfig:
- Source/JavaScriptCore/Configurations/JavaScriptCore.xcconfig:
- Source/JavaScriptCore/DerivedSources.make:
- Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj:
- Source/JavaScriptCore/Scripts/generate-unified-sources.sh:
- Source/JavaScriptCore/offlineasm/config.rb:
- Source/JavaScriptCore/offlineasm/parser.rb:
- Source/ThirdParty/ANGLE/Configurations/ANGLE-dynamic.xcconfig:
- Source/ThirdParty/ANGLE/Configurations/AngleMetalLib.xcconfig:
- Source/ThirdParty/ANGLE/Configurations/Base.xcconfig:
- Source/ThirdParty/libwebrtc/Configurations/Base.xcconfig:
- Source/ThirdParty/libwebrtc/Configurations/boringssl.xcconfig:
- Source/ThirdParty/libwebrtc/Configurations/libabsl.xcconfig:
- Source/ThirdParty/libwebrtc/Configurations/libsrtp.xcconfig:
- Source/ThirdParty/libwebrtc/Configurations/libvpx.xcconfig:
- Source/ThirdParty/libwebrtc/Configurations/libwebm.xcconfig:
- Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig:
- Source/ThirdParty/libwebrtc/Configurations/libyuv.xcconfig:
- Source/ThirdParty/libwebrtc/Configurations/opus.xcconfig:
- Source/ThirdParty/libwebrtc/Configurations/usrsctp.xcconfig:
- Source/ThirdParty/libwebrtc/Configurations/yasm.xcconfig:
- Source/WebCore/PAL/Configurations/Base.xcconfig:
- Source/WebCore/PAL/Configurations/PAL.xcconfig:
- Source/WebGPU/Configurations/Base.xcconfig:
- Source/WebGPU/Configurations/WGSL.xcconfig:
- Source/WebGPU/Configurations/WGSLUnitTests.xcconfig:
- Source/WebGPU/Configurations/WebGPU.xcconfig:
- Source/WebKit/Configurations/Base.xcconfig:
- Source/WebKit/Configurations/BaseTarget.xcconfig:
- Source/WebKit/Configurations/SandboxProfiles.xcconfig:
- Source/WebKit/WebKit.xcodeproj/project.pbxproj:
- Source/WebKitLegacy/scripts/generate-unified-sources.sh:
- Source/WebKitLegacy/mac/Configurations/Base.xcconfig:
- Source/WebKitLegacy/mac/Configurations/WebKitLegacy.xcconfig:
- Source/WTF/Configurations/Base.xcconfig:
- Source/WTF/Configurations/WTF.xcconfig:
- Source/WTF/Configurations/icu.xcconfig:
- Source/WebCore/Configurations/Base.xcconfig:
- Source/WebCore/Configurations/WebCore.xcconfig:
- Source/WebCore/Configurations/WebCoreTestSupport.xcconfig:
- Source/WebCore/DerivedSources.make:
- Source/WebCore/Scripts/generate-unified-sources.sh:
- Source/WebCore/WebCore.xcodeproj/project.pbxproj:
Canonical link: https://commits.webkit.org/250755@main