⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 292292 in webkit


Ignore:
Timestamp:
Apr 4, 2022, 9:59:04 AM (4 years ago)
Author:
Elliott Williams
Message:

[XCBuild] WebKitLegacy's "Migrated headers" script does not emit task information
https://bugs.webkit.org/show_bug.cgi?id=238409
<rdar://problem/90869551>

Reviewed by Alexey Proskuryakov.

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj: Small build rule fix to prevent "no rule to process

file" warnings on every generated forwarding header. This happened because the build rule
that generates these temporary forwarding headers looked like it was supposed to _process_
those headers, too.

Source/WebKitLegacy:

Like r291809, replace MigrateHeaders.make with a "Migrated Headers" group in
WebKitLegacy.xcodeproj, and use a build rule to rewrite the headers at build-time. This
provides the build system with sufficient metadata to reason about the migrated headers and
when they need to be re-processed.

Since WebKitLegacy uses an export symbols list, run tapi-reexport on each migrated header as
it is processed. In the "Generate Export Files" phase, stitch these together to form the
EXPORTED_SYMBOLS_FILE given to the linker.

  • scripts/migrate-header-rule: Added. Runs sed and tapi-reexport on headers as they are

migrated. For tapi, include <TargetConditionals.h> so that TARGET_OS_* declarations get
resolved according to the target triple. This was not needed in the Make-based approach
because it processed all the headers in one invocation, and one of them imports
TargetConditionals early enough that it affects the others.

Running one tapi instance per header is obviously more overhead, but on a sufficiently
multicore machine it should be faster than blocking WebKitLegacy's build process on the
Make-based script phase.

  • WebKitLegacy.xcodeproj/project.pbxproj: Delete script phases, add "Migrated Headers" group

and build rule. Add a legacy-only "Install Headers" phase which launches a child xcodebuild
to install headers using the new build system. Unlike prior implementations in WebKit, WTF,
and PAL, the child xcodebuild needs access to existing build products so that clang (via
tapi) can import them. Do this by populating the child xcodebuild's SYMROOT with symlinks to
the real build products.

Source/WebKitLegacy/mac:

  • Configurations/WebKitLegacy.xcconfig: Use EXCLUDED_SOURCE_FILE_NAMES and

INCLUDED_SOURCE_FILE_NAMES to control which headers are exported. Set
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES, so that the "Generate Export Files" phase can
depend on the whole directory of reexport files and be invoked when any of them change.

  • MigrateHeaders.make: Removed.

Tools:

  • Scripts/check-for-inappropriate-files-in-framework: We were relying on a script to create

an (empty) WebKitLegacy.framework/Headers directory, which was being scanned here.
WebKitLegacy is entirely private API, so change it to check PrivateHeaders/.

