Title: [287999] trunk/Source
Revision
287999
Author
[email protected]
Date
2022-01-13 17:01:40 -0800 (Thu, 13 Jan 2022)

Log Message

[XCBuild] Add "product dependencies" which influence workspace build order
https://bugs.webkit.org/show_bug.cgi?id=235094

Source/_javascript_Core:

Some ancillary targets (e.g. script-only targets like Derived Sources) do not have implicit
dependencies visible to Xcode. In workspace builds, we need to give XCBuild additional
information to ensure that they always run after their dependencies.

This patch adds "Product Dependencies" phases, which are Copy Files phases that copy the
_product_ of another dependency. The product names are also added to
EXCLUDED_SOURCE_FILE_NAMES, making the actual copy a no-op, but these phases give XCBuild
enough metadata to infer the relationship between targets.

For example, _javascript_Core's "Generate Unified Sources" target depends on headers from WTF,
so it lists libWTF.a in its Product Dependencies. Xcode sees the relationship between the
target doing the copy (Generate Unified Sources) and the target which produces the product
(WTF) and schedules them accordingly.

Because these dependencies are _implicit_ and the copy phases are no-ops, they do not
influence command-line or production builds where each project is built separately.

Patch by Elliott Williams <[email protected]> on 2022-01-13
Reviewed by Alexey Proskuryakov.

* Configurations/Base.xcconfig: Add EXCLUDED_SOURCE_FILE_NAMES
* Configurations/_javascript_Core.xcconfig: Inherit EXCLUDED_SOURCE_FILE_NAMES
* _javascript_Core.xcodeproj/project.pbxproj: Add Product Dependencies

Source/WebCore:

Patch by Elliott Williams <[email protected]> on 2022-01-13
Reviewed by Alexey Proskuryakov.

No tests, build system only.

* Configurations/Base.xcconfig: Add EXCLUDED_SOURCE_FILE_NAMES
* Configurations/WebCore.xcconfig: Inherit EXCLUDED_SOURCE_FILE_NAMES
* WebCore.xcodeproj/project.pbxproj: Add Product Dependencies

Source/WebCore/PAL:

Patch by Elliott Williams <[email protected]> on 2022-01-13
Reviewed by Alexey Proskuryakov.

* Configurations/Base.xcconfig: Add EXCLUDED_SOURCE_FILE_NAMES
* Configurations/PAL.xcconfig: Inherit EXCLUDED_SOURCE_FILE_NAMES
* PAL.xcodeproj/project.pbxproj: Add Product Dependencies

Source/WebInspectorUI:

Patch by Elliott Williams <[email protected]> on 2022-01-13
Reviewed by Alexey Proskuryakov.

* Configurations/Base.xcconfig: Add EXCLUDED_SOURCE_FILE_NAMES
* WebInspectorUI.xcodeproj/project.pbxproj: Add Product Dependencies

Source/WebKit:

Patch by Elliott Williams <[email protected]> on 2022-01-13
Reviewed by Alexey Proskuryakov.

* Configurations/WebKit.xcconfig: Add EXCLUDED_SOURCE_FILE_NAMES
* WebKit.xcodeproj/project.pbxproj: Add Product Dependencies

Source/WTF:

Patch by Elliott Williams <[email protected]> on 2022-01-13
Reviewed by Alexey Proskuryakov.

* Configurations/Base.xcconfig: Add EXCLUDED_SOURCE_FILE_NAMES
* Configurations/WTF.xcconfig: Inherit EXCLUDED_SOURCE_FILE_NAMES
* WTF.xcodeproj/project.pbxproj: Add Product Dependencies

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (287998 => 287999)


--- trunk/Source/_javascript_Core/ChangeLog	2022-01-13 23:47:52 UTC (rev 287998)
+++ trunk/Source/_javascript_Core/ChangeLog	2022-01-14 01:01:40 UTC (rev 287999)
@@ -1,3 +1,31 @@
+2022-01-13  Elliott Williams  <[email protected]>
+
+        [XCBuild] Add "product dependencies" which influence workspace build order
+        https://bugs.webkit.org/show_bug.cgi?id=235094
+
+        Some ancillary targets (e.g. script-only targets like Derived Sources) do not have implicit
+        dependencies visible to Xcode. In workspace builds, we need to give XCBuild additional
+        information to ensure that they always run after their dependencies.
+
+        This patch adds "Product Dependencies" phases, which are Copy Files phases that copy the
+        _product_ of another dependency. The product names are also added to
+        EXCLUDED_SOURCE_FILE_NAMES, making the actual copy a no-op, but these phases give XCBuild
+        enough metadata to infer the relationship between targets.
+
+        For example, _javascript_Core's "Generate Unified Sources" target depends on headers from WTF,
+        so it lists libWTF.a in its Product Dependencies. Xcode sees the relationship between the
+        target doing the copy (Generate Unified Sources) and the target which produces the product
+        (WTF) and schedules them accordingly.
+
+        Because these dependencies are _implicit_ and the copy phases are no-ops, they do not
+        influence command-line or production builds where each project is built separately.
+
+        Reviewed by Alexey Proskuryakov.
+
+        * Configurations/Base.xcconfig: Add EXCLUDED_SOURCE_FILE_NAMES
+        * Configurations/_javascript_Core.xcconfig: Inherit EXCLUDED_SOURCE_FILE_NAMES
+        * _javascript_Core.xcodeproj/project.pbxproj: Add Product Dependencies
+
 2022-01-13  Tim Horton  <[email protected]>
 
         Fix a few Objective-C object leaks due to early returns in `init`

Modified: trunk/Source/_javascript_Core/Configurations/Base.xcconfig (287998 => 287999)


--- trunk/Source/_javascript_Core/Configurations/Base.xcconfig	2022-01-13 23:47:52 UTC (rev 287998)
+++ trunk/Source/_javascript_Core/Configurations/Base.xcconfig	2022-01-14 01:01:40 UTC (rev 287999)
@@ -182,6 +182,7 @@
 WK_COCOA_TOUCH_appletvsimulator = cocoatouch;
 WK_IS_COCOA_TOUCH = $(WK_NOT_$(WK_EMPTY_$(WK_COCOA_TOUCH)));
 
+EXCLUDED_SOURCE_FILE_NAMES = libWebKitAdditions.a libWTF.a
 WK_WEBKITADDITIONS_INSTALL_PATH = /usr/local/include/WebKitAdditions
 WK_WEBKITADDITIONS_HEADERS_FOLDER_PATH = $(SDKROOT)/$(WK_WEBKITADDITIONS_INSTALL_PATH)
 

Modified: trunk/Source/_javascript_Core/Configurations/_javascript_Core.xcconfig (287998 => 287999)


--- trunk/Source/_javascript_Core/Configurations/_javascript_Core.xcconfig	2022-01-13 23:47:52 UTC (rev 287998)
+++ trunk/Source/_javascript_Core/Configurations/_javascript_Core.xcconfig	2022-01-14 01:01:40 UTC (rev 287999)
@@ -58,4 +58,4 @@
 INSTALLHDRS_SCRIPT_PHASE = YES;
 APPLY_RULES_IN_COPY_HEADERS = $(WK_USE_NEW_BUILD_SYSTEM);
 
