Ignore:
Timestamp:
May 19, 2022, 11:32:41 AM (3 years ago)
Author:
Elliott Williams
Message:

[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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/offlineasm/parser.rb

    r292454 r294496  
    268268        # https://bugs.webkit.org/show_bug.cgi?id=229340
    269269        @buildProductsDirectory = ENV['BUILT_PRODUCTS_DIR'];
     270        @headersFolderPath = ENV['WK_LIBRARY_HEADERS_FOLDER_PATH'];
    270271        @options = options
    271272        @sources = sources
     
    837838                    additionsDirectoryName = @options[:webkit_additions_path]
    838839                else
    839                     additionsDirectoryName = "#{@buildProductsDirectory}/usr/local/include/WebKitAdditions/"
     840                    additionsDirectoryName = "#{@buildProductsDirectory}#{@headersFolderPath}/WebKitAdditions/"
    840841                end
    841842                fileName = IncludeFile.new(moduleName, additionsDirectoryName).fileName
     
    873874                    additionsDirectoryName = @options[:webkit_additions_path]
    874875                else
    875                     additionsDirectoryName = "#{@buildProductsDirectory}/usr/local/include/WebKitAdditions/"
     876                    additionsDirectoryName = "#{@buildProductsDirectory}#{@headersFolderPath}/WebKitAdditions/"
    876877                end
    877878                fileName = IncludeFile.new(moduleName, additionsDirectoryName).fileName
Note: See TracChangeset for help on using the changeset viewer.