Location:
trunk
Files:
1 added
2 deleted
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r292289 r292292  
     12022-04-04  Elliott Williams  <emw@apple.com>
     2
     3        [XCBuild] WebKitLegacy's "Migrated headers" script does not emit task information
     4        https://bugs.webkit.org/show_bug.cgi?id=238409
     5        <rdar://problem/90869551>
     6
     7        Reviewed by Alexey Proskuryakov.
     8
     9        * WebKit.xcodeproj/project.pbxproj: Small build rule fix to prevent "no rule to process
     10        file" warnings on every generated forwarding header. This happened because the build rule
     11        that generates these temporary forwarding headers looked like it was supposed to _process_
     12        those headers, too.
     13
    1142022-04-04  Kimmo Kinnunen  <kkinnunen@apple.com>
    215
  • trunk/Source/WebKit/Configurations/WebKit.xcconfig

    r292188 r292292  
    196196INCLUDED_SOURCE_FILE_NAMES = $(INCLUDED_MIGRATED_HEADERS_$(WK_WHICH_BUILD_SYSTEM));
    197197INCLUDED_MIGRATED_HEADERS_not_legacy = $(INCLUDED_MIGRATED_HEADERS_$(USE_INTERNAL_SDK)_$(WK_COCOA_TOUCH)) $(INCLUDED_MIGRATED_HEADERS_$(ENABLE_IOS_TOUCH_EVENTS));
    198 // WebEventRegion.h is migrated when building for an iOS family target with an internal SDK
     198// WebEventRegion.h is migrated when building for an iOS family target with an internal SDK...
    199199INCLUDED_MIGRATED_HEADERS_YES_cocoatouch = WebEventRegion.h;
    200 // or when --ios-touch-events was passed to build-webkit manually.
     200// ...or when --ios-touch-events was passed to build-webkit manually.
    201201INCLUDED_MIGRATED_HEADERS_ENABLE_IOS_TOUCH_EVENTS = WebEventRegion.h;
    202202
  • trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj

    r292188 r292292  
    23792379                        isa = PBXBuildRule;
    23802380                        compilerSpec = com.apple.compilers.proxy.script;
    2381                         filePatterns = "*/WebKitLegacy/*.h";
     2381                        filePatterns = "*/Source/WebKitLegacy/*.h";
    23822382                        fileType = pattern.proxy;
    23832383                        inputFiles = (
     
    23962396                        isa = PBXBuildRule;
    23972397                        compilerSpec = com.apple.compilers.proxy.script;
    2398                         filePatterns = "*/WebCore/*.h";
     2398                        filePatterns = "*/Source/WebCore/*.h";
    23992399                        fileType = pattern.proxy;
    24002400                        inputFiles = (
  • trunk/Source/WebKitLegacy/ChangeLog

    r292272 r292292  
     12022-04-04  Elliott Williams  <emw@apple.com>
     2
     3        [XCBuild] WebKitLegacy's "Migrated headers" script does not emit task information
     4        https://bugs.webkit.org/show_bug.cgi?id=238409
     5        <rdar://problem/90869551>
     6
     7        Reviewed by Alexey Proskuryakov.
     8
     9        Like r291809, replace MigrateHeaders.make with a "Migrated Headers" group in
     10        WebKitLegacy.xcodeproj, and use a build rule to rewrite the headers at build-time. This
     11        provides the build system with sufficient metadata to reason about the migrated headers and
     12        when they need to be re-processed.
     13
     14        Since WebKitLegacy uses an export symbols list, run tapi-reexport on each migrated header as
     15        it is processed. In the "Generate Export Files" phase, stitch these together to form the
     16        EXPORTED_SYMBOLS_FILE given to the linker.
     17
     18        * scripts/migrate-header-rule: Added. Runs sed and tapi-reexport on headers as they are
     19        migrated. For tapi, include <TargetConditionals.h> so that TARGET_OS_* declarations get
     20        resolved according to the target triple. This was not needed in the Make-based approach
     21        because it processed all the headers in one invocation, and one of them imports
     22        TargetConditionals early enough that it affects the others.
     23
     24        Running one tapi instance per header is obviously more overhead, but on a sufficiently
     25        multicore machine it should be faster than blocking WebKitLegacy's build process on the
     26        Make-based script phase.
     27        * WebKitLegacy.xcodeproj/project.pbxproj: Delete script phases, add "Migrated Headers" group
     28        and build rule. Add a legacy-only "Install Headers" phase which launches a child xcodebuild
     29        to install headers using the new build system. Unlike prior implementations in WebKit, WTF,
     30        and PAL, the child xcodebuild needs access to existing build products so that clang (via
     31        tapi) can import them. Do this by populating the child xcodebuild's SYMROOT with symlinks to
     32        the real build products.
     33
    1342022-04-02  Chris Dumez  <cdumez@apple.com>
    235
  • trunk/Source/WebKitLegacy/WebKitLegacy.xcodeproj/project.pbxproj

    r292188 r292292  
    647647                DD89682009AA87240097E7F0 /* WebElementDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = DD89681E09AA87240097E7F0 /* WebElementDictionary.h */; };
    648648                DD89682109AA87240097E7F0 /* WebElementDictionary.mm in Sources */ = {isa = PBXBuildFile; fileRef = DD89681F09AA87240097E7F0 /* WebElementDictionary.mm */; };
     649                DDF74C7E27EE3C740011F633 /* WebKitAvailability.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C7D27EE3C740011F633 /* WebKitAvailability.h */; settings = {ATTRIBUTES = (Private, ); }; };
     650                DDF74C8027EE3CA70011F633 /* WebScriptObject.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C7F27EE3CA60011F633 /* WebScriptObject.h */; settings = {ATTRIBUTES = (Private, ); }; };
     651                DDF74C8227EE3CAE0011F633 /* AbstractPasteboard.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C8127EE3CAE0011F633 /* AbstractPasteboard.h */; settings = {ATTRIBUTES = (Private, ); }; };
     652                DDF74C8427EE3CBF0011F633 /* KeyEventCodesIOS.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C8327EE3CBF0011F633 /* KeyEventCodesIOS.h */; settings = {ATTRIBUTES = (Private, ); }; };
     653                DDF74C8627EE3CC70011F633 /* WAKAppKitStubs.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C8527EE3CC70011F633 /* WAKAppKitStubs.h */; settings = {ATTRIBUTES = (Private, ); }; };
     654                DDF74C8827EE3CCD0011F633 /* WAKResponder.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C8727EE3CCD0011F633 /* WAKResponder.h */; settings = {ATTRIBUTES = (Private, ); }; };
     655                DDF74C8A27EE3CD10011F633 /* WAKView.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C8927EE3CD10011F633 /* WAKView.h */; settings = {ATTRIBUTES = (Private, ); }; };
     656                DDF74C8C27EE3CD60011F633 /* WAKWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C8B27EE3CD60011F633 /* WAKWindow.h */; settings = {ATTRIBUTES = (Private, ); }; };
     657                DDF74C8E27EE3CDB0011F633 /* WKContentObservation.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C8D27EE3CDB0011F633 /* WKContentObservation.h */; settings = {ATTRIBUTES = (Private, ); }; };
     658                DDF74C9027EE3CE10011F633 /* WKGraphics.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C8F27EE3CE10011F633 /* WKGraphics.h */; settings = {ATTRIBUTES = (Private, ); }; };
     659                DDF74C9227EE3CE60011F633 /* WKTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C9127EE3CE60011F633 /* WKTypes.h */; settings = {ATTRIBUTES = (Private, ); }; };
     660                DDF74C9427EE3CEE0011F633 /* WebCoreThread.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C9327EE3CEE0011F633 /* WebCoreThread.h */; settings = {ATTRIBUTES = (Private, ); }; };
     661                DDF74C9627EE3CF20011F633 /* WebCoreThreadMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C9527EE3CF20011F633 /* WebCoreThreadMessage.h */; settings = {ATTRIBUTES = (Private, ); }; };
     662                DDF74C9827EE3CF90011F633 /* WebCoreThreadRun.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C9727EE3CF90011F633 /* WebCoreThreadRun.h */; settings = {ATTRIBUTES = (Private, ); }; };
     663                DDF74C9A27EE3CFE0011F633 /* WebEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C9927EE3CFE0011F633 /* WebEvent.h */; settings = {ATTRIBUTES = (Private, ); }; };
     664                DDF74C9C27EE3D050011F633 /* WebItemProviderPasteboard.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C9B27EE3D050011F633 /* WebItemProviderPasteboard.h */; settings = {ATTRIBUTES = (Private, ); }; };
     665                DDF74C9E27EE3D0B0011F633 /* WebEventRegion.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C9D27EE3D0B0011F633 /* WebEventRegion.h */; settings = {ATTRIBUTES = (Private, ); }; };
    649666                E13E782C1E5A7365001849D1 /* WebCreateFragmentInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = E13E782B1E5A7365001849D1 /* WebCreateFragmentInternal.h */; settings = {ATTRIBUTES = (Private, ); }; };
    650667                E1531BD82187B954002E3F81 /* NSURLDownloadSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = E1531BD72187B8F2002E3F81 /* NSURLDownloadSPI.h */; settings = {ATTRIBUTES = (Private, ); }; };
     
    666683                        fileType = pattern.proxy;
    667684                        inputFiles = (
     685                                "$(SRCROOT)/scripts/postprocess-header-rule",
    668686                        );
    669687                        isEditable = 1;
     
    671689                                "$(HEADER_OUTPUT_DIR)/$(INPUT_FILE_NAME)",
    672690                        );
    673                         script = "exec \"${SRCROOT}/scripts/postprocess-header-rule\"\n";
     691                        runOncePerArchitecture = 0;
     692                        script = "exec \"${SCRIPT_INPUT_FILE_0}\"\n";
     693                };
     694                DDF74C9F27EE3D6D0011F633 /* PBXBuildRule */ = {
     695                        isa = PBXBuildRule;
     696                        compilerSpec = com.apple.compilers.proxy.script;
     697                        filePatterns = "*/Source/WebCore/*.h";
     698                        fileType = pattern.proxy;
     699                        inputFiles = (
     700                                "$(SRCROOT)/scripts/migrate-header-rule",
     701                        );
     702                        isEditable = 1;
     703                        name = "Migrate WebCore Headers";
     704                        outputFiles = (
     705                                "$(HEADER_OUTPUT_DIR)/$(INPUT_FILE_NAME)",
     706                                "$(DERIVED_FILE_DIR)/WebCore/$(INPUT_FILE_NAME)",
     707                                "$(DERIVED_FILE_DIR)/WebCore/$(INPUT_FILE_BASE).exp",
     708                        );
     709                        runOncePerArchitecture = 0;
     710                        script = "\"${SCRIPT_INPUT_FILE_0}\"\n";
    674711                };
    675712/* End PBXBuildRule section */
     
    748785                1C68F665095B5FC100C2984E /* WebNodeHighlightView.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebNodeHighlightView.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
    749786                1C68F666095B5FC100C2984E /* WebNodeHighlightView.mm */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; indentWidth = 4; path = WebNodeHighlightView.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
    750                 1C6CB03E0AA6391D00D23BFD /* MigrateHeaders.make */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = MigrateHeaders.make; path = mac/MigrateHeaders.make; sourceTree = "<group>"; };
    751787                1C7B0C650EB2464D00A28502 /* WebInspectorClientCF.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebInspectorClientCF.cpp; path = cf/WebCoreSupport/WebInspectorClientCF.cpp; sourceTree = SOURCE_ROOT; };
    752788                1C8CB0790AE9830C00B1F6E9 /* WebEditingDelegatePrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebEditingDelegatePrivate.h; sourceTree = "<group>"; };
     
    14641500                DD89681E09AA87240097E7F0 /* WebElementDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebElementDictionary.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
    14651501                DD89681F09AA87240097E7F0 /* WebElementDictionary.mm */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebElementDictionary.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
     1502                DDF74C7D27EE3C740011F633 /* WebKitAvailability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebKitAvailability.h; path = ../WebCore/platform/cocoa/WebKitAvailability.h; sourceTree = "<group>"; };
     1503                DDF74C7F27EE3CA60011F633 /* WebScriptObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebScriptObject.h; path = ../WebCore/bridge/objc/WebScriptObject.h; sourceTree = "<group>"; };
     1504                DDF74C8127EE3CAE0011F633 /* AbstractPasteboard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AbstractPasteboard.h; path = ../WebCore/platform/ios/AbstractPasteboard.h; sourceTree = "<group>"; };
     1505                DDF74C8327EE3CBF0011F633 /* KeyEventCodesIOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = KeyEventCodesIOS.h; path = ../WebCore/platform/ios/KeyEventCodesIOS.h; sourceTree = "<group>"; };
     1506                DDF74C8527EE3CC70011F633 /* WAKAppKitStubs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WAKAppKitStubs.h; path = ../WebCore/platform/ios/wak/WAKAppKitStubs.h; sourceTree = "<group>"; };
     1507                DDF74C8727EE3CCD0011F633 /* WAKResponder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WAKResponder.h; path = ../WebCore/platform/ios/wak/WAKResponder.h; sourceTree = "<group>"; };
     1508                DDF74C8927EE3CD10011F633 /* WAKView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WAKView.h; path = ../WebCore/platform/ios/wak/WAKView.h; sourceTree = "<group>"; };
     1509                DDF74C8B27EE3CD60011F633 /* WAKWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WAKWindow.h; path = ../WebCore/platform/ios/wak/WAKWindow.h; sourceTree = "<group>"; };
     1510                DDF74C8D27EE3CDB0011F633 /* WKContentObservation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WKContentObservation.h; path = ../WebCore/platform/ios/wak/WKContentObservation.h; sourceTree = "<group>"; };
     1511                DDF74C8F27EE3CE10011F633 /* WKGraphics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WKGraphics.h; path = ../WebCore/platform/ios/wak/WKGraphics.h; sourceTree = "<group>"; };
     1512                DDF74C9127EE3CE60011F633 /* WKTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WKTypes.h; path = ../WebCore/platform/ios/wak/WKTypes.h; sourceTree = "<group>"; };
     1513                DDF74C9327EE3CEE0011F633 /* WebCoreThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebCoreThread.h; path = ../WebCore/platform/ios/wak/WebCoreThread.h; sourceTree = "<group>"; };
     1514                DDF74C9527EE3CF20011F633 /* WebCoreThreadMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebCoreThreadMessage.h; path = ../WebCore/platform/ios/wak/WebCoreThreadMessage.h; sourceTree = "<group>"; };
     1515                DDF74C9727EE3CF90011F633 /* WebCoreThreadRun.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebCoreThreadRun.h; path = ../WebCore/platform/ios/wak/WebCoreThreadRun.h; sourceTree = "<group>"; };
     1516                DDF74C9927EE3CFE0011F633 /* WebEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebEvent.h; path = ../WebCore/platform/ios/WebEvent.h; sourceTree = "<group>"; };
     1517                DDF74C9B27EE3D050011F633 /* WebItemProviderPasteboard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebItemProviderPasteboard.h; path = ../WebCore/platform/ios/WebItemProviderPasteboard.h; sourceTree = "<group>"; };
     1518                DDF74C9D27EE3D0B0011F633 /* WebEventRegion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebEventRegion.h; path = ../WebCore/page/ios/WebEventRegion.h; sourceTree = "<group>"; };
     1519                DDF74CA627EED8500011F633 /* migrate-header-rule */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; name = "migrate-header-rule"; path = "scripts/migrate-header-rule"; sourceTree = "<group>"; };
    14661520                E13E782B1E5A7365001849D1 /* WebCreateFragmentInternal.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = WebCreateFragmentInternal.h; sourceTree = "<group>"; };
    14671521                E1531BD72187B8F2002E3F81 /* NSURLDownloadSPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSURLDownloadSPI.h; sourceTree = "<group>"; };
     
    15401594                        isa = PBXGroup;
    15411595                        children = (
    1542                                 1C6CB03E0AA6391D00D23BFD /* MigrateHeaders.make */,
    15431596                                5C9D925822D7E8AD008E9266 /* Sources.txt */,
    15441597                                5C9D925922D7E8AD008E9266 /* SourcesCocoa.txt */,
     
    15501603                                7C671116251C2459004F4536 /* generate-unified-sources.sh */,
    15511604                                7C671117251C2459004F4536 /* generate-webkitversion.pl */,
     1605                                DDF74CA627EED8500011F633 /* migrate-header-rule */,
    15521606                                7C671118251C2459004F4536 /* postprocess-header-rule */,
    15531607                                7C671119251C2483004F4536 /* check-xcfilelists.sh */,
     
    15661620                                7C02320E251B8E3A00BA7BB6 /* Scripts */,
    15671621                                534F75362578AAE8005BE7D8 /* Modules */,
     1622                                DDF74C7C27EE3BF40011F633 /* Migrated Headers */,
    15681623                                0867D69AFE84028FC02AAC07 /* Frameworks and Libraries */,
    15691624                                034768DFFF38A50411DB9C8B /* Products */,
     
    21162171                        );
    21172172                        name = ios;
     2173                        sourceTree = "<group>";
     2174                };
     2175                DDF74C7C27EE3BF40011F633 /* Migrated Headers */ = {
     2176                        isa = PBXGroup;
     2177                        children = (
     2178                                DDF74C8127EE3CAE0011F633 /* AbstractPasteboard.h */,
     2179                                DDF74C8327EE3CBF0011F633 /* KeyEventCodesIOS.h */,
     2180                                DDF74C8527EE3CC70011F633 /* WAKAppKitStubs.h */,
     2181                                DDF74C8727EE3CCD0011F633 /* WAKResponder.h */,
     2182                                DDF74C8927EE3CD10011F633 /* WAKView.h */,
     2183                                DDF74C8B27EE3CD60011F633 /* WAKWindow.h */,
     2184                                DDF74C9327EE3CEE0011F633 /* WebCoreThread.h */,
     2185                                DDF74C9527EE3CF20011F633 /* WebCoreThreadMessage.h */,
     2186                                DDF74C9727EE3CF90011F633 /* WebCoreThreadRun.h */,
     2187                                DDF74C9927EE3CFE0011F633 /* WebEvent.h */,
     2188                                DDF74C9D27EE3D0B0011F633 /* WebEventRegion.h */,
     2189                                DDF74C9B27EE3D050011F633 /* WebItemProviderPasteboard.h */,
     2190                                DDF74C7D27EE3C740011F633 /* WebKitAvailability.h */,
     2191                                DDF74C7F27EE3CA60011F633 /* WebScriptObject.h */,
     2192                                DDF74C8D27EE3CDB0011F633 /* WKContentObservation.h */,
     2193                                DDF74C8F27EE3CE10011F633 /* WKGraphics.h */,
     2194                                DDF74C9127EE3CE60011F633 /* WKTypes.h */,
     2195                        );
     2196                        name = "Migrated Headers";
    21182197                        sourceTree = "<group>";
    21192198                };
     
    26072686                        buildActionMask = 2147483647;
    26082687                        files = (
     2688                                DDF74C8227EE3CAE0011F633 /* AbstractPasteboard.h in Headers */,
    26092689                                1A9119F71DB0470A0087D1FD /* BackForwardList.h in Headers */,
    26102690                                1A60519217502A5D00BC62F5 /* BinaryPropertyList.h in Headers */,
     
    28192899                                1A60519417502A5D00BC62F5 /* HistoryPropertyList.h in Headers */,
    28202900                                9364006F23996E81001E185E /* InProcessIDBServer.h in Headers */,
     2901                                DDF74C8427EE3CBF0011F633 /* KeyEventCodesIOS.h in Headers */,
    28212902                                5CA46E7821F1451D00CE86B4 /* NetworkStorageSessionMap.h in Headers */,
    28222903                                E1531BD82187B954002E3F81 /* NSURLDownloadSPI.h in Headers */,
     
    28372918                                1A6B313D1A51F3A900422975 /* StorageTrackerClient.h in Headers */,
    28382919                                44DDD0822540F97F00836F81 /* TestingFunctions.h in Headers */,
     2920                                DDF74C8627EE3CC70011F633 /* WAKAppKitStubs.h in Headers */,
     2921                                DDF74C8827EE3CCD0011F633 /* WAKResponder.h in Headers */,
     2922                                DDF74C8A27EE3CD10011F633 /* WAKView.h in Headers */,
     2923                                DDF74C8C27EE3CD60011F633 /* WAKWindow.h in Headers */,
    28392924                                7C1FB3C21846E8E1001A03D8 /* WebAllowDenyPolicyListener.h in Headers */,
    28402925                                CEDA12DC152CBE6800D9E08D /* WebAlternativeTextClient.h in Headers */,
     
    28592944                                065AD5A30B0C32C7005A2B1D /* WebContextMenuClient.h in Headers */,
    28602945                                939810160824BF01008DF038 /* WebCoreStatistics.h in Headers */,
     2946                                DDF74C9427EE3CEE0011F633 /* WebCoreThread.h in Headers */,
     2947                                DDF74C9627EE3CF20011F633 /* WebCoreThreadMessage.h in Headers */,
     2948                                DDF74C9827EE3CF90011F633 /* WebCoreThreadRun.h in Headers */,
    28612949                                E13E782C1E5A7365001849D1 /* WebCreateFragmentInternal.h in Headers */,
    28622950                                93E2A1A4123B0B3C009FE12A /* WebDashboardRegion.h in Headers */,
     
    28992987                                4BF99F900AE050BC00815C2B /* WebEditorClient.h in Headers */,
    29002988                                DD89682009AA87240097E7F0 /* WebElementDictionary.h in Headers */,
     2989                                DDF74C9A27EE3CFE0011F633 /* WebEvent.h in Headers */,
     2990                                DDF74C9E27EE3D0B0011F633 /* WebEventRegion.h in Headers */,
    29012991                                7C023214251B925C00BA7BB6 /* WebFeature.h in Headers */,
    29022992                                7C02321A251B988200BA7BB6 /* WebFeatureInternal.h in Headers */,
     
    29443034                                B804176F1217A83100466BAE /* WebInspectorFrontend.h in Headers */,
    29453035                                7A8FF0D11075024A00A80A08 /* WebInspectorPrivate.h in Headers */,
     3036                                DDF74C9C27EE3D050011F633 /* WebItemProviderPasteboard.h in Headers */,
    29463037                                939810420824BF01008DF038 /* WebJavaScriptTextInputPanel.h in Headers */,
    29473038                                37D1DCA81065928C0068F7EF /* WebJSPDFDoc.h in Headers */,
    29483039                                9398101B0824BF01008DF038 /* WebKit.h in Headers */,
     3040                                DDF74C7E27EE3C740011F633 /* WebKitAvailability.h in Headers */,
    29493041                                9398101C0824BF01008DF038 /* WebKitErrors.h in Headers */,
    29503042                                9398106D0824BF01008DF038 /* WebKitErrorsPrivate.h in Headers */,
     
    30263118                                7E6FEF0808985A7200C44C3F /* WebScriptDebugDelegate.h in Headers */,
    30273119                                C0167BF80D7F5DD00028696E /* WebScriptDebugger.h in Headers */,
     3120                                DDF74C8027EE3CA70011F633 /* WebScriptObject.h in Headers */,
    30283121                                C0B1F7E810AC8E3100C925D9 /* WebScriptWorld.h in Headers */,
    30293122                                C0B1F7EA10AC8E3100C925D9 /* WebScriptWorldInternal.h in Headers */,
     
    30563149                                A10C1D781820300E0036883A /* WebVisiblePositionInternal.h in Headers */,
    30573150                                1AC7176F1A26568A002E3115 /* WebVisitedLinkStore.h in Headers */,
     3151                                DDF74C8E27EE3CDB0011F633 /* WKContentObservation.h in Headers */,
     3152                                DDF74C9027EE3CE10011F633 /* WKGraphics.h in Headers */,
     3153                                DDF74C9227EE3CE60011F633 /* WKTypes.h in Headers */,
    30583154                        );
    30593155                        runOnlyForDeploymentPostprocessing = 0;
     
    30683164                                5D2F7DB70C687A5A00B5B72B /* Update Info.plist with version information */,
    30693165                                7C02321B251B9A8A00BA7BB6 /* Generate Preferences */,
    3070                                 1C6CB0510AA63EB000D23BFD /* Migrate Headers */,
    30713166                                9398100D0824BF01008DF038 /* Headers */,
     3167                                DDF74CA027EE3E990011F633 /* (Legacy) Install Headers */,
    30723168                                535E08CB2254637200DF00CA /* Copy Mig Files into Private Framework Headers */,
    3073                                 A13EE61D185AE82700556064 /* Postprocess Headers */,
    30743169                                939810B20824BF01008DF038 /* Resources */,
    30753170                                1C395DE20C6BE8E0000D1E52 /* Generate Export Files */,
     
    30853180                        );
    30863181                        buildRules = (
     3182                                DDF74C9F27EE3D6D0011F633 /* PBXBuildRule */,
    30873183                                535E08C322545B4C00DF00CA /* PBXBuildRule */,
    30883184                        );
     
    31803276                                "$(PROJECT_DIR)/mac/WebKit.mac.exp",
    31813277                                "$(PROJECT_DIR)/ios/WebKit.iOS.exp",
    3182                                 "$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKitLegacy/ReexportedWebCoreSymbols.timestamp",
     3278                                "$(DERIVED_FILE_DIR)/WebCore/",
    31833279                        );
    31843280                        name = "Generate Export Files";
    31853281                        outputPaths = (
    3186                                 "$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKitLegacy/WebKitLegacy.generated.exp",
     3282                                "$(EXPORTED_SYMBOLS_FILE)",
    31873283                        );
    31883284                        runOnlyForDeploymentPostprocessing = 0;
    31893285                        shellPath = /bin/sh;
    3190                         shellScript = "set -e\n\nmkdir -p \"${BUILT_PRODUCTS_DIR}/DerivedSources/WebKitLegacy\"\n\nEXP_GENERATED=\"${EXPORTED_SYMBOLS_FILE}\"\n\n[[ -z \"${EXP_GENERATED}\" ]] && exit 1\n\nif [[ \"${WK_PLATFORM_NAME}\" != \"macosx\" ]]; then\n    EXP_WEBKIT_PLATFORM=\"${PROJECT_DIR}/ios/WebKit.iOS.exp\"\nelse\n    EXP_WEBKIT_PLATFORM=\"${PROJECT_DIR}/mac/WebKit.mac.exp\"\nfi\n\ncat \"${PROJECT_DIR}/mac/WebKit.exp\" > \"${EXP_GENERATED}\"\ncat \"${EXP_WEBKIT_PLATFORM}\" >> \"${EXP_GENERATED}\"\n\nfor WK_CURRENT_ARCH in ${ARCHS}; do\n    EXP_REEXPORTED=\"${BUILT_PRODUCTS_DIR}/DerivedSources/WebKitLegacy/ReexportedWebCoreSymbols_${WK_CURRENT_ARCH}.exp\"\n    if [[ -f \"${EXP_REEXPORTED}\" ]]; then\n        cat \"${EXP_REEXPORTED}\" >> \"${EXP_GENERATED}\"\n    fi\ndone\n\nif [[ \"${WK_BUILD_FOR_TESTING}\" == \"YES\" ]]; then\n    cat \"${PROJECT_DIR}/mac/WebKit.Testing.exp\" >> \"${EXP_GENERATED}\"\nfi\n";
    3191                 };
    3192                 1C6CB0510AA63EB000D23BFD /* Migrate Headers */ = {
    3193                         isa = PBXShellScriptBuildPhase;
    3194                         buildActionMask = 2147483647;
    3195                         files = (
    3196                         );
    3197                         inputPaths = (
    3198                                 "$(PROJECT_DIR)/mac/MigrateHeaders.make",
    3199                                 "$(WEBCORE_PRIVATE_HEADERS_DIR)",
    3200                         );
    3201                         name = "Migrate Headers";
    3202                         outputPaths = (
    3203                                 "$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKitLegacy/ReexportedWebCoreSymbols.timestamp",
    3204                         );
    3205                         runOnlyForDeploymentPostprocessing = 0;
    3206                         shellPath = /bin/sh;
    3207                         shellScript = "exec \"${SRCROOT}/mac/migrate-headers.sh\"\n";
     3286                        shellScript = "set -e\n\nmkdir -p \"${BUILT_PRODUCTS_DIR}/DerivedSources/WebKitLegacy\"\n\nEXP_GENERATED=\"${EXPORTED_SYMBOLS_FILE}\"\n\n[[ -z \"${EXP_GENERATED}\" ]] && exit 1\n\nif [[ \"${WK_PLATFORM_NAME}\" != \"macosx\" ]]; then\n    EXP_WEBKIT_PLATFORM=\"${PROJECT_DIR}/ios/WebKit.iOS.exp\"\nelse\n    EXP_WEBKIT_PLATFORM=\"${PROJECT_DIR}/mac/WebKit.mac.exp\"\nfi\n\ncat \"${PROJECT_DIR}/mac/WebKit.exp\" > \"${EXP_GENERATED}\"\ncat \"${EXP_WEBKIT_PLATFORM}\" >> \"${EXP_GENERATED}\"\n\nif [ \"${WK_PLATFORM_NAME}\" != \"macosx\" ]; then\n    echo >> \"${EXP_GENERATED}\"\n    echo \"# Reexported from migrated WebCore headers\" >> \"${EXP_GENERATED}\"\n    cat \"${SCRIPT_INPUT_FILE_3}\"/*.exp >> \"${EXP_GENERATED}\"\nfi\n\nif [[ \"${WK_BUILD_FOR_TESTING}\" == \"YES\" ]]; then\n    cat \"${PROJECT_DIR}/mac/WebKit.Testing.exp\" >> \"${EXP_GENERATED}\"\nfi\n";
    32083287                };
    32093288                3713F018142905B70036387F /* Check For Inappropriate Objective-C Class Names */ = {
     
    33973476                        shellScript = "${SRCROOT}/mac/Scripts/generate-preferences.sh\n";
    33983477                };
    3399                 A13EE61D185AE82700556064 /* Postprocess Headers */ = {
     3478                DDF74CA027EE3E990011F633 /* (Legacy) Install Headers */ = {
    34003479                        isa = PBXShellScriptBuildPhase;
    34013480                        buildActionMask = 2147483647;
    34023481                        files = (
    34033482                        );
     3483                        inputFileListPaths = (
     3484                        );
    34043485                        inputPaths = (
    3405                                 "$(TARGET_BUILD_DIR)/$(PRIVATE_HEADERS_FOLDER_PATH)",
    3406                                 "$(TARGET_BUILD_DIR)/$(HEADERS_FOLDER_PATH)",
    3407                         );
    3408                         name = "Postprocess Headers";
     3486                        );
     3487                        name = "(Legacy) Install Headers";
     3488                        outputFileListPaths = (
     3489                        );
    34093490                        outputPaths = (
    3410                                 "$(DERIVED_FILE_DIR)/postprocess-headers.timestamp",
    34113491                        );
    34123492                        runOnlyForDeploymentPostprocessing = 0;
    34133493                        shellPath = /bin/sh;
    3414                         shellScript = "if [ \"${XCODE_VERSION_ACTUAL}\" -ge \"1140\" -a \"${WK_USE_NEW_BUILD_SYSTEM}\" = \"YES\" ]; then\n    # In this configuration, post-processing is performed at the same time as copying in the postprocess-header-rule script, so there's no need for this separate step.\n    exit 0\nfi\n\nexec \"${SRCROOT}/mac/postprocess-headers.sh\"\n";
     3494                        shellScript = "[ \"${WK_USE_NEW_BUILD_SYSTEM}\" = YES ] && exit 0\n\n# The \"Migrate WebCore Headers\" build rule invokes clang (through tapi), which means that the inferior xcodebuild we invoke here needs access to the current build products. Make an inferior build directory containing symlinks to the _real_ build products, and set the DSTROOT to the superior build directory so that headers are installed to the _real_ WebKitLegacy.framework.\nset -e\nINFERIOR_SYMROOT=\"${TARGET_TEMP_DIR}/LegacyInstallHeaders-build\"\nINFERIOR_BUILT_PRODUCTS_DIR=\"${BUILT_PRODUCTS_DIR/${SYMROOT}/${INFERIOR_SYMROOT}}\"\nmkdir -p \"${INFERIOR_BUILT_PRODUCTS_DIR}\"\nfor p in \"${BUILT_PRODUCTS_DIR}\"/*; do\n    ln -sfhv \"${p}\" \"${INFERIOR_BUILT_PRODUCTS_DIR}/$(basename \"${p}\")\"\ndone\nxcodebuild -project \"${PROJECT_FILE_PATH}\" -target \"${TARGET_NAME}\" -configuration ${CONFIGURATION} installhdrs DSTROOT=\"${BUILT_PRODUCTS_DIR}\" SYMROOT=\"${INFERIOR_SYMROOT}\" DERIVED_FILE_DIR=\"${DERIVED_FILE_DIR}\" SDKROOT=\"${SDKROOT}\" SDK_VARIANT=\"${SDK_VARIANT}\" ARCHS=\"${ARCHS}\" INSTALLHDRS_COPY_PHASE=NO INSTALLHDRS_SCRIPT_PHASE=NO INSTALL_PATH=/ -UseNewBuildSystem=YES\n";
    34153495                };
    34163496/* End PBXShellScriptBuildPhase section */
  • trunk/Source/WebKitLegacy/mac/ChangeLog

    r292258 r292292  
     12022-04-04  Elliott Williams  <emw@apple.com>
     2
     3        [XCBuild] WebKitLegacy's "Migrated headers" script does not emit task information
     4        https://bugs.webkit.org/show_bug.cgi?id=238409
     5        <rdar://problem/90869551>
     6
     7        Reviewed by Alexey Proskuryakov.
     8
     9        * Configurations/WebKitLegacy.xcconfig: Use EXCLUDED_SOURCE_FILE_NAMES and
     10        INCLUDED_SOURCE_FILE_NAMES to control which headers are exported. Set
     11        USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES, so that the "Generate Export Files" phase can
     12        depend on the whole directory of reexport files and be invoked when any of them change.
     13        * MigrateHeaders.make: Removed.
     14
    1152022-04-01  Michael Saboff  <msaboff@apple.com>
    216
  • trunk/Source/WebKitLegacy/mac/Configurations/WebKitLegacy.xcconfig

    r292188 r292292  
    2626#include "WebKitTargetConditionals.xcconfig"
    2727
    28 EXCLUDED_SOURCE_FILE_NAMES = $(EXCLUDED_SOURCE_FILE_NAMES_$(WK_COCOA_TOUCH));
    29 EXCLUDED_SOURCE_FILE_NAMES_cocoatouch = *.defs *.xib *.pdf *.tiff OutlookQuirksUserScript.js PopupMenuMac.* SearchPopupMenuMac.* WebClipView.* WebDashboardRegion.* WebDynamicScrollBarsView.* WebIconDatabase.* WebInspectorClient.* WebJavaScriptTextInputPanel.* WebNSEventExtras.* WebNSPasteboardExtras.* WebNSWindowExtras.* WebPanelAuthenticationHandler.* WebPluginsPrivate.* WebStringTruncator.* WebTextCompletionController.*;
    30 EXCLUDED_SOURCE_FILE_NAMES_ = *IOS.mm WebCaretChangeListener.h WebFixedPositionContent.h WebFrameIOS.h WebFrameIPhone.h WebGeolocationCoreLocationProvider.h WebGeolocationPrivate.h WebGeolocationProviderIOS.h WebMIMETypeRegistry.h WebNSStringExtrasIOS.h WebNSStringExtrasIPhone.h WebPDFViewIOS.h WebPDFViewIPhone.h WebPDFViewPlaceholder.h WebSelectionRect.h WebUIKitDelegate.h WebUIKitSupport.h WebVisiblePosition.h DOMHTMLTextAreaElementPrivate.h DOMUIKitExtensions.h LaBanquePostaleQuirks.js;
     28EXCLUDED_SOURCE_FILE_NAMES = $(EXCLUDED_SOURCE_FILE_NAMES_$(WK_COCOA_TOUCH)) $(EXCLUDED_SOURCE_FILE_NAMES_$(WK_WHICH_BUILD_SYSTEM));
     29// The legacy build system does not install headers.
     30EXCLUDED_SOURCE_FILE_NAMES_legacy = *.h;
     31EXCLUDED_SOURCE_FILE_NAMES_cocoatouch = *.defs *.xib *.pdf *.tiff OutlookQuirksUserScript.js PopupMenuMac.* SearchPopupMenuMac.* WebClipView.* WebDashboardRegion.* WebDynamicScrollBarsView.* WebEventRegion.h WebIconDatabase.* WebInspectorClient.* WebJavaScriptTextInputPanel.* WebNSEventExtras.* WebNSPasteboardExtras.* WebNSWindowExtras.* WebPanelAuthenticationHandler.* WebPluginsPrivate.* WebStringTruncator.* WebTextCompletionController.*;
     32EXCLUDED_SOURCE_FILE_NAMES_ = *IOS.mm AbstractPasteboard.h DOMHTMLTextAreaElementPrivate.h DOMUIKitExtensions.h KeyEventCodesIOS.h LaBanquePostaleQuirks.js WAKAppKitStubs.h WAKResponder.h WAKView.h WAKWindow.h WebCaretChangeListener.h WebCoreThread.h WebCoreThreadMessage.h WebCoreThreadRun.h WebEvent.h WebEventRegion.h WebFixedPositionContent.h WebFrameIOS.h WebFrameIPhone.h WebGeolocationCoreLocationProvider.h WebGeolocationPrivate.h WebGeolocationProviderIOS.h WebItemProviderPasteboard.h WebMIMETypeRegistry.h WebNSStringExtrasIOS.h WebNSStringExtrasIPhone.h WebPDFViewIOS.h WebPDFViewIPhone.h WebPDFViewPlaceholder.h WebSelectionRect.h WebUIKitDelegate.h WebUIKitSupport.h WebVisiblePosition.h WKContentObservation.h WKGraphics.h WKTypes.h;
     33
     34INCLUDED_SOURCE_FILE_NAMES = $(INCLUDED_MIGRATED_HEADERS_$(WK_WHICH_BUILD_SYSTEM));
     35INCLUDED_MIGRATED_HEADERS_not_legacy = $(INCLUDED_MIGRATED_HEADERS_$(USE_INTERNAL_SDK)_$(WK_COCOA_TOUCH)) $(INCLUDED_MIGRATED_HEADERS_$(ENABLE_IOS_TOUCH_EVENTS));
     36// WebEventRegion.h is migrated when building for an iOS family target with an internal SDK...
     37INCLUDED_MIGRATED_HEADERS_YES_cocoatouch = WebEventRegion.h;
     38// ...or when --ios-touch-events was passed to build-webkit manually.
     39INCLUDED_MIGRATED_HEADERS_ENABLE_IOS_TOUCH_EVENTS = WebEventRegion.h;
    3140
    3241EXPORTED_SYMBOLS_FILE = $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKitLegacy/WebKitLegacy.generated.exp;
     42// The "Generate Export Files" build phase needs this setting to rerun when any migrated header changes:
     43USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES;
    3344
    3445WK_PRIVATE_FRAMEWORKS_DIR = $(WK_PRIVATE_FRAMEWORKS_DIR_$(USE_INTERNAL_SDK));
  • trunk/Tools/ChangeLog

    r292291 r292292  
     12022-04-04  Elliott Williams  <emw@apple.com>
     2
     3        [XCBuild] WebKitLegacy's "Migrated headers" script does not emit task information
     4        https://bugs.webkit.org/show_bug.cgi?id=238409
     5        <rdar://problem/90869551>
     6
     7        Reviewed by Alexey Proskuryakov.
     8
     9        * Scripts/check-for-inappropriate-files-in-framework: We were relying on a script to create
     10        an (empty) WebKitLegacy.framework/Headers directory, which was being scanned here.
     11        WebKitLegacy is entirely private API, so change it to check PrivateHeaders/.
     12
    1132022-03-31  Jonathan Bedard  <jbedard@apple.com>
    214
  • trunk/Tools/Scripts/check-for-inappropriate-files-in-framework

    r292188 r292292  
    3737  },
    3838  "WebKitLegacy" => {
    39     "Headers" => ["*.tmp"],
     39    "PrivateHeaders" => ["*.tmp"],
    4040    "Resources" => ["*.txt", "*.in", "*.idl", "*.h"],
    4141  },
Note: See TracChangeset for help on using the changeset viewer.