-EXCLUDED_SOURCE_FILE_NAMES[sdk=iphone*] = framework.sb;
+EXCLUDED_SOURCE_FILE_NAMES[sdk=iphone*] = $(inherited) framework.sb;

Modified: trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj (287998 => 287999)


--- trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj	2022-01-13 23:47:52 UTC (rev 287998)
+++ trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj	2022-01-14 01:01:40 UTC (rev 287999)
@@ -46,6 +46,7 @@
 			isa = PBXAggregateTarget;
 			buildConfigurationList = 53B4BD0A1F68AF8900D2BEA3 /* Build configuration list for PBXAggregateTarget "Generate Unified Sources" */;
 			buildPhases = (
+				DDE99323278E4CCF00F60D26 /* Product Dependencies */,
 				53B4BD091F68AF8900D2BEA3 /* Generate Unified Sources */,
 			);
 			dependencies = (
@@ -76,6 +77,7 @@
 			isa = PBXAggregateTarget;
 			buildConfigurationList = 65788AA218B409EB00C189FF /* Build configuration list for PBXAggregateTarget "Offline Assembler" */;
 			buildPhases = (
+				DDE9930C278D083D00F60D26 /* Product Dependencies */,
 				65788AA018B409EB00C189FF /* Offline Assemble */,
 			);
 			dependencies = (
@@ -89,6 +91,7 @@
 			isa = PBXAggregateTarget;
 			buildConfigurationList = 65FB3F7709D11EBD00F49DEB /* Build configuration list for PBXAggregateTarget "Derived Sources" */;
 			buildPhases = (
+				DDE99311278D088800F60D26 /* Product Dependencies */,
 				65FB3F6509D11E9100F49DEB /* Generate Derived Sources */,
 				374F95C9205F9975002BF68F /* Make libWTF.a Symbolic Link */,
 			);
@@ -1605,7 +1608,6 @@
 		A7F9935F0FD7325100A0B2D0 /* JSONObject.h in Headers */ = {isa = PBXBuildFile; fileRef = A7F9935D0FD7325100A0B2D0 /* JSONObject.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		A7FB61001040C38B0017A286 /* PropertyDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7FB604B103F5EAB0017A286 /* PropertyDescriptor.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		A7FCC26D17A0B6AA00786D1A /* FTLSwitchCase.h in Headers */ = {isa = PBXBuildFile; fileRef = A7FCC26C17A0B6AA00786D1A /* FTLSwitchCase.h */; settings = {ATTRIBUTES = (Private, ); }; };
-		A8A4748E151A8306004123FF /* libWTF.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A8A4748D151A8306004123FF /* libWTF.a */; };
 		AD00659E1ECAC812000CA926 /* WasmLimits.h in Headers */ = {isa = PBXBuildFile; fileRef = AD00659D1ECAC7FE000CA926 /* WasmLimits.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		AD2FCBE31DB58DAD00B3E736 /* JSWebAssemblyCompileError.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCBA71DB58DA400B3E736 /* JSWebAssemblyCompileError.h */; };
 		AD2FCBE51DB58DAD00B3E736 /* JSWebAssemblyInstance.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2FCBA91DB58DA400B3E736 /* JSWebAssemblyInstance.h */; };
@@ -1818,6 +1820,10 @@
 		DCF3D56D1CD29476003D5C65 /* LazyPropertyInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = DCF3D5681CD29468003D5C65 /* LazyPropertyInlines.h */; };
 		DCFDFBD91D1F5D9B00FE3D72 /* B3BottomProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = DCFDFBD71D1F5D9800FE3D72 /* B3BottomProvider.h */; };
 		DCFDFBDA1D1F5D9E00FE3D72 /* B3TypeMap.h in Headers */ = {isa = PBXBuildFile; fileRef = DCFDFBD81D1F5D9800FE3D72 /* B3TypeMap.h */; };
+		DDB04F41278E569A008D3678 /* libWTF.a in Product Dependencies */ = {isa = PBXBuildFile; fileRef = 1498CAD3214656C400710879 /* libWTF.a */; };
+		DDB04F42278E56A2008D3678 /* libWTF.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1498CAD3214656C400710879 /* libWTF.a */; };
+		DDE99310278D087D00F60D26 /* libWebKitAdditions.a in Product Dependencies */ = {isa = PBXBuildFile; fileRef = DDE9930E278D086600F60D26 /* libWebKitAdditions.a */; };
+		DDE99312278D089000F60D26 /* libWebKitAdditions.a in Product Dependencies */ = {isa = PBXBuildFile; fileRef = DDE9930E278D086600F60D26 /* libWebKitAdditions.a */; };
 		DE26E9031CB5DD0500D2BE82 /* BuiltinExecutableCreator.h in Headers */ = {isa = PBXBuildFile; fileRef = DE26E9021CB5DD0500D2BE82 /* BuiltinExecutableCreator.h */; };
 		DEA7E2451BBC677F00D78440 /* JSTypedArrayViewPrototype.h in Headers */ = {isa = PBXBuildFile; fileRef = 53917E7C1B791106000EBD33 /* JSTypedArrayViewPrototype.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		DFBC2CA625E6D5B90081BDD1 /* SymbolStubsForSafariCompatibility.mm in Sources */ = {isa = PBXBuildFile; fileRef = DFBC2CA525E6D5790081BDD1 /* SymbolStubsForSafariCompatibility.mm */; };
@@ -2406,6 +2412,39 @@
 			name = "Copy Support Script";
 			runOnlyForDeploymentPostprocessing = 0;
 		};
+		DDE9930C278D083D00F60D26 /* Product Dependencies */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 16;
+			files = (
+				DDE99310278D087D00F60D26 /* libWebKitAdditions.a in Product Dependencies */,
+			);
+			name = "Product Dependencies";
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		DDE99311278D088800F60D26 /* Product Dependencies */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 16;
+			files = (
+				DDE99312278D089000F60D26 /* libWebKitAdditions.a in Product Dependencies */,
+			);
+			name = "Product Dependencies";
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		DDE99323278E4CCF00F60D26 /* Product Dependencies */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 16;
+			files = (
+				DDB04F41278E569A008D3678 /* libWTF.a in Product Dependencies */,
+			);
+			name = "Product Dependencies";
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 /* End PBXCopyFilesBuildPhase section */
 
 /* Begin PBXFileReference section */
