Title: [292183] trunk
Revision
292183
Author
e...@apple.com
Date
2022-03-31 14:56:59 -0700 (Thu, 31 Mar 2022)

Log 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/.

Modified Paths

Added Paths

Removed Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (292182 => 292183)


--- trunk/Source/WebKit/ChangeLog	2022-03-31 21:53:51 UTC (rev 292182)
+++ trunk/Source/WebKit/ChangeLog	2022-03-31 21:56:59 UTC (rev 292183)
@@ -1,3 +1,16 @@
+2022-03-31  Elliott Williams  <e...@apple.com>
+
+        [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.
+
+        * 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.
+
 2022-03-31  Alex Christensen  <achristen...@webkit.org>
 
         null check page in API::DataTask constructor

Modified: trunk/Source/WebKit/Configurations/WebKit.xcconfig (292182 => 292183)


--- trunk/Source/WebKit/Configurations/WebKit.xcconfig	2022-03-31 21:53:51 UTC (rev 292182)
+++ trunk/Source/WebKit/Configurations/WebKit.xcconfig	2022-03-31 21:56:59 UTC (rev 292183)
@@ -195,9 +195,9 @@
 
 INCLUDED_SOURCE_FILE_NAMES = $(INCLUDED_MIGRATED_HEADERS_$(WK_WHICH_BUILD_SYSTEM));
 INCLUDED_MIGRATED_HEADERS_not_legacy = $(INCLUDED_MIGRATED_HEADERS_$(USE_INTERNAL_SDK)_$(WK_COCOA_TOUCH)) $(INCLUDED_MIGRATED_HEADERS_$(ENABLE_IOS_TOUCH_EVENTS));
-// WebEventRegion.h is migrated when building for an iOS family target with an internal SDK…
+// WebEventRegion.h is migrated when building for an iOS family target with an internal SDK...
 INCLUDED_MIGRATED_HEADERS_YES_cocoatouch = WebEventRegion.h;
-// …or when --ios-touch-events was passed to build-webkit manually.
+// ...or when --ios-touch-events was passed to build-webkit manually.
 INCLUDED_MIGRATED_HEADERS_ENABLE_IOS_TOUCH_EVENTS = WebEventRegion.h;
 
 WK_MIGRATED_HEADER_OUTPUT_DIR = $(WK_MIGRATED_HEADER_OUTPUT_DIR_$(WK_COCOA_TOUCH));

Modified: trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj (292182 => 292183)


--- trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj	2022-03-31 21:53:51 UTC (rev 292182)
+++ trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj	2022-03-31 21:56:59 UTC (rev 292183)
@@ -2378,7 +2378,7 @@
 		DDA0A38427E56213005E086E /* PBXBuildRule */ = {
 			isa = PBXBuildRule;
 			compilerSpec = com.apple.compilers.proxy.script;
-			filePatterns = "*/WebKitLegacy/*.h";
+			filePatterns = "*/Source/WebKitLegacy/*.h";
 			fileType = pattern.proxy;
 			inputFiles = (
 				"$(SRCROOT)/Scripts/postprocess-header-rule",
@@ -2395,7 +2395,7 @@
 		DDF74C7827EE20C90011F633 /* PBXBuildRule */ = {
 			isa = PBXBuildRule;
 			compilerSpec = com.apple.compilers.proxy.script;
-			filePatterns = "*/WebCore/*.h";
+			filePatterns = "*/Source/WebCore/*.h";
 			fileType = pattern.proxy;
 			inputFiles = (
 				"$(SRCROOT)/Scripts/postprocess-header-rule",

Modified: trunk/Source/WebKitLegacy/ChangeLog (292182 => 292183)


--- trunk/Source/WebKitLegacy/ChangeLog	2022-03-31 21:53:51 UTC (rev 292182)
+++ trunk/Source/WebKitLegacy/ChangeLog	2022-03-31 21:56:59 UTC (rev 292183)
@@ -1,3 +1,36 @@
+2022-03-31  Elliott Williams  <e...@apple.com>
+
+        [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.
+
+        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.
+
 2022-03-21  Alex Christensen  <achristen...@webkit.org>
 
         Dust off Mac CMake build

Modified: trunk/Source/WebKitLegacy/WebKitLegacy.xcodeproj/project.pbxproj (292182 => 292183)


--- trunk/Source/WebKitLegacy/WebKitLegacy.xcodeproj/project.pbxproj	2022-03-31 21:53:51 UTC (rev 292182)
+++ trunk/Source/WebKitLegacy/WebKitLegacy.xcodeproj/project.pbxproj	2022-03-31 21:56:59 UTC (rev 292183)
@@ -646,6 +646,23 @@
 		CEDA12DC152CBE6800D9E08D /* WebAlternativeTextClient.h in Headers */ = {isa = PBXBuildFile; fileRef = CEDA12DA152CBE6800D9E08D /* WebAlternativeTextClient.h */; };
 		DD89682009AA87240097E7F0 /* WebElementDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = DD89681E09AA87240097E7F0 /* WebElementDictionary.h */; };
 		DD89682109AA87240097E7F0 /* WebElementDictionary.mm in Sources */ = {isa = PBXBuildFile; fileRef = DD89681F09AA87240097E7F0 /* WebElementDictionary.mm */; };
+		DDF74C7E27EE3C740011F633 /* WebKitAvailability.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C7D27EE3C740011F633 /* WebKitAvailability.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		DDF74C8027EE3CA70011F633 /* WebScriptObject.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C7F27EE3CA60011F633 /* WebScriptObject.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		DDF74C8227EE3CAE0011F633 /* AbstractPasteboard.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C8127EE3CAE0011F633 /* AbstractPasteboard.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		DDF74C8427EE3CBF0011F633 /* KeyEventCodesIOS.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C8327EE3CBF0011F633 /* KeyEventCodesIOS.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		DDF74C8627EE3CC70011F633 /* WAKAppKitStubs.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C8527EE3CC70011F633 /* WAKAppKitStubs.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		DDF74C8827EE3CCD0011F633 /* WAKResponder.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C8727EE3CCD0011F633 /* WAKResponder.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		DDF74C8A27EE3CD10011F633 /* WAKView.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C8927EE3CD10011F633 /* WAKView.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		DDF74C8C27EE3CD60011F633 /* WAKWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C8B27EE3CD60011F633 /* WAKWindow.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		DDF74C8E27EE3CDB0011F633 /* WKContentObservation.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C8D27EE3CDB0011F633 /* WKContentObservation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		DDF74C9027EE3CE10011F633 /* WKGraphics.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C8F27EE3CE10011F633 /* WKGraphics.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		DDF74C9227EE3CE60011F633 /* WKTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C9127EE3CE60011F633 /* WKTypes.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		DDF74C9427EE3CEE0011F633 /* WebCoreThread.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C9327EE3CEE0011F633 /* WebCoreThread.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		DDF74C9627EE3CF20011F633 /* WebCoreThreadMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C9527EE3CF20011F633 /* WebCoreThreadMessage.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		DDF74C9827EE3CF90011F633 /* WebCoreThreadRun.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C9727EE3CF90011F633 /* WebCoreThreadRun.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		DDF74C9A27EE3CFE0011F633 /* WebEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C9927EE3CFE0011F633 /* WebEvent.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		DDF74C9C27EE3D050011F633 /* WebItemProviderPasteboard.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C9B27EE3D050011F633 /* WebItemProviderPasteboard.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		DDF74C9E27EE3D0B0011F633 /* WebEventRegion.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF74C9D27EE3D0B0011F633 /* WebEventRegion.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		E13E782C1E5A7365001849D1 /* WebCreateFragmentInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = E13E782B1E5A7365001849D1 /* WebCreateFragmentInternal.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		E1531BD82187B954002E3F81 /* NSURLDownloadSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = E1531BD72187B8F2002E3F81 /* NSURLDownloadSPI.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		E15663190FB61C1F00C199CA /* WebDownload.mm in Sources */ = {isa = PBXBuildFile; fileRef = E15663180FB61C1F00C199CA /* WebDownload.mm */; };
@@ -665,13 +682,33 @@
 			filePatterns = "*.h";
 			fileType = pattern.proxy;
 			inputFiles = (
+				"$(SRCROOT)/scripts/postprocess-header-rule",
 			);
 			isEditable = 1;
 			outputFiles = (
 				"$(HEADER_OUTPUT_DIR)/$(INPUT_FILE_NAME)",
 			);
-			script = "exec \"${SRCROOT}/scripts/postprocess-header-rule\"\n";
+			runOncePerArchitecture = 0;
+			script = "exec \"${SCRIPT_INPUT_FILE_0}\"\n";
 		};
+		DDF74C9F27EE3D6D0011F633 /* PBXBuildRule */ = {
+			isa = PBXBuildRule;
+			compilerSpec = com.apple.compilers.proxy.script;
+			filePatterns = "*/Source/WebCore/*.h";
+			fileType = pattern.proxy;
+			inputFiles = (
+				"$(SRCROOT)/scripts/migrate-header-rule",
+			);
+			isEditable = 1;
+			name = "Migrate WebCore Headers";
+			outputFiles = (
+				"$(HEADER_OUTPUT_DIR)/$(INPUT_FILE_NAME)",
+				"$(DERIVED_FILE_DIR)/WebCore/$(INPUT_FILE_NAME)",
+				"$(DERIVED_FILE_DIR)/WebCore/$(INPUT_FILE_BASE).exp",
+			);
+			runOncePerArchitecture = 0;
+			script = "\"${SCRIPT_INPUT_FILE_0}\"\n";
+		};
 /* End PBXBuildRule section */
 
 /* Begin PBXContainerItemProxy section */
@@ -747,7 +784,6 @@
 		1C68F664095B5FC100C2984E /* WebNodeHighlight.mm */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; indentWidth = 4; path = WebNodeHighlight.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
 		1C68F665095B5FC100C2984E /* WebNodeHighlightView.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebNodeHighlightView.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
 		1C68F666095B5FC100C2984E /* WebNodeHighlightView.mm */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; indentWidth = 4; path = WebNodeHighlightView.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-		1C6CB03E0AA6391D00D23BFD /* MigrateHeaders.make */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = MigrateHeaders.make; path = mac/MigrateHeaders.make; sourceTree = "<group>"; };
 		1C7B0C650EB2464D00A28502 /* WebInspectorClientCF.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebInspectorClientCF.cpp; path = cf/WebCoreSupport/WebInspectorClientCF.cpp; sourceTree = SOURCE_ROOT; };
 		1C8CB0790AE9830C00B1F6E9 /* WebEditingDelegatePrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebEditingDelegatePrivate.h; sourceTree = "<group>"; };
 		1C904FD20BA9DD0F0081E9D0 /* WebKitLegacy.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = WebKitLegacy.xcconfig; sourceTree = "<group>"; };
@@ -1463,6 +1499,24 @@
 		CEDA12DA152CBE6800D9E08D /* WebAlternativeTextClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAlternativeTextClient.h; sourceTree = "<group>"; };
 		DD89681E09AA87240097E7F0 /* WebElementDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebElementDictionary.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
 		DD89681F09AA87240097E7F0 /* WebElementDictionary.mm */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebElementDictionary.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
+		DDF74C7D27EE3C740011F633 /* WebKitAvailability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebKitAvailability.h; path = ../WebCore/platform/cocoa/WebKitAvailability.h; sourceTree = "<group>"; };
+		DDF74C7F27EE3CA60011F633 /* WebScriptObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebScriptObject.h; path = ../WebCore/bridge/objc/WebScriptObject.h; sourceTree = "<group>"; };
+		DDF74C8127EE3CAE0011F633 /* AbstractPasteboard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AbstractPasteboard.h; path = ../WebCore/platform/ios/AbstractPasteboard.h; sourceTree = "<group>"; };
+		DDF74C8327EE3CBF0011F633 /* KeyEventCodesIOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = KeyEventCodesIOS.h; path = ../WebCore/platform/ios/KeyEventCodesIOS.h; sourceTree = "<group>"; };
+		DDF74C8527EE3CC70011F633 /* WAKAppKitStubs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WAKAppKitStubs.h; path = ../WebCore/platform/ios/wak/WAKAppKitStubs.h; sourceTree = "<group>"; };
+		DDF74C8727EE3CCD0011F633 /* WAKResponder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WAKResponder.h; path = ../WebCore/platform/ios/wak/WAKResponder.h; sourceTree = "<group>"; };
+		DDF74C8927EE3CD10011F633 /* WAKView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WAKView.h; path = ../WebCore/platform/ios/wak/WAKView.h; sourceTree = "<group>"; };
+		DDF74C8B27EE3CD60011F633 /* WAKWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WAKWindow.h; path = ../WebCore/platform/ios/wak/WAKWindow.h; sourceTree = "<group>"; };
+		DDF74C8D27EE3CDB0011F633 /* WKContentObservation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WKContentObservation.h; path = ../WebCore/platform/ios/wak/WKContentObservation.h; sourceTree = "<group>"; };
+		DDF74C8F27EE3CE10011F633 /* WKGraphics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WKGraphics.h; path = ../WebCore/platform/ios/wak/WKGraphics.h; sourceTree = "<group>"; };
+		DDF74C9127EE3CE60011F633 /* WKTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WKTypes.h; path = ../WebCore/platform/ios/wak/WKTypes.h; sourceTree = "<group>"; };
+		DDF74C9327EE3CEE0011F633 /* WebCoreThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebCoreThread.h; path = ../WebCore/platform/ios/wak/WebCoreThread.h; sourceTree = "<group>"; };
+		DDF74C9527EE3CF20011F633 /* WebCoreThreadMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebCoreThreadMessage.h; path = ../WebCore/platform/ios/wak/WebCoreThreadMessage.h; sourceTree = "<group>"; };
+		DDF74C9727EE3CF90011F633 /* WebCoreThreadRun.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebCoreThreadRun.h; path = ../WebCore/platform/ios/wak/WebCoreThreadRun.h; sourceTree = "<group>"; };
+		DDF74C9927EE3CFE0011F633 /* WebEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebEvent.h; path = ../WebCore/platform/ios/WebEvent.h; sourceTree = "<group>"; };
+		DDF74C9B27EE3D050011F633 /* WebItemProviderPasteboard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebItemProviderPasteboard.h; path = ../WebCore/platform/ios/WebItemProviderPasteboard.h; sourceTree = "<group>"; };
+		DDF74C9D27EE3D0B0011F633 /* WebEventRegion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebEventRegion.h; path = ../WebCore/page/ios/WebEventRegion.h; sourceTree = "<group>"; };
+		DDF74CA627EED8500011F633 /* migrate-header-rule */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; name = "migrate-header-rule"; path = "scripts/migrate-header-rule"; sourceTree = "<group>"; };
 		E13E782B1E5A7365001849D1 /* WebCreateFragmentInternal.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = WebCreateFragmentInternal.h; sourceTree = "<group>"; };
 		E1531BD72187B8F2002E3F81 /* NSURLDownloadSPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSURLDownloadSPI.h; sourceTree = "<group>"; };
 		E15663180FB61C1F00C199CA /* WebDownload.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebDownload.mm; sourceTree = "<group>"; };
@@ -1539,7 +1593,6 @@
 		0867D691FE84028FC02AAC07 /* WebKit */ = {
 			isa = PBXGroup;
 			children = (
-				1C6CB03E0AA6391D00D23BFD /* MigrateHeaders.make */,
 				5C9D925822D7E8AD008E9266 /* Sources.txt */,
 				5C9D925922D7E8AD008E9266 /* SourcesCocoa.txt */,
 				44DDD0812540F8C800836F81 /* TestingFunctions.h */,
@@ -1549,6 +1602,7 @@
 				F5C283730284676D018635CA /* WebKitPrefix.h */,
 				7C671116251C2459004F4536 /* generate-unified-sources.sh */,
 				7C671117251C2459004F4536 /* generate-webkitversion.pl */,
+				DDF74CA627EED8500011F633 /* migrate-header-rule */,
 				7C671118251C2459004F4536 /* postprocess-header-rule */,
 				7C671119251C2483004F4536 /* check-xcfilelists.sh */,
 				6508A4A7099B375F00BCBF45 /* Default Delegates */,
@@ -1565,6 +1619,7 @@
 				089C1665FE841158C02AAC07 /* Resources */,
 				7C02320E251B8E3A00BA7BB6 /* Scripts */,
 				534F75362578AAE8005BE7D8 /* Modules */,
+				DDF74C7C27EE3BF40011F633 /* Migrated Headers */,
 				0867D69AFE84028FC02AAC07 /* Frameworks and Libraries */,
 				034768DFFF38A50411DB9C8B /* Products */,
 				1C904FCE0BA9DCF20081E9D0 /* Configurations */,
@@ -2117,6 +2172,30 @@
 			name = ios;
 			sourceTree = "<group>";
 		};
+		DDF74C7C27EE3BF40011F633 /* Migrated Headers */ = {
+			isa = PBXGroup;
+			children = (
+				DDF74C8127EE3CAE0011F633 /* AbstractPasteboard.h */,
+				DDF74C8327EE3CBF0011F633 /* KeyEventCodesIOS.h */,
+				DDF74C8527EE3CC70011F633 /* WAKAppKitStubs.h */,
+				DDF74C8727EE3CCD0011F633 /* WAKResponder.h */,
+				DDF74C8927EE3CD10011F633 /* WAKView.h */,
+				DDF74C8B27EE3CD60011F633 /* WAKWindow.h */,
+				DDF74C9327EE3CEE0011F633 /* WebCoreThread.h */,
+				DDF74C9527EE3CF20011F633 /* WebCoreThreadMessage.h */,
+				DDF74C9727EE3CF90011F633 /* WebCoreThreadRun.h */,
+				DDF74C9927EE3CFE0011F633 /* WebEvent.h */,
+				DDF74C9D27EE3D0B0011F633 /* WebEventRegion.h */,
+				DDF74C9B27EE3D050011F633 /* WebItemProviderPasteboard.h */,
+				DDF74C7D27EE3C740011F633 /* WebKitAvailability.h */,
+				DDF74C7F27EE3CA60011F633 /* WebScriptObject.h */,
+				DDF74C8D27EE3CDB0011F633 /* WKContentObservation.h */,
+				DDF74C8F27EE3CE10011F633 /* WKGraphics.h */,
+				DDF74C9127EE3CE60011F633 /* WKTypes.h */,
+			);
+			name = "Migrated Headers";
+			sourceTree = "<group>";
+		};
 		F52CA6BD02DF9D0F018635CA /* HTML */ = {
 			isa = PBXGroup;
 			children = (
@@ -2606,6 +2685,7 @@
 			isa = PBXHeadersBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				DDF74C8227EE3CAE0011F633 /* AbstractPasteboard.h in Headers */,
 				1A9119F71DB0470A0087D1FD /* BackForwardList.h in Headers */,
 				1A60519217502A5D00BC62F5 /* BinaryPropertyList.h in Headers */,
 				B82958D3132707D0000D0E79 /* CorrectionPanel.h in Headers */,
@@ -2818,6 +2898,7 @@
 				93D437991D57ABEF00AB85EA /* ExceptionHandlers.h in Headers */,
 				1A60519417502A5D00BC62F5 /* HistoryPropertyList.h in Headers */,
 				9364006F23996E81001E185E /* InProcessIDBServer.h in Headers */,
+				DDF74C8427EE3CBF0011F633 /* KeyEventCodesIOS.h in Headers */,
 				5CA46E7821F1451D00CE86B4 /* NetworkStorageSessionMap.h in Headers */,
 				E1531BD82187B954002E3F81 /* NSURLDownloadSPI.h in Headers */,
 				93D4379B1D57ABEF00AB85EA /* ObjCEventListener.h in Headers */,
@@ -2836,6 +2917,10 @@
 				1A6B313C1A51F3A900422975 /* StorageTracker.h in Headers */,
 				1A6B313D1A51F3A900422975 /* StorageTrackerClient.h in Headers */,
 				44DDD0822540F97F00836F81 /* TestingFunctions.h in Headers */,
+				DDF74C8627EE3CC70011F633 /* WAKAppKitStubs.h in Headers */,
+				DDF74C8827EE3CCD0011F633 /* WAKResponder.h in Headers */,
+				DDF74C8A27EE3CD10011F633 /* WAKView.h in Headers */,
+				DDF74C8C27EE3CD60011F633 /* WAKWindow.h in Headers */,
 				7C1FB3C21846E8E1001A03D8 /* WebAllowDenyPolicyListener.h in Headers */,
 				CEDA12DC152CBE6800D9E08D /* WebAlternativeTextClient.h in Headers */,
 				B6CE5C25100BC5F500219936 /* WebApplicationCache.h in Headers */,
@@ -2858,6 +2943,9 @@
 				939810490824BF01008DF038 /* WebClipView.h in Headers */,
 				065AD5A30B0C32C7005A2B1D /* WebContextMenuClient.h in Headers */,
 				939810160824BF01008DF038 /* WebCoreStatistics.h in Headers */,
+				DDF74C9427EE3CEE0011F633 /* WebCoreThread.h in Headers */,
+				DDF74C9627EE3CF20011F633 /* WebCoreThreadMessage.h in Headers */,
+				DDF74C9827EE3CF90011F633 /* WebCoreThreadRun.h in Headers */,
 				E13E782C1E5A7365001849D1 /* WebCreateFragmentInternal.h in Headers */,
 				93E2A1A4123B0B3C009FE12A /* WebDashboardRegion.h in Headers */,
 				511F3FD70CECC88F00852565 /* WebDatabaseManagerClient.h in Headers */,
@@ -2898,6 +2986,8 @@
 				1C8CB07A0AE9830C00B1F6E9 /* WebEditingDelegatePrivate.h in Headers */,
 				4BF99F900AE050BC00815C2B /* WebEditorClient.h in Headers */,
 				DD89682009AA87240097E7F0 /* WebElementDictionary.h in Headers */,
+				DDF74C9A27EE3CFE0011F633 /* WebEvent.h in Headers */,
+				DDF74C9E27EE3D0B0011F633 /* WebEventRegion.h in Headers */,
 				7C023214251B925C00BA7BB6 /* WebFeature.h in Headers */,
 				7C02321A251B988200BA7BB6 /* WebFeatureInternal.h in Headers */,
 				A10C1D681820300E0036883A /* WebFixedPositionContent.h in Headers */,
@@ -2943,9 +3033,11 @@
 				06693DDC0BFBA85200216072 /* WebInspectorClient.h in Headers */,
 				B804176F1217A83100466BAE /* WebInspectorFrontend.h in Headers */,
 				7A8FF0D11075024A00A80A08 /* WebInspectorPrivate.h in Headers */,
+				DDF74C9C27EE3D050011F633 /* WebItemProviderPasteboard.h in Headers */,
 				939810420824BF01008DF038 /* WebJavaScriptTextInputPanel.h in Headers */,
 				37D1DCA81065928C0068F7EF /* WebJSPDFDoc.h in Headers */,
 				9398101B0824BF01008DF038 /* WebKit.h in Headers */,
+				DDF74C7E27EE3C740011F633 /* WebKitAvailability.h in Headers */,
 				9398101C0824BF01008DF038 /* WebKitErrors.h in Headers */,
 				9398106D0824BF01008DF038 /* WebKitErrorsPrivate.h in Headers */,
 				CD8BFCE815531224005AFB25 /* WebKitFullScreenListener.h in Headers */,
@@ -3025,6 +3117,7 @@
 				939810890824BF01008DF038 /* WebResourcePrivate.h in Headers */,
 				7E6FEF0808985A7200C44C3F /* WebScriptDebugDelegate.h in Headers */,
 				C0167BF80D7F5DD00028696E /* WebScriptDebugger.h in Headers */,
+				DDF74C8027EE3CA70011F633 /* WebScriptObject.h in Headers */,
 				C0B1F7E810AC8E3100C925D9 /* WebScriptWorld.h in Headers */,
 				C0B1F7EA10AC8E3100C925D9 /* WebScriptWorldInternal.h in Headers */,
 				A5DEFC0B11D5331C00885273 /* WebSecurityOriginInternal.h in Headers */,
@@ -3055,6 +3148,9 @@
 				A10C1D761820300E0036883A /* WebVisiblePosition.h in Headers */,
 				A10C1D781820300E0036883A /* WebVisiblePositionInternal.h in Headers */,
 				1AC7176F1A26568A002E3115 /* WebVisitedLinkStore.h in Headers */,
+				DDF74C8E27EE3CDB0011F633 /* WKContentObservation.h in Headers */,
+				DDF74C9027EE3CE10011F633 /* WKGraphics.h in Headers */,
+				DDF74C9227EE3CE60011F633 /* WKTypes.h in Headers */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -3067,10 +3163,9 @@
 			buildPhases = (
 				5D2F7DB70C687A5A00B5B72B /* Update Info.plist with version information */,
 				7C02321B251B9A8A00BA7BB6 /* Generate Preferences */,
-				1C6CB0510AA63EB000D23BFD /* Migrate Headers */,
 				9398100D0824BF01008DF038 /* Headers */,
+				DDF74CA027EE3E990011F633 /* (Legacy) Install Headers */,
 				535E08CB2254637200DF00CA /* Copy Mig Files into Private Framework Headers */,
-				A13EE61D185AE82700556064 /* Postprocess Headers */,
 				939810B20824BF01008DF038 /* Resources */,
 				1C395DE20C6BE8E0000D1E52 /* Generate Export Files */,
 				939810BB0824BF01008DF038 /* Sources */,
@@ -3084,6 +3179,7 @@
 				6517572027CEE91400D9FE40 /* Copy Frameworks to Secondary Path */,
 			);
 			buildRules = (
+				DDF74C9F27EE3D6D0011F633 /* PBXBuildRule */,
 				535E08C322545B4C00DF00CA /* PBXBuildRule */,
 			);
 			dependencies = (
@@ -3179,33 +3275,16 @@
 				"$(PROJECT_DIR)/mac/WebKit.exp",
 				"$(PROJECT_DIR)/mac/WebKit.mac.exp",
 				"$(PROJECT_DIR)/ios/WebKit.iOS.exp",
-				"$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKitLegacy/ReexportedWebCoreSymbols.timestamp",
+				"$(DERIVED_FILE_DIR)/WebCore/",
 			);
 			name = "Generate Export Files";
 			outputPaths = (
-				"$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKitLegacy/WebKitLegacy.generated.exp",
+				"$(EXPORTED_SYMBOLS_FILE)",
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			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_TESTI
 NG}\" == \"YES\" ]]; then\n    cat \"${PROJECT_DIR}/mac/WebKit.Testing.exp\" >> \"${EXP_GENERATED}\"\nfi\n";
+			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_TEST
 ING}\" == \"YES\" ]]; then\n    cat \"${PROJECT_DIR}/mac/WebKit.Testing.exp\" >> \"${EXP_GENERATED}\"\nfi\n";
 		};
-		1C6CB0510AA63EB000D23BFD /* Migrate Headers */ = {
-			isa = PBXShellScriptBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			inputPaths = (
-				"$(PROJECT_DIR)/mac/MigrateHeaders.make",
-				"$(WEBCORE_PRIVATE_HEADERS_DIR)",
-			);
-			name = "Migrate Headers";
-			outputPaths = (
-				"$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKitLegacy/ReexportedWebCoreSymbols.timestamp",
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-			shellPath = /bin/sh;
-			shellScript = "exec \"${SRCROOT}/mac/migrate-headers.sh\"\n";
-		};
 		3713F018142905B70036387F /* Check For Inappropriate Objective-C Class Names */ = {
 			isa = PBXShellScriptBuildPhase;
 			buildActionMask = 2147483647;
@@ -3396,22 +3475,23 @@
 			shellPath = /bin/sh;
 			shellScript = "${SRCROOT}/mac/Scripts/generate-preferences.sh\n";
 		};
-		A13EE61D185AE82700556064 /* Postprocess Headers */ = {
+		DDF74CA027EE3E990011F633 /* (Legacy) Install Headers */ = {
 			isa = PBXShellScriptBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
 			);
+			inputFileListPaths = (
+			);
 			inputPaths = (
-				"$(TARGET_BUILD_DIR)/$(PRIVATE_HEADERS_FOLDER_PATH)",
-				"$(TARGET_BUILD_DIR)/$(HEADERS_FOLDER_PATH)",
 			);
-			name = "Postprocess Headers";
+			name = "(Legacy) Install Headers";
+			outputFileListPaths = (
+			);
 			outputPaths = (
-				"$(DERIVED_FILE_DIR)/postprocess-headers.timestamp",
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			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";
+			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 -sf \"${p}\" \"${INFERIOR_BUILT_PRODUCTS_DIR}/$(basename \"${p}\")\"\ndone\nxcodebuild -project \"${PROJECT_FILE_PATH}\" -target \"${TARGET_NAME}\" -configu
 ration ${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";
 		};
 /* End PBXShellScriptBuildPhase section */
 

Modified: trunk/Source/WebKitLegacy/mac/ChangeLog (292182 => 292183)


--- trunk/Source/WebKitLegacy/mac/ChangeLog	2022-03-31 21:53:51 UTC (rev 292182)
+++ trunk/Source/WebKitLegacy/mac/ChangeLog	2022-03-31 21:56:59 UTC (rev 292183)
@@ -1,3 +1,17 @@
+2022-03-31  Elliott Williams  <e...@apple.com>
+
+        [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.
+
+        * 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.
+
 2022-03-28  Ian Anderson  <i...@apple.com>
 
         Some Apple internal clients fail to build due to redeclared AppKit types in WebKitLegacy

Modified: trunk/Source/WebKitLegacy/mac/Configurations/WebKitLegacy.xcconfig (292182 => 292183)


--- trunk/Source/WebKitLegacy/mac/Configurations/WebKitLegacy.xcconfig	2022-03-31 21:53:51 UTC (rev 292182)
+++ trunk/Source/WebKitLegacy/mac/Configurations/WebKitLegacy.xcconfig	2022-03-31 21:56:59 UTC (rev 292183)
@@ -25,11 +25,22 @@
 #include "Version.xcconfig"
 #include "WebKitTargetConditionals.xcconfig"
 
-EXCLUDED_SOURCE_FILE_NAMES = $(EXCLUDED_SOURCE_FILE_NAMES_$(WK_COCOA_TOUCH));
-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.*;
-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;
+EXCLUDED_SOURCE_FILE_NAMES = $(EXCLUDED_SOURCE_FILE_NAMES_$(WK_COCOA_TOUCH)) $(EXCLUDED_SOURCE_FILE_NAMES_$(WK_WHICH_BUILD_SYSTEM));
+// The legacy build system does not install headers.
+EXCLUDED_SOURCE_FILE_NAMES_legacy = *.h;
+EXCLUDED_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.*;
+EXCLUDED_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;
 
+INCLUDED_SOURCE_FILE_NAMES = $(INCLUDED_MIGRATED_HEADERS_$(WK_WHICH_BUILD_SYSTEM));
+INCLUDED_MIGRATED_HEADERS_not_legacy = $(INCLUDED_MIGRATED_HEADERS_$(USE_INTERNAL_SDK)_$(WK_COCOA_TOUCH)) $(INCLUDED_MIGRATED_HEADERS_$(ENABLE_IOS_TOUCH_EVENTS));
+// WebEventRegion.h is migrated when building for an iOS family target with an internal SDK...
+INCLUDED_MIGRATED_HEADERS_YES_cocoatouch = WebEventRegion.h;
+// ...or when --ios-touch-events was passed to build-webkit manually.
+INCLUDED_MIGRATED_HEADERS_ENABLE_IOS_TOUCH_EVENTS = WebEventRegion.h;
+
 EXPORTED_SYMBOLS_FILE = $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKitLegacy/WebKitLegacy.generated.exp;
+// The "Generate Export Files" build phase needs this setting to rerun when any migrated header changes:
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES;
 
 WK_PRIVATE_FRAMEWORKS_DIR = $(WK_PRIVATE_FRAMEWORKS_DIR_$(USE_INTERNAL_SDK));
 WK_PRIVATE_FRAMEWORKS_DIR_[sdk=macos*] = $(PROJECT_DIR)/../../WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/$(TARGET_MAC_OS_X_VERSION_MAJOR);

Deleted: trunk/Source/WebKitLegacy/mac/MigrateHeaders.make (292182 => 292183)


--- trunk/Source/WebKitLegacy/mac/MigrateHeaders.make	2022-03-31 21:53:51 UTC (rev 292182)
+++ trunk/Source/WebKitLegacy/mac/MigrateHeaders.make	2022-03-31 21:56:59 UTC (rev 292183)
@@ -1,106 +0,0 @@
-# Copyright (C) 2006-2020 Apple Inc. All rights reserved.
-# Copyright (C) 2006 Samuel Weinig <sam.wei...@gmail.com>
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1.  Redistributions of source code must retain the above copyright
-#     notice, this list of conditions and the following disclaimer. 
-# 2.  Redistributions in binary form must reproduce the above copyright
-#     notice, this list of conditions and the following disclaimer in the
-#     documentation and/or other materials provided with the distribution. 
-# 3.  Neither the name of Apple Inc. ("Apple") nor the names of
-#     its contributors may be used to endorse or promote products derived
-#     from this software without specific prior written permission. 
-#
-# THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
-# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-PERL = perl
-
-ifneq ($(SDKROOT),)
-    SDK_FLAGS = -isysroot $(SDKROOT)
-endif
-
-ifeq ($(USE_LLVM_TARGET_TRIPLES_FOR_CLANG),YES)
-    WK_CURRENT_ARCH = $(word 1, $(ARCHS))
-    TARGET_TRIPLE_FLAGS = -target $(WK_CURRENT_ARCH)-$(LLVM_TARGET_TRIPLE_VENDOR)-$(LLVM_TARGET_TRIPLE_OS_VERSION)$(LLVM_TARGET_TRIPLE_SUFFIX)
-endif
-
-FRAMEWORK_FLAGS := $(shell echo $(BUILT_PRODUCTS_DIR) $(FRAMEWORK_SEARCH_PATHS) $(SYSTEM_FRAMEWORK_SEARCH_PATHS) | $(PERL) -e 'print "-F " . join(" -F ", split(" ", <>));')
-HEADER_FLAGS := $(shell echo $(BUILT_PRODUCTS_DIR) $(HEADER_SEARCH_PATHS) $(SYSTEM_HEADER_SEARCH_PATHS) | $(PERL) -e 'print "-I" . join(" -I", split(" ", <>));')
-FEATURE_AND_PLATFORM_DEFINES := $(shell $(CC) -std=c++2a -x c++ -E -P -dM $(SDK_FLAGS) $(TARGET_TRIPLE_FLAGS) $(FRAMEWORK_FLAGS) $(HEADER_FLAGS) -include "wtf/Platform.h" /dev/null | $(PERL) -ne "print if s/\#define ((HAVE_|USE_|ENABLE_|WTF_PLATFORM_)\w+) 1/\1/")
-
-# --------
-
-VPATH = DOM $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKitLegacy/WebCorePrivateHeaders
-
-PRIVATE_HEADERS_DIR = $(BUILT_PRODUCTS_DIR)/$(PRIVATE_HEADERS_FOLDER_PATH)
-
-HEADERS = \
-    $(PRIVATE_HEADERS_DIR)/WebKitAvailability.h \
-    $(PRIVATE_HEADERS_DIR)/WebScriptObject.h \
-#
-
-ifneq ($(WK_PLATFORM_NAME), macosx)
-HEADERS += \
-    $(PRIVATE_HEADERS_DIR)/AbstractPasteboard.h \
-    $(PRIVATE_HEADERS_DIR)/KeyEventCodesIOS.h \
-    $(PRIVATE_HEADERS_DIR)/WAKAppKitStubs.h \
-    $(PRIVATE_HEADERS_DIR)/WAKResponder.h \
-    $(PRIVATE_HEADERS_DIR)/WAKView.h \
-    $(PRIVATE_HEADERS_DIR)/WAKWindow.h \
-    $(PRIVATE_HEADERS_DIR)/WKContentObservation.h \
-    $(PRIVATE_HEADERS_DIR)/WKGraphics.h \
-    $(PRIVATE_HEADERS_DIR)/WKTypes.h \
-    $(PRIVATE_HEADERS_DIR)/WebCoreThread.h \
-    $(PRIVATE_HEADERS_DIR)/WebCoreThreadMessage.h \
-    $(PRIVATE_HEADERS_DIR)/WebCoreThreadRun.h \
-    $(PRIVATE_HEADERS_DIR)/WebEvent.h \
-    $(PRIVATE_HEADERS_DIR)/WebItemProviderPasteboard.h \
-#
-endif
-
-ifeq ($(findstring ENABLE_IOS_TOUCH_EVENTS, $(FEATURE_AND_PLATFORM_DEFINES)), ENABLE_IOS_TOUCH_EVENTS)
-HEADERS += \
-    $(PRIVATE_HEADERS_DIR)/WebEventRegion.h
-endif
-
-.PHONY : migrate_headers
-migrate_headers : $(HEADERS)
-
-WEBCORE_HEADER_REPLACE_RULES = -e 's/<WebCore\//<WebKitLegacy\//' -e "s/(^ *)WEBCORE_EXPORT /\1/"
-WEBCORE_HEADER_MIGRATE_CMD = sed -E $(WEBCORE_HEADER_REPLACE_RULES) $< > $@; touch $(PRIVATE_HEADERS_DIR)
-
-$(PRIVATE_HEADERS_DIR)/% : % MigrateHeaders.make
-	$(WEBCORE_HEADER_MIGRATE_CMD)
-
-ifneq ($(WK_PLATFORM_NAME), macosx)
-
-REEXPORT_FILE = $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKitLegacy/ReexportedWebCoreSymbols_$(WK_CURRENT_ARCH).exp
-REEXPORT_FILE_TIMESTAMP = $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKitLegacy/ReexportedWebCoreSymbols.timestamp
-
-.PHONY : reexport_headers
-reexport_headers : $(REEXPORT_FILE)
-
-TAPI_PATH := $(strip $(shell xcrun --find tapi 2>/dev/null))
-
-$(REEXPORT_FILE) : $(HEADERS)
-	$(TAPI_PATH) reexport -target $(WK_CURRENT_ARCH)-$(LLVM_TARGET_TRIPLE_VENDOR)-$(LLVM_TARGET_TRIPLE_OS_VERSION)$(LLVM_TARGET_TRIPLE_SUFFIX) -isysroot $(SDK_DIR) $(HEADER_FLAGS) $(FRAMEWORK_FLAGS) $^ -o $@
-	touch $(REEXPORT_FILE_TIMESTAMP)
-
-else
-
-.PHONY : reexport_headers
-reexport_headers :
-
-endif

Deleted: trunk/Source/WebKitLegacy/mac/postprocess-headers.sh (292182 => 292183)


--- trunk/Source/WebKitLegacy/mac/postprocess-headers.sh	2022-03-31 21:53:51 UTC (rev 292182)
+++ trunk/Source/WebKitLegacy/mac/postprocess-headers.sh	2022-03-31 21:56:59 UTC (rev 292183)
@@ -1,42 +0,0 @@
-#!/bin/sh
-#
-# Copyright (C) 2014-2020 Apple Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-#    notice, this list of conditions and the following disclaimer in the
-#    documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
-# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-# THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-POSTPROCESS_HEADER_RULE="${SRCROOT}/scripts/postprocess-header-rule"
-[[ -x "${POSTPROCESS_HEADER_RULE}" ]] || { echo "### Unable to find ${POSTPROCESS_HEADER_RULE}"; exit 1; }
-TIMESTAMP="${TARGET_TEMP_DIR}/postprocess-headers-timestamp"
-
-function rewrite_headers ()
-{
-    for HEADER_PATH in "${1}/"*.h; do
-        SCRIPT_HEADER_VISIBILITY="${2}" \
-        SCRIPT_INPUT_FILE="${HEADER_PATH}" \
-        SCRIPT_OUTPUT_FILE_0="${HEADER_PATH}" \
-            "${POSTPROCESS_HEADER_RULE}"
-    done
-}
-
-rewrite_headers "${TARGET_BUILD_DIR}/${PRIVATE_HEADERS_FOLDER_PATH}" Private
-touch "${TIMESTAMP}"

Added: trunk/Source/WebKitLegacy/scripts/migrate-header-rule (0 => 292183)


--- trunk/Source/WebKitLegacy/scripts/migrate-header-rule	                        (rev 0)
+++ trunk/Source/WebKitLegacy/scripts/migrate-header-rule	2022-03-31 21:56:59 UTC (rev 292183)
@@ -0,0 +1,17 @@
+#!/bin/sh -e
+
+# Create the product header.
+sed -E -e 's/<WebCore\//<WebKitLegacy\//' -e "s/(^ *)WEBCORE_EXPORT /\1/" "${INPUT_FILE_PATH}" > "${SCRIPT_OUTPUT_FILE_0}"
+
+# Create a forwarding header to make all imports of this header use WebKitLegacy's header map.
+echo "#import <WebKitLegacy/${INPUT_FILE_NAME}>" > "${SCRIPT_OUTPUT_FILE_1}"
+
+# *_SEARCH_PATHS are already shell-escaped, convert to an array so we can pass a flag for each path.
+eval HEADER_SEARCH_PATHS=(${HEADER_SEARCH_PATHS} ${SYSTEM_HEADER_SEARCH_PATHS})
+eval FRAMEWORK_SEARCH_PATHS=(${FRAMEWORK_SEARCH_PATHS} ${SYSTEM_FRAMEWORK_SEARCH_PATHS})
+
+# Create an export list, which will be used by "Generate Export Files" to make the
+# EXPORTED_SYMBOLS_FILE passes to the linker.
+for WK_CURRENT_ARCH in ${ARCHS}; do
+    tapi reexport -target ${WK_CURRENT_ARCH}-${LLVM_TARGET_TRIPLE_VENDOR}-${LLVM_TARGET_TRIPLE_OS_VERSION}${LLVM_TARGET_TRIPLE_SUFFIX} -isysroot ${SDK_DIR} -I${BUILT_PRODUCTS_DIR} ${HEADER_SEARCH_PATHS[@]/#/-I} -F${BUILT_PRODUCTS_DIR}  ${FRAMEWORK_SEARCH_PATHS[@]/#/-F} -DWEBCORE_EXPORT= "${SDK_DIR}/usr/include/TargetConditionals.h" "${INPUT_FILE_PATH}" -o /dev/stdout
+done > "${SCRIPT_OUTPUT_FILE_2}"
Property changes on: trunk/Source/WebKitLegacy/scripts/migrate-header-rule
___________________________________________________________________

Added: svn:executable

+* \ No newline at end of property

Modified: trunk/Tools/ChangeLog (292182 => 292183)


--- trunk/Tools/ChangeLog	2022-03-31 21:53:51 UTC (rev 292182)
+++ trunk/Tools/ChangeLog	2022-03-31 21:56:59 UTC (rev 292183)
@@ -1,3 +1,15 @@
+2022-03-31  Elliott Williams  <e...@apple.com>
+
+        [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.
+
+        * 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/.
+
 2022-03-31  Jeff Miller  <je...@apple.com>
 
         Some API tests are missing header imports

Modified: trunk/Tools/Scripts/check-for-inappropriate-files-in-framework (292182 => 292183)


--- trunk/Tools/Scripts/check-for-inappropriate-files-in-framework	2022-03-31 21:53:51 UTC (rev 292182)
+++ trunk/Tools/Scripts/check-for-inappropriate-files-in-framework	2022-03-31 21:56:59 UTC (rev 292183)
@@ -36,7 +36,7 @@
     "Resources" => ["*.txt", "*.in", "*.idl", "*.h"],
   },
   "WebKitLegacy" => {
-    "Headers" => ["*.tmp"],
+    "PrivateHeaders" => ["*.tmp"],
     "Resources" => ["*.txt", "*.in", "*.idl", "*.h"],
   },
   "WebKit" => {
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to