@@ -4878,7 +4917,6 @@
 		A7FB60A3103F7DC20017A286 /* PropertyDescriptor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PropertyDescriptor.cpp; sourceTree = "<group>"; };
 		A7FCC26C17A0B6AA00786D1A /* FTLSwitchCase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FTLSwitchCase.h; path = ftl/FTLSwitchCase.h; sourceTree = "<group>"; };
 		A7FF647A18C52E8500B55307 /* SpillRegistersMode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SpillRegistersMode.h; sourceTree = "<group>"; };
-		A8A4748D151A8306004123FF /* libWTF.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; name = libWTF.a; path = DerivedSources/_javascript_Core/libWTF.a; sourceTree = BUILT_PRODUCTS_DIR; };
 		A8E894310CD0602400367179 /* JSCallbackObjectFunctions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCallbackObjectFunctions.h; sourceTree = "<group>"; };
 		A8E894330CD0603F00367179 /* JSGlobalObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSGlobalObject.h; sourceTree = "<group>"; };
 		AD00659D1ECAC7FE000CA926 /* WasmLimits.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WasmLimits.h; sourceTree = "<group>"; };
@@ -5160,6 +5198,7 @@
 		DCF3D5681CD29468003D5C65 /* LazyPropertyInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LazyPropertyInlines.h; sourceTree = "<group>"; };
 		DCFDFBD71D1F5D9800FE3D72 /* B3BottomProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = B3BottomProvider.h; path = b3/B3BottomProvider.h; sourceTree = "<group>"; };
 		DCFDFBD81D1F5D9800FE3D72 /* B3TypeMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = B3TypeMap.h; path = b3/B3TypeMap.h; sourceTree = "<group>"; };
+		DDE9930E278D086600F60D26 /* libWebKitAdditions.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libWebKitAdditions.a; sourceTree = BUILT_PRODUCTS_DIR; };
 		DE26E9021CB5DD0500D2BE82 /* BuiltinExecutableCreator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BuiltinExecutableCreator.h; sourceTree = "<group>"; };
 		DE26E9061CB5DD9600D2BE82 /* BuiltinExecutableCreator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BuiltinExecutableCreator.cpp; sourceTree = "<group>"; };
 		DE5A09FF1BA3AC3E003D4424 /* IntrinsicEmitter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IntrinsicEmitter.cpp; sourceTree = "<group>"; };
@@ -5781,8 +5820,8 @@
 				A731B25A130093880040A7FA /* Foundation.framework in Frameworks */,
 				932F5BD70822A1C700736975 /* libicucore.dylib in Frameworks */,
 				932F5BD60822A1C700736975 /* libobjc.dylib in Frameworks */,
-				A8A4748E151A8306004123FF /* libWTF.a in Frameworks */,
 				A5098B041C16AA0200087797 /* Security.framework in Frameworks */,
+				DDB04F42278E56A2008D3678 /* libWTF.a in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -5889,8 +5928,8 @@
 				5D5D8AD00E0D0EBE00F9C692 /* libedit.dylib */,
 				9322A00306C341D3009067BB /* libicucore.dylib */,
 				51F0EC0705C86C9A00E6DF1B /* libobjc.dylib */,
+				DDE9930E278D086600F60D26 /* libWebKitAdditions.a */,
 				1498CAD3214656C400710879 /* libWTF.a */,
-				A8A4748D151A8306004123FF /* libWTF.a */,
 				371D842C17C98B6E00ECF994 /* libz.dylib */,
 				A5098B031C16AA0200087797 /* Security.framework */,
 			);

Modified: trunk/Source/WTF/ChangeLog (287998 => 287999)


--- trunk/Source/WTF/ChangeLog	2022-01-13 23:47:52 UTC (rev 287998)
+++ trunk/Source/WTF/ChangeLog	2022-01-14 01:01:40 UTC (rev 287999)
@@ -1,3 +1,14 @@
+2022-01-13  Elliott Williams  <[email protected]>
+
+        [XCBuild] Add "product dependencies" which influence workspace build order
+        https://bugs.webkit.org/show_bug.cgi?id=235094
+
+        Reviewed by Alexey Proskuryakov.
+
+        * Configurations/Base.xcconfig: Add EXCLUDED_SOURCE_FILE_NAMES
+        * Configurations/WTF.xcconfig: Inherit EXCLUDED_SOURCE_FILE_NAMES
+        * WTF.xcodeproj/project.pbxproj: Add Product Dependencies
+
 2022-01-12  Mark Lam  <[email protected]>
 
         [Re-landing] Update hashThreadState() to exclude __opaque_flags.

Modified: trunk/Source/WTF/Configurations/Base.xcconfig (287998 => 287999)


--- trunk/Source/WTF/Configurations/Base.xcconfig	2022-01-13 23:47:52 UTC (rev 287998)
+++ trunk/Source/WTF/Configurations/Base.xcconfig	2022-01-14 01:01:40 UTC (rev 287999)
@@ -128,6 +128,7 @@
 SDKROOT = macosx.internal;
 
 OTHER_CPLUSPLUSFLAGS = $(inherited) -isystem $(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders;
+EXCLUDED_SOURCE_FILE_NAMES = libWebKitAdditions.a
 
 LLVM_LTO = $(WK_LLVM_LTO_$(WK_XCODE_SUPPORTS_LTO));
 WK_LLVM_LTO_NO = NO;

Modified: trunk/Source/WTF/Configurations/WTF.xcconfig (287998 => 287999)


--- trunk/Source/WTF/Configurations/WTF.xcconfig	2022-01-13 23:47:52 UTC (rev 287998)
+++ trunk/Source/WTF/Configurations/WTF.xcconfig	2022-01-14 01:01:40 UTC (rev 287999)
@@ -29,6 +29,6 @@
 STRIP_INSTALLED_PRODUCT = NO;
 
 EXCLUDED_SOURCE_FILE_NAMES_ = MachExceptions.defs;
-EXCLUDED_SOURCE_FILE_NAMES[sdk=embedded*] = $(EXCLUDED_SOURCE_FILE_NAMES_$(USE_INTERNAL_SDK));
+EXCLUDED_SOURCE_FILE_NAMES[sdk=embedded*] = $(inherited) $(EXCLUDED_SOURCE_FILE_NAMES_$(USE_INTERNAL_SDK));
 
 SYSTEM_FRAMEWORK_SEARCH_PATHS = $(inherited) $(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks

Modified: trunk/Source/WTF/WTF.xcodeproj/project.pbxproj (287998 => 287999)


--- trunk/Source/WTF/WTF.xcodeproj/project.pbxproj	2022-01-13 23:47:52 UTC (rev 287998)
+++ trunk/Source/WTF/WTF.xcodeproj/project.pbxproj	2022-01-14 01:01:40 UTC (rev 287999)
@@ -173,6 +173,7 @@
 		CD5497AC15857D0300B5BC30 /* MediaTime.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CD5497AA15857D0300B5BC30 /* MediaTime.cpp */; };
 		CEA072AA236FFBF70018839C /* CrashReporter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEA072A9236FFBF70018839C /* CrashReporter.cpp */; };
 		DCEE22011CEA7551000C2396 /* BlockObjCExceptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = DCEE21FD1CEA7551000C2396 /* BlockObjCExceptions.mm */; };
+		DDE99319278D08DC00F60D26 /* libWebKitAdditions.a in Product Dependencies */ = {isa = PBXBuildFile; fileRef = DDE99317278D08C900F60D26 /* libWebKitAdditions.a */; };
 		E15556F518A0CC18006F48FB /* CryptographicUtilities.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E15556F318A0CC18006F48FB /* CryptographicUtilities.cpp */; };
 		E311FB171F0A568B003C08DE /* ThreadGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E311FB151F0A568B003C08DE /* ThreadGroup.cpp */; };
 		E3149A37228BB42200BFA6C7 /* Bag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FEBA64120CF37100074941C /* Bag.cpp */; };
@@ -209,6 +210,20 @@
 		};
 /* End PBXContainerItemProxy section */
 
+/* Begin PBXCopyFilesBuildPhase section */
+		DDE99316278D08B900F60D26 /* Product Dependencies */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 16;
+			files = (
+				DDE99319278D08DC00F60D26 /* libWebKitAdditions.a in Product Dependencies */,
+			);
+			name = "Product Dependencies";
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXCopyFilesBuildPhase section */
+
 /* Begin PBXFileReference section */
 		077CD86A1FD9CFD200828587 /* Logger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Logger.h; sourceTree = "<group>"; };
 		077CD86B1FD9CFD300828587 /* LoggerHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoggerHelper.h; sourceTree = "<group>"; };
@@ -738,6 +753,7 @@
 		DCEE21FC1CEA7551000C2396 /* BlockObjCExceptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BlockObjCExceptions.h; sourceTree = "<group>"; };
 		DCEE21FD1CEA7551000C2396 /* BlockObjCExceptions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = BlockObjCExceptions.mm; sourceTree = "<group>"; };
 		DCEE22041CEB9869000C2396 /* BackwardsGraph.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BackwardsGraph.h; sourceTree = "<group>"; };
+		DDE99317278D08C900F60D26 /* libWebKitAdditions.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libWebKitAdditions.a; sourceTree = BUILT_PRODUCTS_DIR; };
 		DEF7FE5F22581AC800C15129 /* TaggedArrayStoragePtr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TaggedArrayStoragePtr.h; sourceTree = "<group>"; };
 		DFC610A724FB71B9006254C8 /* CodePointIterator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CodePointIterator.h; sourceTree = "<group>"; };
 		E15556F318A0CC18006F48FB /* CryptographicUtilities.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CryptographicUtilities.cpp; sourceTree = "<group>"; };
@@ -889,6 +905,7 @@
 			isa = PBXGroup;
 			children = (
 				5D247B6D14689C4700E78B76 /* Configurations */,
+				DDE9931F278D0FAA00F60D26 /* Frameworks */,
 				14022F3F18F5C3E5007FF0EB /* Libraries */,
 				5D247B6314689B8600E78B76 /* Products */,
 				5D247B7614689D7600E78B76 /* Source */,
@@ -1597,6 +1614,14 @@
 			path = cf;
 			sourceTree = "<group>";
 		};
+		DDE9931F278D0FAA00F60D26 /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				DDE99317278D08C900F60D26 /* libWebKitAdditions.a */,
+			);
+			name = Frameworks;
+			sourceTree = "<group>";
+		};
 		E43A46851E228B5700276B05 /* persistence */ = {
 			isa = PBXGroup;
 			children = (
@@ -1649,6 +1674,7 @@
 			isa = PBXNativeTarget;
 			buildConfigurationList = 5D247B6614689B8600E78B76 /* Build configuration list for PBXNativeTarget "WTF" */;
 			buildPhases = (
+				DDE99316278D08B900F60D26 /* Product Dependencies */,
 				5D247B5E14689B8600E78B76 /* Sources */,
 				5D247B5F14689B8600E78B76 /* Frameworks */,
 			);

Modified: trunk/Source/WebCore/ChangeLog (287998 => 287999)


--- trunk/Source/WebCore/ChangeLog	2022-01-13 23:47:52 UTC (rev 287998)
+++ trunk/Source/WebCore/ChangeLog	2022-01-14 01:01:40 UTC (rev 287999)
@@ -1,3 +1,16 @@
+2022-01-13  Elliott Williams  <[email protected]>
+
+        [XCBuild] Add "product dependencies" which influence workspace build order
+        https://bugs.webkit.org/show_bug.cgi?id=235094
+
+        Reviewed by Alexey Proskuryakov.
+
+        No tests, build system only.
+
+        * Configurations/Base.xcconfig: Add EXCLUDED_SOURCE_FILE_NAMES
+        * Configurations/WebCore.xcconfig: Inherit EXCLUDED_SOURCE_FILE_NAMES
+        * WebCore.xcodeproj/project.pbxproj: Add Product Dependencies
+
 2022-01-13  Adrian Perez de Castro  <[email protected]>
 
         Non-unified build fixes, mid January 2022 edition

Modified: trunk/Source/WebCore/Configurations/Base.xcconfig (287998 => 287999)


--- trunk/Source/WebCore/Configurations/Base.xcconfig	2022-01-13 23:47:52 UTC (rev 287998)
+++ trunk/Source/WebCore/Configurations/Base.xcconfig	2022-01-14 01:01:40 UTC (rev 287999)
@@ -138,6 +138,7 @@
 WK_COCOA_TOUCH_appletvsimulator = cocoatouch;
 WK_IS_COCOA_TOUCH = $(WK_NOT_$(WK_EMPTY_$(WK_COCOA_TOUCH)));
 
+EXCLUDED_SOURCE_FILE_NAMES = libWebKitAdditions.a libWTF.a
 WK_WEBKITADDITIONS_INSTALL_PATH = /usr/local/include/WebKitAdditions
 WK_WEBKITADDITIONS_HEADERS_FOLDER_PATH = $(SDKROOT)/$(WK_WEBKITADDITIONS_INSTALL_PATH)
 WK_WEBCORE_DERIVEDSOURCES_INPUT_XCFILELIST_ADDITIONS = $(WK_WEBKITADDITIONS_HEADERS_FOLDER_PATH)/WebCore/DerivedSources-input.xcfilelist

Modified: trunk/Source/WebCore/Configurations/WebCore.xcconfig (287998 => 287999)


--- trunk/Source/WebCore/Configurations/WebCore.xcconfig	2022-01-13 23:47:52 UTC (rev 287998)
+++ trunk/Source/WebCore/Configurations/WebCore.xcconfig	2022-01-14 01:01:40 UTC (rev 287999)
@@ -189,7 +189,7 @@
 _javascript_CORE_PRIVATE_HEADERS_DIR_Production_COCOA_TOUCH_NO = $(SDKROOT)$(PRODUCTION_FRAMEWORKS_DIR)/_javascript_Core.framework/PrivateHeaders;
 _javascript_CORE_PRIVATE_HEADERS_engineering = $(BUILT_PRODUCTS_DIR)/_javascript_Core.framework/PrivateHeaders;
 
-EXCLUDED_SOURCE_FILE_NAMES[sdk=iphone*] = *.tiff *Cursor.png npapi.h npfunctions.h npruntime.h npruntime_internal.h;
+EXCLUDED_SOURCE_FILE_NAMES[sdk=iphone*] = $(inherited) *.tiff *Cursor.png npapi.h npfunctions.h npruntime.h npruntime_internal.h;
 
 WK_USE_OVERRIDE_FRAMEWORKS_DIR = $(WK_NOT_$(WK_EMPTY_$(WK_OVERRIDE_FRAMEWORKS_DIR)));
 

Modified: trunk/Source/WebCore/PAL/ChangeLog (287998 => 287999)


--- trunk/Source/WebCore/PAL/ChangeLog	2022-01-13 23:47:52 UTC (rev 287998)
+++ trunk/Source/WebCore/PAL/ChangeLog	2022-01-14 01:01:40 UTC (rev 287999)
@@ -1,3 +1,14 @@
+2022-01-13  Elliott Williams  <[email protected]>
+
+        [XCBuild] Add "product dependencies" which influence workspace build order
+        https://bugs.webkit.org/show_bug.cgi?id=235094
+
+        Reviewed by Alexey Proskuryakov.
+
+        * Configurations/Base.xcconfig: Add EXCLUDED_SOURCE_FILE_NAMES
+        * Configurations/PAL.xcconfig: Inherit EXCLUDED_SOURCE_FILE_NAMES
+        * PAL.xcodeproj/project.pbxproj: Add Product Dependencies
+
 2022-01-11  Fujii Hironori  <[email protected]>
 
         Remove Direct2D code (part 2)

Modified: trunk/Source/WebCore/PAL/Configurations/Base.xcconfig (287998 => 287999)


--- trunk/Source/WebCore/PAL/Configurations/Base.xcconfig	2022-01-13 23:47:52 UTC (rev 287998)
+++ trunk/Source/WebCore/PAL/Configurations/Base.xcconfig	2022-01-14 01:01:40 UTC (rev 287999)
@@ -109,6 +109,8 @@
 DEBUG_DEFINES = NDEBUG;
 DEBUG_DEFINES[config=Debug] = ;
 
+EXCLUDED_SOURCE_FILE_NAMES = libWebKitAdditions.a;
+
 GCC_OPTIMIZATION_LEVEL[sdk=iphone*] = 3;
 GCC_OPTIMIZATION_LEVEL[sdk=iphone*][config=Debug] = 0;
 GCC_OPTIMIZATION_LEVEL[sdk=macosx*] = 2;

Modified: trunk/Source/WebCore/PAL/Configurations/PAL.xcconfig (287998 => 287999)


--- trunk/Source/WebCore/PAL/Configurations/PAL.xcconfig	2022-01-13 23:47:52 UTC (rev 287998)
+++ trunk/Source/WebCore/PAL/Configurations/PAL.xcconfig	2022-01-14 01:01:40 UTC (rev 287999)
@@ -52,7 +52,7 @@
 PRODUCTION_FRAMEWORKS_DIR_USE_OVERRIDE_FRAMEWORKS_DIR_NO = $(NORMAL_PRODUCTION_FRAMEWORKS_DIR);
 PRODUCTION_FRAMEWORKS_DIR_USE_OVERRIDE_FRAMEWORKS_DIR_YES = $(WK_OVERRIDE_FRAMEWORKS_DIR);
 
-EXCLUDED_SOURCE_FILE_NAMES[sdk=iphone*] = *.tiff *Cursor.png;
+EXCLUDED_SOURCE_FILE_NAMES[sdk=iphone*] = $(inherited) *.tiff *Cursor.png;
 
 WK_USE_OVERRIDE_FRAMEWORKS_DIR = $(WK_NOT_$(WK_EMPTY_$(WK_OVERRIDE_FRAMEWORKS_DIR)));
 

Modified: trunk/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj (287998 => 287999)


--- trunk/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj	2022-01-13 23:47:52 UTC (rev 287998)
+++ trunk/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj	2022-01-14 01:01:40 UTC (rev 287999)
@@ -377,6 +377,7 @@
 		CDACB361238742740018D7CE /* MediaToolboxSoftLink.h in Headers */ = {isa = PBXBuildFile; fileRef = CDACB35F23873E480018D7CE /* MediaToolboxSoftLink.h */; };
 		CDF91113220E4EEC001EA39E /* CelestialSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = CDF91112220E4EEC001EA39E /* CelestialSPI.h */; };
 		CE5673872151A7B9002F92D7 /* IOKitSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = CE5673862151A7B9002F92D7 /* IOKitSPI.h */; };
+		DDB04F32278E4F1B008D3678 /* libWebKitAdditions.a in Product Dependencies */ = {isa = PBXBuildFile; fileRef = DDE99300278D07B800F60D26 /* libWebKitAdditions.a */; };
 		DF83E209263734F1000825EF /* CryptoKitPrivateSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = DF83E208263734F1000825EF /* CryptoKitPrivateSPI.h */; };
 		E327C0DF260BE436002281C5 /* NotifySPI.h in Headers */ = {isa = PBXBuildFile; fileRef = E327C0DE260BDC90002281C5 /* NotifySPI.h */; };
 		E5D45D122106A07400D2B738 /* NSColorWellSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = E5D45D112106A07400D2B738 /* NSColorWellSPI.h */; };
@@ -412,6 +413,20 @@
 		};
 /* End PBXContainerItemProxy section */
 
+/* Begin PBXCopyFilesBuildPhase section */
+		DDE992FF278D07A100F60D26 /* Product Dependencies */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 16;
+			files = (
+				DDB04F32278E4F1B008D3678 /* libWebKitAdditions.a in Product Dependencies */,
+			);
+			name = "Product Dependencies";
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXCopyFilesBuildPhase section */
+
 /* Begin PBXFileReference section */
 		071C00352707EDF000D027C7 /* ReplayKitSoftLink.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ReplayKitSoftLink.mm; sourceTree = "<group>"; };
 		071C00362707EDF000D027C7 /* ReplayKitSoftLink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReplayKitSoftLink.h; sourceTree = "<group>"; };
@@ -822,6 +837,7 @@
 		CDACB35F23873E480018D7CE /* MediaToolboxSoftLink.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MediaToolboxSoftLink.h; sourceTree = "<group>"; };
 		CDF91112220E4EEC001EA39E /* CelestialSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CelestialSPI.h; sourceTree = "<group>"; };
 		CE5673862151A7B9002F92D7 /* IOKitSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IOKitSPI.h; sourceTree = "<group>"; };
+		DDE99300278D07B800F60D26 /* libWebKitAdditions.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libWebKitAdditions.a; sourceTree = BUILT_PRODUCTS_DIR; };
 		DF83E208263734F1000825EF /* CryptoKitPrivateSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CryptoKitPrivateSPI.h; sourceTree = "<group>"; };
 		E327C0DE260BDC90002281C5 /* NotifySPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NotifySPI.h; sourceTree = "<group>"; };
 		E5D45D112106A07400D2B738 /* NSColorWellSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSColorWellSPI.h; sourceTree = "<group>"; };
@@ -1062,6 +1078,7 @@
 			isa = PBXGroup;
 			children = (
 				1C09D05C1E31C73300725F18 /* Configurations */,
+				DDE99321278D103900F60D26 /* Frameworks */,
 				1C09D03F1E31C32800725F18 /* pal */,
 				1C09D03E1E31C32800725F18 /* Products */,
 				1C09D0571E31C57E00725F18 /* config.h */,
@@ -1498,6 +1515,14 @@
 			path = cocoa;
 			sourceTree = "<group>";
 		};
+		DDE99321278D103900F60D26 /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				DDE99300278D07B800F60D26 /* libWebKitAdditions.a */,
+			);
+			name = Frameworks;
+			sourceTree = "<group>";
+		};
 /* End PBXGroup section */
 
 /* Begin PBXHeadersBuildPhase section */
@@ -1806,6 +1831,7 @@
 			isa = PBXNativeTarget;
 			buildConfigurationList = 1C09D0481E31C32800725F18 /* Build configuration list for PBXNativeTarget "PAL" */;
 			buildPhases = (
+				DDE992FF278D07A100F60D26 /* Product Dependencies */,
 				1C09D0391E31C32800725F18 /* Sources */,
 				1C09D03A1E31C32800725F18 /* Frameworks */,
 				1C09D03B1E31C32800725F18 /* Headers */,

Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (287998 => 287999)


--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj	2022-01-13 23:47:52 UTC (rev 287998)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj	2022-01-14 01:01:40 UTC (rev 287999)
@@ -35,6 +35,7 @@
 			isa = PBXAggregateTarget;
 			buildConfigurationList = 5355E8D41F967E9D0031E08C /* Build configuration list for PBXAggregateTarget "Generate Unified Sources" */;
 			buildPhases = (
+				DDB04F33278E5474008D3678 /* Product Dependencies */,
 				5355E8D21F967E9D0031E08C /* Generate Unified Sources */,
 			);
 			dependencies = (
@@ -46,6 +47,7 @@
 			isa = PBXAggregateTarget;
 			buildConfigurationList = DD041FC109D9DDDC0010AF2A /* Build configuration list for PBXAggregateTarget "Derived Sources" */;
 			buildPhases = (
+				DDE99306278D07DB00F60D26 /* Product Dependencies */,
 				DD041FBD09D9DDBE0010AF2A /* Generate Derived Sources */,
 			);
 			dependencies = (
@@ -4706,6 +4708,8 @@
 		DD05FE0D0B8BA3C6009ACDFE /* WebCoreObjCExtras.h in Headers */ = {isa = PBXBuildFile; fileRef = DD05FE0B0B8BA3C6009ACDFE /* WebCoreObjCExtras.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		DD763BB20992C2C900740B8E /* libxml2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = DD763BB10992C2C900740B8E /* libxml2.dylib */; };
 		DD7CDF250A23CF9800069928 /* CSSUnknownRule.h in Headers */ = {isa = PBXBuildFile; fileRef = A80E6CCE0A1989CA007FB8C5 /* CSSUnknownRule.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		DDB04F3A278E5539008D3678 /* libWTF.a in Product Dependencies */ = {isa = PBXBuildFile; fileRef = DDB04F39278E5531008D3678 /* libWTF.a */; };
+		DDE9931E278D0E4B00F60D26 /* libWebKitAdditions.a in Product Dependencies */ = {isa = PBXBuildFile; fileRef = DDE99308278D080B00F60D26 /* libWebKitAdditions.a */; };
 		DE5F84161FA186E9006DB63A /* UnifiedSource301.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DE5F83B21FA18676006DB63A /* UnifiedSource301.cpp */; };
 		DE5F84171FA186E9006DB63A /* UnifiedSource302.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DE5F83EB1FA186AD006DB63A /* UnifiedSource302.cpp */; };
 		DE5F84181FA186E9006DB63A /* UnifiedSource303.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DE5F83E91FA186AA006DB63A /* UnifiedSource303.cpp */; };
@@ -5837,6 +5841,28 @@
 			name = "Copy Audio Resources";
 			runOnlyForDeploymentPostprocessing = 0;
 		};
+		DDB04F33278E5474008D3678 /* Product Dependencies */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 16;
+			files = (
+				DDB04F3A278E5539008D3678 /* libWTF.a in Product Dependencies */,
+			);
+			name = "Product Dependencies";
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		DDE99306278D07DB00F60D26 /* Product Dependencies */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 16;
+			files = (
+				DDE9931E278D0E4B00F60D26 /* libWebKitAdditions.a in Product Dependencies */,
+			);
+			name = "Product Dependencies";
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 /* End PBXCopyFilesBuildPhase section */
 
 /* Begin PBXFileReference section */
@@ -16435,6 +16461,9 @@
 		DBFCB0EBFF5CD77EBEB3595F /* RenderMathMLPadded.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderMathMLPadded.cpp; sourceTree = "<group>"; };
 		DD05FE0B0B8BA3C6009ACDFE /* WebCoreObjCExtras.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WebCoreObjCExtras.h; sourceTree = "<group>"; };
 		DD763BB10992C2C900740B8E /* libxml2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libxml2.dylib; path = /usr/lib/libxml2.dylib; sourceTree = "<absolute>"; };
+		DDB04F37278E5527008D3678 /* libWTF.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libWTF.a; path = "../../../../../Users/emw/Library/Developer/Xcode/DerivedData/WebKit-hisrdclmfrnvwvbhbghflzsxdiot/Build/Products/Release/libWTF.a"; sourceTree = "<group>"; };
+		DDB04F39278E5531008D3678 /* libWTF.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libWTF.a; sourceTree = BUILT_PRODUCTS_DIR; };
+		DDE99308278D080B00F60D26 /* libWebKitAdditions.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libWebKitAdditions.a; sourceTree = BUILT_PRODUCTS_DIR; };
 		DE5F83B21FA18676006DB63A /* UnifiedSource301.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = UnifiedSource301.cpp; path = "DerivedSources/WebCore/unified-sources/UnifiedSource301.cpp"; sourceTree = BUILT_PRODUCTS_DIR; };
 		DE5F83B31FA18677006DB63A /* UnifiedSource355.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = UnifiedSource355.cpp; path = "DerivedSources/WebCore/unified-sources/UnifiedSource355.cpp"; sourceTree = BUILT_PRODUCTS_DIR; };
 		DE5F83B41FA18678006DB63A /* UnifiedSource378.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = UnifiedSource378.cpp; path = "DerivedSources/WebCore/unified-sources/UnifiedSource378.cpp"; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -18826,6 +18855,7 @@
 		0867D691FE84028FC02AAC07 /* WebCore */ = {
 			isa = PBXGroup;
 			children = (
+				DDB04F37278E5527008D3678 /* libWTF.a */,
 				1C09D04B1E31C32800725F18 /* PAL.xcodeproj */,
 				65C97AF208EA908800ACD273 /* config.h */,
 				EDEC98020AED7E170059137F /* WebCorePrefix.h */,
@@ -18892,6 +18922,8 @@
 				1C8D26D022C09CDE00D125F3 /* libcompression.tbd */,
 				93F1D31A0558CC5C00821BC0 /* libicucore.dylib */,
 				1CFAE3220A6D6A3F0032593D /* libobjc.dylib */,
+				DDE99308278D080B00F60D26 /* libWebKitAdditions.a */,
+				DDB04F39278E5531008D3678 /* libWTF.a */,
 				DD763BB10992C2C900740B8E /* libxml2.dylib */,
 				379919B11200DE5000EA041C /* libz.dylib */,
 				574F55E2204F3CBF002948C6 /* LocalAuthentication.framework */,

Modified: trunk/Source/WebInspectorUI/ChangeLog (287998 => 287999)


--- trunk/Source/WebInspectorUI/ChangeLog	2022-01-13 23:47:52 UTC (rev 287998)
+++ trunk/Source/WebInspectorUI/ChangeLog	2022-01-14 01:01:40 UTC (rev 287999)
@@ -1,3 +1,13 @@
+2022-01-13  Elliott Williams  <[email protected]>
+
+        [XCBuild] Add "product dependencies" which influence workspace build order
+        https://bugs.webkit.org/show_bug.cgi?id=235094
+
+        Reviewed by Alexey Proskuryakov.
+
+        * Configurations/Base.xcconfig: Add EXCLUDED_SOURCE_FILE_NAMES
+        * WebInspectorUI.xcodeproj/project.pbxproj: Add Product Dependencies
+
 2022-01-13  Patrick Angle  <[email protected]>
 
         Web Inspector: Implement `frameURL` option for `devtools.inspectedWindow.eval` command

Modified: trunk/Source/WebInspectorUI/Configurations/Base.xcconfig (287998 => 287999)


--- trunk/Source/WebInspectorUI/Configurations/Base.xcconfig	2022-01-13 23:47:52 UTC (rev 287998)
+++ trunk/Source/WebInspectorUI/Configurations/Base.xcconfig	2022-01-14 01:01:40 UTC (rev 287999)
@@ -91,6 +91,8 @@
 COMBINE_INSPECTOR_RESOURCES = YES;
 COMBINE_TEST_RESOURCES = NO;
 
+EXCLUDED_SOURCE_FILE_NAMES = libWebKitAdditions.a _javascript_Core.framework
+
 WK_USE_OVERRIDE_FRAMEWORKS_DIR = $(WK_NOT_$(WK_EMPTY_$(WK_OVERRIDE_FRAMEWORKS_DIR)));
 
 WK_OVERRIDE_FRAMEWORKS_DIR = $(WK_OVERRIDE_FRAMEWORKS_DIR_USE_STAGING_INSTALL_PATH_$(USE_STAGING_INSTALL_PATH));

Modified: trunk/Source/WebInspectorUI/WebInspectorUI.xcodeproj/project.pbxproj (287998 => 287999)


--- trunk/Source/WebInspectorUI/WebInspectorUI.xcodeproj/project.pbxproj	2022-01-13 23:47:52 UTC (rev 287998)
+++ trunk/Source/WebInspectorUI/WebInspectorUI.xcodeproj/project.pbxproj	2022-01-14 01:01:40 UTC (rev 287999)
@@ -9,8 +9,25 @@
 /* Begin PBXBuildFile section */
 		1C60FF1614E6E3F7006CD77D /* localizedStrings.js in Resources */ = {isa = PBXBuildFile; fileRef = 1C60FF1314E6E35D006CD77D /* localizedStrings.js */; };
 		1C78EE1717611340002F6AA5 /* WebInspectorUI.c in Sources */ = {isa = PBXBuildFile; fileRef = 1C78EE1617611340002F6AA5 /* WebInspectorUI.c */; };
+		DDE9931A278D0D8000F60D26 /* libWebKitAdditions.a in Product Dependencies */ = {isa = PBXBuildFile; fileRef = DDE992FB278D078100F60D26 /* libWebKitAdditions.a */; };
+		DDE9931D278D0DA400F60D26 /* _javascript_Core.framework in Product Dependencies */ = {isa = PBXBuildFile; fileRef = DDE9931C278D0D9900F60D26 /* _javascript_Core.framework */; };
 /* End PBXBuildFile section */
 
+/* Begin PBXCopyFilesBuildPhase section */
+		DDE992FA278D076300F60D26 /* Product Dependencies */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 16;
+			files = (
+				DDE9931A278D0D8000F60D26 /* libWebKitAdditions.a in Product Dependencies */,
+				DDE9931D278D0DA400F60D26 /* _javascript_Core.framework in Product Dependencies */,
+			);
+			name = "Product Dependencies";
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXCopyFilesBuildPhase section */
+
 /* Begin PBXFileReference section */
 		1C60FE2F14E5F3CD006CD77D /* Base.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Base.xcconfig; sourceTree = "<group>"; };
 		1C60FE3114E5F3CD006CD77D /* DebugRelease.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = DebugRelease.xcconfig; sourceTree = "<group>"; };
@@ -25,6 +42,8 @@
 		1C78EE1617611340002F6AA5 /* WebInspectorUI.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = WebInspectorUI.c; sourceTree = "<group>"; };
 		A1B89B8F221E021000EB4CEA /* SDKVariant.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = SDKVariant.xcconfig; sourceTree = "<group>"; };
 		A54C2257148B23DF00373FA3 /* WebInspectorUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = WebInspectorUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+		DDE992FB278D078100F60D26 /* libWebKitAdditions.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libWebKitAdditions.a; sourceTree = BUILT_PRODUCTS_DIR; };
+		DDE9931C278D0D9900F60D26 /* _javascript_Core.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = _javascript_Core.framework; sourceTree = BUILT_PRODUCTS_DIR; };
 /* End PBXFileReference section */
 
 /* Begin PBXGroup section */
@@ -62,7 +81,9 @@
 		A54C224B148B23DE00373FA3 = {
 			isa = PBXGroup;
 			children = (
+				DDE9931C278D0D9900F60D26 /* _javascript_Core.framework */,
 				1C60FE2E14E5F3CD006CD77D /* Configurations */,
+				DDE99320278D100000F60D26 /* Frameworks */,
 				A54C2258148B23DF00373FA3 /* Products */,
 				1C60FF1514E6E39B006CD77D /* Resources */,
 				1C60FFE014E79B0F006CD77D /* Scripts */,
@@ -79,6 +100,14 @@
 			name = Products;
 			sourceTree = "<group>";
 		};
+		DDE99320278D100000F60D26 /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				DDE992FB278D078100F60D26 /* libWebKitAdditions.a */,
+			);
+			name = Frameworks;
+			sourceTree = "<group>";
+		};
 /* End PBXGroup section */
 
 /* Begin PBXNativeTarget section */
@@ -86,6 +115,7 @@
 			isa = PBXNativeTarget;
 			buildConfigurationList = A54C226C148B23DF00373FA3 /* Build configuration list for PBXNativeTarget "WebInspectorUI" */;
 			buildPhases = (
+				DDE992FA278D076300F60D26 /* Product Dependencies */,
 				A54C2255148B23DF00373FA3 /* Resources */,
 				1C60FF1214E6D9AF006CD77D /* Copy User Interface Resources */,
 				1C78EE1417611302002F6AA5 /* Sources */,
@@ -147,7 +177,7 @@
 			name = "Copy User Interface Resources";
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "/usr/bin/perl \"${SRCROOT}/Scripts/copy-user-interface-resources.pl\"";
+			shellScript = "/usr/bin/perl \"${SRCROOT}/Scripts/copy-user-interface-resources.pl\"\n";
 		};
 		6577FFC9276ACA680011AEC8 /* Create Symlink to Alt Root Path */ = {
 			isa = PBXShellScriptBuildPhase;

Modified: trunk/Source/WebKit/ChangeLog (287998 => 287999)


--- trunk/Source/WebKit/ChangeLog	2022-01-13 23:47:52 UTC (rev 287998)
+++ trunk/Source/WebKit/ChangeLog	2022-01-14 01:01:40 UTC (rev 287999)
@@ -1,3 +1,13 @@
+2022-01-13  Elliott Williams  <[email protected]>
+
+        [XCBuild] Add "product dependencies" which influence workspace build order
+        https://bugs.webkit.org/show_bug.cgi?id=235094
+
+        Reviewed by Alexey Proskuryakov.
+
+        * Configurations/WebKit.xcconfig: Add EXCLUDED_SOURCE_FILE_NAMES
+        * WebKit.xcodeproj/project.pbxproj: Add Product Dependencies
+
 2022-01-13  Tim Horton  <[email protected]>
 
         Sometimes cannot scroll after using internal trackpad

Modified: trunk/Source/WebKit/Configurations/Base.xcconfig (287998 => 287999)


--- trunk/Source/WebKit/Configurations/Base.xcconfig	2022-01-13 23:47:52 UTC (rev 287998)
+++ trunk/Source/WebKit/Configurations/Base.xcconfig	2022-01-14 01:01:40 UTC (rev 287999)
@@ -152,6 +152,7 @@
 
 WK_USE_RESTRICTED_ENTITLEMENTS = $(USE_INTERNAL_SDK);
 
+EXCLUDED_SOURCE_FILE_NAMES = libWebKitAdditions.a _javascript_Core.framework 
 WK_WEBKITADDITIONS_INSTALL_PATH = /usr/local/include/WebKitAdditions
 WK_WEBKITADDITIONS_HEADERS_FOLDER_PATH = $(SDKROOT)/$(WK_WEBKITADDITIONS_INSTALL_PATH)
 WK_WEBKIT_DERIVEDSOURCES_INPUT_XCFILELIST_ADDITIONS = $(WK_WEBKITADDITIONS_HEADERS_FOLDER_PATH)/WebKit/DerivedSources-input.xcfilelist

Modified: trunk/Source/WebKit/Configurations/WebKit.xcconfig (287998 => 287999)


--- trunk/Source/WebKit/Configurations/WebKit.xcconfig	2022-01-13 23:47:52 UTC (rev 287998)
+++ trunk/Source/WebKit/Configurations/WebKit.xcconfig	2022-01-14 01:01:40 UTC (rev 287999)
@@ -213,5 +213,5 @@
 WK_EXCLUDED_COORDINATOR_FILES = $(WK_EXCLUDED_COORDINATOR_FILES_$(WK_NOT_$(WK_HAVE_COORDINATOR)));
 WK_EXCLUDED_COORDINATOR_FILES_YES = WKCoordinator.h WKCoordinator.mm WKGroupSession.swift
 
-EXCLUDED_SOURCE_FILE_NAMES = $(WK_EXCLUDED_COORDINATOR_FILES) $(EXCLUDED_IOS_RESOURCE_FILE_NAMES) $(EXCLUDED_MACOS_PLUGIN_FILE_NAMES)
+EXCLUDED_SOURCE_FILE_NAMES = libWebKitAdditions.a $(WK_EXCLUDED_COORDINATOR_FILES) $(EXCLUDED_IOS_RESOURCE_FILE_NAMES) $(EXCLUDED_MACOS_PLUGIN_FILE_NAMES)
 SWIFT_INSTALL_OBJC_HEADER = NO

Modified: trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj (287998 => 287999)


--- trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj	2022-01-13 23:47:52 UTC (rev 287998)
+++ trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj	2022-01-14 01:01:40 UTC (rev 287999)
@@ -76,6 +76,7 @@
 			isa = PBXAggregateTarget;
 			buildConfigurationList = C0CE72891247E68600BC0EC4 /* Build configuration list for PBXAggregateTarget "Derived Sources" */;
 			buildPhases = (
+				DDB04F3C278E55D0008D3678 /* Product Dependencies */,
 				C0CE72841247E66800BC0EC4 /* Generate Derived Sources */,
 			);
 			dependencies = (
@@ -1922,6 +1923,8 @@
 		CEE4AE2B1A5DCF430002F49B /* UIKitSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = CEE4AE2A1A5DCF430002F49B /* UIKitSPI.h */; };
 		D3B9484711FF4B6500032B39 /* WebPopupMenu.h in Headers */ = {isa = PBXBuildFile; fileRef = D3B9484311FF4B6500032B39 /* WebPopupMenu.h */; };
 		D3B9484911FF4B6500032B39 /* WebSearchPopupMenu.h in Headers */ = {isa = PBXBuildFile; fileRef = D3B9484511FF4B6500032B39 /* WebSearchPopupMenu.h */; };
+		DDB04F3F278E55F1008D3678 /* _javascript_Core.framework in Product Dependencies */ = {isa = PBXBuildFile; fileRef = 1AA1C7DE100E846E0078DEBC /* _javascript_Core.framework */; };
+		DDE992F6278D071F00F60D26 /* libWebKitAdditions.a in Product Dependencies */ = {isa = PBXBuildFile; fileRef = DDE992F4278D06D900F60D26 /* libWebKitAdditions.a */; };
 		DF0C5F28252ECB8E00D921DB /* WKDownload.h in Headers */ = {isa = PBXBuildFile; fileRef = DF0C5F24252ECB8D00D921DB /* WKDownload.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		DF0C5F2A252ECB8E00D921DB /* WKDownloadDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = DF0C5F26252ECB8E00D921DB /* WKDownloadDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		DF0C5F2B252ED44000D921DB /* WKDownloadInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = DF0C5F25252ECB8E00D921DB /* WKDownloadInternal.h */; };
@@ -2398,6 +2401,28 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
+		DDB04F3C278E55D0008D3678 /* Product Dependencies */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 16;
+			files = (
+				DDB04F3F278E55F1008D3678 /* _javascript_Core.framework in Product Dependencies */,
+			);
+			name = "Product Dependencies";
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		DDE992F2278D05FA00F60D26 /* Product Dependencies */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 16;
+			files = (
+				DDE992F6278D071F00F60D26 /* libWebKitAdditions.a in Product Dependencies */,
+			);
+			name = "Product Dependencies";
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 /* End PBXCopyFilesBuildPhase section */
 
 /* Begin PBXFileReference section */
@@ -6256,6 +6281,7 @@
 		D3B9484311FF4B6500032B39 /* WebPopupMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebPopupMenu.h; sourceTree = "<group>"; };
 		D3B9484411FF4B6500032B39 /* WebSearchPopupMenu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebSearchPopupMenu.cpp; sourceTree = "<group>"; };
 		D3B9484511FF4B6500032B39 /* WebSearchPopupMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebSearchPopupMenu.h; sourceTree = "<group>"; };
+		DDE992F4278D06D900F60D26 /* libWebKitAdditions.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libWebKitAdditions.a; sourceTree = BUILT_PRODUCTS_DIR; };
 		DF0C5F23252ECB8D00D921DB /* WKDownload.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKDownload.mm; sourceTree = "<group>"; };
 		DF0C5F24252ECB8D00D921DB /* WKDownload.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKDownload.h; sourceTree = "<group>"; };
 		DF0C5F25252ECB8E00D921DB /* WKDownloadInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKDownloadInternal.h; sourceTree = "<group>"; };
@@ -9713,6 +9739,7 @@
 		5750F3292032D4E300389347 /* Frameworks */ = {
 			isa = PBXGroup;
 			children = (
+				DDE992F4278D06D900F60D26 /* libWebKitAdditions.a */,
 				57A9FF15252C6AEF006A2040 /* libWTF.a */,
 				5750F32A2032D4E500389347 /* LocalAuthentication.framework */,
 				570DAAB0230273D200E8FC04 /* NearField.framework */,
@@ -14164,6 +14191,7 @@
 			isa = PBXNativeTarget;
 			buildConfigurationList = 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "WebKit" */;
 			buildPhases = (
+				DDE992F2278D05FA00F60D26 /* Product Dependencies */,
 				1ADAE12F1919A90C00F48E21 /* Update Info.plist with version information */,
 				1A07D2F51919AA8A00ECDA16 /* Make Frameworks Symbolic Link */,
 				8DC2EF500486A6940098B216 /* Headers */,
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to