Title: [259708] trunk
Revision
259708
Author
[email protected]
Date
2020-04-08 02:12:07 -0700 (Wed, 08 Apr 2020)

Log Message

Enable the use of XCBuild by default in Apple builds
https://bugs.webkit.org/show_bug.cgi?id=209890
<rdar://problem/44182078>

Reviewed by Darin Adler.

Switch from the "legacy" Xcode build system to the "new" build system
(also known as "XCBuild"). Switching to the new system speeds up
builds by a small percentage, better validates projects for
build-related issues (such as dependency cycles), lets WebKit benefit
from future improvements in XCBuild such as those coming from the
underlying llbuild open source project, and prepares us for any other
tools built for this new ecosystem.

Specific changes:

- Remove Xcode project and workspace settings that selected the Build
  system, allowing the default to take hold (which is currently the
  New build system).
- Updated webkitdirs.pm with a terser check for Xcode version.
- Update build-webkit and Makefile.shared to be explicit when using
  the old build system (no longer treat it as a default or fall-back
  configuration).
- Update various xcconfig files similarly to treat the default as
  using the new build system.
- Update various post-processing build steps to check for Xcode 11.4
  and to no longer treat the default as using the old build system.

.:

* Makefile.shared:
* WebKit.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:

Source/_javascript_Core:

* Configurations/_javascript_Core.xcconfig:
* _javascript_Core.xcodeproj/project.pbxproj:

Source/ThirdParty/ANGLE:

* ANGLE.xcodeproj/project.pbxproj:
* Configurations/ANGLE.xcconfig:

Source/ThirdParty/libwebrtc:

* libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

No new tests -- no changed functionality.

* WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

* Configurations/WebKit.xcconfig:
* WebKit.xcodeproj/project.pbxproj:

Source/WebKitLegacy:

* WebKitLegacy.xcodeproj/project.pbxproj:

Source/WebKitLegacy/mac:

* Configurations/WebKitLegacy.xcconfig:

Tools:

* DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
* Scripts/build-webkit:
* Scripts/webkitdirs.pm:
(canUseXCBuild):
* WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:

Modified Paths

Diff

Modified: trunk/ChangeLog (259707 => 259708)


--- trunk/ChangeLog	2020-04-08 08:40:19 UTC (rev 259707)
+++ trunk/ChangeLog	2020-04-08 09:12:07 UTC (rev 259708)
@@ -1,3 +1,36 @@
+2020-04-08  Keith Rollin  <[email protected]>
+
+        Enable the use of XCBuild by default in Apple builds
+        https://bugs.webkit.org/show_bug.cgi?id=209890
+        <rdar://problem/44182078>
+
+        Reviewed by Darin Adler.
+
+        Switch from the "legacy" Xcode build system to the "new" build system
+        (also known as "XCBuild"). Switching to the new system speeds up
+        builds by a small percentage, better validates projects for
+        build-related issues (such as dependency cycles), lets WebKit benefit
+        from future improvements in XCBuild such as those coming from the
+        underlying llbuild open source project, and prepares us for any other
+        tools built for this new ecosystem.
+
+        Specific changes:
+
+        - Remove Xcode project and workspace settings that selected the Build
+          system, allowing the default to take hold (which is currently the
+          New build system).
+        - Updated webkitdirs.pm with a terser check for Xcode version.
+        - Update build-webkit and Makefile.shared to be explicit when using
+          the old build system (no longer treat it as a default or fall-back
+          configuration).
+        - Update various xcconfig files similarly to treat the default as
+          using the new build system.
+        - Update various post-processing build steps to check for Xcode 11.4
+          and to no longer treat the default as using the old build system.
+
+        * Makefile.shared:
+        * WebKit.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
+
 2020-04-08  Philippe Normand  <[email protected]>
 
         [GTK][WPE] Release logs are unconditionally filling the journal

Modified: trunk/Makefile.shared (259707 => 259708)


--- trunk/Makefile.shared	2020-04-08 08:40:19 UTC (rev 259707)
+++ trunk/Makefile.shared	2020-04-08 09:12:07 UTC (rev 259708)
@@ -51,6 +51,7 @@
 		XCODE_OPTIONS += USE_NEW_BUILD_SYSTEM=YES
 	else
 		XCODE_OPTIONS += -UseNewBuildSystem=NO
+		XCODE_OPTIONS += USE_NEW_BUILD_SYSTEM=NO
 	endif
 endif
 

Modified: trunk/Source/_javascript_Core/ChangeLog (259707 => 259708)


--- trunk/Source/_javascript_Core/ChangeLog	2020-04-08 08:40:19 UTC (rev 259707)
+++ trunk/Source/_javascript_Core/ChangeLog	2020-04-08 09:12:07 UTC (rev 259708)
@@ -1,3 +1,36 @@
+2020-04-08  Keith Rollin  <[email protected]>
+
+        Enable the use of XCBuild by default in Apple builds
+        https://bugs.webkit.org/show_bug.cgi?id=209890
+        <rdar://problem/44182078>
+
+        Reviewed by Darin Adler.
+
+        Switch from the "legacy" Xcode build system to the "new" build system
+        (also known as "XCBuild"). Switching to the new system speeds up
+        builds by a small percentage, better validates projects for
+        build-related issues (such as dependency cycles), lets WebKit benefit
+        from future improvements in XCBuild such as those coming from the
+        underlying llbuild open source project, and prepares us for any other
+        tools built for this new ecosystem.
+
+        Specific changes:
+
+        - Remove Xcode project and workspace settings that selected the Build
+          system, allowing the default to take hold (which is currently the
+          New build system).
+        - Updated webkitdirs.pm with a terser check for Xcode version.
+        - Update build-webkit and Makefile.shared to be explicit when using
+          the old build system (no longer treat it as a default or fall-back
+          configuration).
+        - Update various xcconfig files similarly to treat the default as
+          using the new build system.
+        - Update various post-processing build steps to check for Xcode 11.4
+          and to no longer treat the default as using the old build system.
+
+        * Configurations/_javascript_Core.xcconfig:
+        * _javascript_Core.xcodeproj/project.pbxproj:
+
 2020-04-07  Yusuke Suzuki  <[email protected]>
 
         [JSC] Collect-continuously thread should take m_collectContinuouslyLock while it is waking up concurrent collector thread

Modified: trunk/Source/_javascript_Core/Configurations/_javascript_Core.xcconfig (259707 => 259708)


--- trunk/Source/_javascript_Core/Configurations/_javascript_Core.xcconfig	2020-04-08 08:40:19 UTC (rev 259707)
+++ trunk/Source/_javascript_Core/Configurations/_javascript_Core.xcconfig	2020-04-08 09:12:07 UTC (rev 259708)
@@ -52,6 +52,9 @@
 PRODUCT_BUNDLE_IDENTIFIER = com.apple.$(PRODUCT_NAME:rfc1034identifier);
 
 INSTALLHDRS_SCRIPT_PHASE = YES;
-APPLY_RULES_IN_COPY_HEADERS = $(USE_NEW_BUILD_SYSTEM);
+APPLY_RULES_IN_COPY_HEADERS = $(WK_APPLY_RULES_IN_COPY_HEADERS_$(USE_NEW_BUILD_SYSTEM));
+WK_APPLY_RULES_IN_COPY_HEADERS_ = YES;
+WK_APPLY_RULES_IN_COPY_HEADERS_NO = NO;
+WK_APPLY_RULES_IN_COPY_HEADERS_YES = YES;
 
 EXCLUDED_SOURCE_FILE_NAMES[sdk=iphone*] = framework.sb;

Modified: trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj (259707 => 259708)


--- trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj	2020-04-08 08:40:19 UTC (rev 259707)
+++ trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj	2020-04-08 09:12:07 UTC (rev 259708)
@@ -10690,7 +10690,6 @@
 		0867D690FE84028FC02AAC07 /* Project object */ = {
 			isa = PBXProject;
 			attributes = {
-				DefaultBuildSystemTypeForWorkspace = Original;
 				LastSwiftUpdateCheck = 0700;
 				LastUpgradeCheck = 1000;
 				TargetAttributes = {
@@ -10819,7 +10818,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "if [ \"${XCODE_VERSION_MAJOR}\" -ge \"1100\" -a \"${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}/postprocess-headers.sh\n";
+			shellScript = "if [ \"${XCODE_VERSION_MAJOR}\" -ge \"1140\" -a \"${USE_NEW_BUILD_SYSTEM}\" != \"NO\" ]; 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}/postprocess-headers.sh\n";
 		};
 		374F95C9205F9975002BF68F /* Make libWTF.a Symbolic Link */ = {
 			isa = PBXShellScriptBuildPhase;

Modified: trunk/Source/ThirdParty/ANGLE/ANGLE.xcodeproj/project.pbxproj (259707 => 259708)


--- trunk/Source/ThirdParty/ANGLE/ANGLE.xcodeproj/project.pbxproj	2020-04-08 08:40:19 UTC (rev 259707)
+++ trunk/Source/ThirdParty/ANGLE/ANGLE.xcodeproj/project.pbxproj	2020-04-08 09:12:07 UTC (rev 259708)
@@ -2986,7 +2986,7 @@
 				FB39D0CF1200F0E300088E69 /* Frameworks */,
 				312BDB0B15FECAB00097EBC7 /* CopyFiles */,
 				312BDB0D15FECACE0097EBC7 /* CopyFiles */,
-				6E28B8742294DD8000717E69 /* ShellScript */,
+				6E28B8742294DD8000717E69 /* Adjust ANGLE Paths */,
 			);
 			buildRules = (
 				53E934DB230609D800DE060C /* PBXBuildRule */,
@@ -3027,7 +3027,7 @@
 /* End PBXProject section */
 
 /* Begin PBXShellScriptBuildPhase section */
-		6E28B8742294DD8000717E69 /* ShellScript */ = {
+		6E28B8742294DD8000717E69 /* Adjust ANGLE Paths */ = {
 			isa = PBXShellScriptBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
@@ -3036,6 +3036,7 @@
 			);
 			inputPaths = (
 			);
+			name = "Adjust ANGLE Paths";
 			outputFileListPaths = (
 			);
 			outputPaths = (
@@ -3042,7 +3043,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "if [ \"${XCODE_VERSION_MAJOR}\" -ge \"1100\" -a \"${USE_NEW_BUILD_SYSTEM}\" = \"YES\" ]; then\n    exit 0\nfi\n\nexec \"$SRCROOT/adjust-angle-include-paths.sh\"\n";
+			shellScript = "if [ \"${XCODE_VERSION_MAJOR}\" -ge \"1140\" -a \"${USE_NEW_BUILD_SYSTEM}\" != \"NO\" ]; 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/adjust-angle-include-paths.sh\"\n";
 		};
 /* End PBXShellScriptBuildPhase section */
 

Modified: trunk/Source/ThirdParty/ANGLE/ChangeLog (259707 => 259708)


--- trunk/Source/ThirdParty/ANGLE/ChangeLog	2020-04-08 08:40:19 UTC (rev 259707)
+++ trunk/Source/ThirdParty/ANGLE/ChangeLog	2020-04-08 09:12:07 UTC (rev 259708)
@@ -1,3 +1,36 @@
+2020-04-08  Keith Rollin  <[email protected]>
+
+        Enable the use of XCBuild by default in Apple builds
+        https://bugs.webkit.org/show_bug.cgi?id=209890
+        <rdar://problem/44182078>
+
+        Reviewed by Darin Adler.
+
+        Switch from the "legacy" Xcode build system to the "new" build system
+        (also known as "XCBuild"). Switching to the new system speeds up
+        builds by a small percentage, better validates projects for
+        build-related issues (such as dependency cycles), lets WebKit benefit
+        from future improvements in XCBuild such as those coming from the
+        underlying llbuild open source project, and prepares us for any other
+        tools built for this new ecosystem.
+
+        Specific changes:
+
+        - Remove Xcode project and workspace settings that selected the Build
+          system, allowing the default to take hold (which is currently the
+          New build system).
+        - Updated webkitdirs.pm with a terser check for Xcode version.
+        - Update build-webkit and Makefile.shared to be explicit when using
+          the old build system (no longer treat it as a default or fall-back
+          configuration).
+        - Update various xcconfig files similarly to treat the default as
+          using the new build system.
+        - Update various post-processing build steps to check for Xcode 11.4
+          and to no longer treat the default as using the old build system.
+
+        * ANGLE.xcodeproj/project.pbxproj:
+        * Configurations/ANGLE.xcconfig:
+
 2020-04-06  Kenneth Russell  <[email protected]>
 
         Update ANGLE to 2020-03-27

Modified: trunk/Source/ThirdParty/ANGLE/Configurations/ANGLE.xcconfig (259707 => 259708)


--- trunk/Source/ThirdParty/ANGLE/Configurations/ANGLE.xcconfig	2020-04-08 08:40:19 UTC (rev 259707)
+++ trunk/Source/ThirdParty/ANGLE/Configurations/ANGLE.xcconfig	2020-04-08 09:12:07 UTC (rev 259708)
@@ -4,7 +4,10 @@
 PRODUCT_NAME = ANGLE;
 
 INSTALLHDRS_SCRIPT_PHASE = YES;
-APPLY_RULES_IN_COPY_HEADERS = $(USE_NEW_BUILD_SYSTEM);
+APPLY_RULES_IN_COPY_HEADERS = $(WK_APPLY_RULES_IN_COPY_HEADERS_$(USE_NEW_BUILD_SYSTEM));
+WK_APPLY_RULES_IN_COPY_HEADERS_ = YES;
+WK_APPLY_RULES_IN_COPY_HEADERS_NO = NO;
+WK_APPLY_RULES_IN_COPY_HEADERS_YES = YES;
 CLANG_WARN_BOOL_CONVERSION = YES;
 CLANG_WARN_ENUM_CONVERSION = YES;
 CLANG_WARN_INT_CONVERSION = YES;

Modified: trunk/Source/ThirdParty/libwebrtc/ChangeLog (259707 => 259708)


--- trunk/Source/ThirdParty/libwebrtc/ChangeLog	2020-04-08 08:40:19 UTC (rev 259707)
+++ trunk/Source/ThirdParty/libwebrtc/ChangeLog	2020-04-08 09:12:07 UTC (rev 259708)
@@ -1,3 +1,35 @@
+2020-04-08  Keith Rollin  <[email protected]>
+
+        Enable the use of XCBuild by default in Apple builds
+        https://bugs.webkit.org/show_bug.cgi?id=209890
+        <rdar://problem/44182078>
+
+        Reviewed by Darin Adler.
+
+        Switch from the "legacy" Xcode build system to the "new" build system
+        (also known as "XCBuild"). Switching to the new system speeds up
+        builds by a small percentage, better validates projects for
+        build-related issues (such as dependency cycles), lets WebKit benefit
+        from future improvements in XCBuild such as those coming from the
+        underlying llbuild open source project, and prepares us for any other
+        tools built for this new ecosystem.
+
+        Specific changes:
+
+        - Remove Xcode project and workspace settings that selected the Build
+          system, allowing the default to take hold (which is currently the
+          New build system).
+        - Updated webkitdirs.pm with a terser check for Xcode version.
+        - Update build-webkit and Makefile.shared to be explicit when using
+          the old build system (no longer treat it as a default or fall-back
+          configuration).
+        - Update various xcconfig files similarly to treat the default as
+          using the new build system.
+        - Update various post-processing build steps to check for Xcode 11.4
+          and to no longer treat the default as using the old build system.
+
+        * libwebrtc.xcodeproj/project.pbxproj:
+
 2020-04-06  youenn fablet  <[email protected]>
 
         Add HEVC support in GPU Process for WebRTC

Modified: trunk/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj (259707 => 259708)


--- trunk/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj	2020-04-08 08:40:19 UTC (rev 259707)
+++ trunk/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj	2020-04-08 09:12:07 UTC (rev 259708)
@@ -16301,7 +16301,6 @@
 		FB39D0701200ED9200088E69 /* Project object */ = {
 			isa = PBXProject;
 			attributes = {
-				DefaultBuildSystemTypeForWorkspace = Original;
 				LastSwiftUpdateCheck = 0700;
 				LastUpgradeCheck = 1000;
 				TargetAttributes = {

Modified: trunk/Source/WebCore/ChangeLog (259707 => 259708)


--- trunk/Source/WebCore/ChangeLog	2020-04-08 08:40:19 UTC (rev 259707)
+++ trunk/Source/WebCore/ChangeLog	2020-04-08 09:12:07 UTC (rev 259708)
@@ -1,3 +1,37 @@
+2020-04-08  Keith Rollin  <[email protected]>
+
+        Enable the use of XCBuild by default in Apple builds
+        https://bugs.webkit.org/show_bug.cgi?id=209890
+        <rdar://problem/44182078>
+
+        Reviewed by Darin Adler.
+
+        Switch from the "legacy" Xcode build system to the "new" build system
+        (also known as "XCBuild"). Switching to the new system speeds up
+        builds by a small percentage, better validates projects for
+        build-related issues (such as dependency cycles), lets WebKit benefit
+        from future improvements in XCBuild such as those coming from the
+        underlying llbuild open source project, and prepares us for any other
+        tools built for this new ecosystem.
+
+        Specific changes:
+
+        - Remove Xcode project and workspace settings that selected the Build
+          system, allowing the default to take hold (which is currently the
+          New build system).
+        - Updated webkitdirs.pm with a terser check for Xcode version.
+        - Update build-webkit and Makefile.shared to be explicit when using
+          the old build system (no longer treat it as a default or fall-back
+          configuration).
+        - Update various xcconfig files similarly to treat the default as
+          using the new build system.
+        - Update various post-processing build steps to check for Xcode 11.4
+          and to no longer treat the default as using the old build system.
+
+        No new tests -- no changed functionality.
+
+        * WebCore.xcodeproj/project.pbxproj:
+
 2020-04-08  Philippe Normand  <[email protected]>
 
         [GTK][WPE] Release logs are unconditionally filling the journal

Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (259707 => 259708)


--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj	2020-04-08 08:40:19 UTC (rev 259707)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj	2020-04-08 09:12:07 UTC (rev 259708)
@@ -33669,7 +33669,6 @@
 		0867D690FE84028FC02AAC07 /* Project object */ = {
 			isa = PBXProject;
 			attributes = {
-				DefaultBuildSystemTypeForWorkspace = Original;
 				LastSwiftUpdateCheck = 0700;
 				LastUpgradeCheck = 1000;
 				TargetAttributes = {

Modified: trunk/Source/WebKit/ChangeLog (259707 => 259708)


--- trunk/Source/WebKit/ChangeLog	2020-04-08 08:40:19 UTC (rev 259707)
+++ trunk/Source/WebKit/ChangeLog	2020-04-08 09:12:07 UTC (rev 259708)
@@ -1,3 +1,36 @@
+2020-04-08  Keith Rollin  <[email protected]>
+
+        Enable the use of XCBuild by default in Apple builds
+        https://bugs.webkit.org/show_bug.cgi?id=209890
+        <rdar://problem/44182078>
+
+        Reviewed by Darin Adler.
+
+        Switch from the "legacy" Xcode build system to the "new" build system
+        (also known as "XCBuild"). Switching to the new system speeds up
+        builds by a small percentage, better validates projects for
+        build-related issues (such as dependency cycles), lets WebKit benefit
+        from future improvements in XCBuild such as those coming from the
+        underlying llbuild open source project, and prepares us for any other
+        tools built for this new ecosystem.
+
+        Specific changes:
+
+        - Remove Xcode project and workspace settings that selected the Build
+          system, allowing the default to take hold (which is currently the
+          New build system).
+        - Updated webkitdirs.pm with a terser check for Xcode version.
+        - Update build-webkit and Makefile.shared to be explicit when using
+          the old build system (no longer treat it as a default or fall-back
+          configuration).
+        - Update various xcconfig files similarly to treat the default as
+          using the new build system.
+        - Update various post-processing build steps to check for Xcode 11.4
+          and to no longer treat the default as using the old build system.
+
+        * Configurations/WebKit.xcconfig:
+        * WebKit.xcodeproj/project.pbxproj:
+
 2020-04-07  Carlos Garcia Campos  <[email protected]>
 
         [GTK][WPE] WTR: fix handling of WebsiteDataStore

Modified: trunk/Source/WebKit/Configurations/WebKit.xcconfig (259707 => 259708)


--- trunk/Source/WebKit/Configurations/WebKit.xcconfig	2020-04-08 08:40:19 UTC (rev 259707)
+++ trunk/Source/WebKit/Configurations/WebKit.xcconfig	2020-04-08 09:12:07 UTC (rev 259708)
@@ -152,7 +152,10 @@
 EXCLUDED_SOURCE_FILE_NAMES[sdk=iphone*] = PluginProcessShim.dylib SecItemShim.dylib WebProcessShim.dylib *.pdf Resources/mac/* com.apple.WebKit.NetworkProcess.sb com.apple.WebKit.GPUProcess.sb com.apple.WebProcess.sb com.apple.WebKit.plugin-common.sb PlugInSandboxProfiles/*.sb;
 
 INSTALLHDRS_SCRIPT_PHASE = YES;
-APPLY_RULES_IN_COPY_HEADERS = $(USE_NEW_BUILD_SYSTEM);
+APPLY_RULES_IN_COPY_HEADERS = $(WK_APPLY_RULES_IN_COPY_HEADERS_$(USE_NEW_BUILD_SYSTEM));
+WK_APPLY_RULES_IN_COPY_HEADERS_ = YES;
+WK_APPLY_RULES_IN_COPY_HEADERS_NO = NO;
+WK_APPLY_RULES_IN_COPY_HEADERS_YES = YES;
 
 WK_FRAMEWORK_HEADER_POSTPROCESSING_DISABLED[sdk=macosx*] = $(WK_FRAMEWORK_HEADER_POSTPROCESSING_DISABLED$(WK_MACOS_1015));
 WK_FRAMEWORK_HEADER_POSTPROCESSING_DISABLED_MACOS_BEFORE_1015 = YES;

Modified: trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj (259707 => 259708)


--- trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj	2020-04-08 08:40:19 UTC (rev 259707)
+++ trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj	2020-04-08 09:12:07 UTC (rev 259708)
@@ -11924,7 +11924,6 @@
 		0867D690FE84028FC02AAC07 /* Project object */ = {
 			isa = PBXProject;
 			attributes = {
-				DefaultBuildSystemTypeForWorkspace = Original;
 				LastSwiftUpdateCheck = 0700;
 				LastUpgradeCheck = 1000;
 				TargetAttributes = {
@@ -12051,7 +12050,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "if [ \"${XCODE_VERSION_MAJOR}\" -ge \"1100\" -a \"${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\nif [ \"${ACTION}\" = \"build\" -o \"${ACTION}\" = \"install\" -o \"${ACTION}\" = \"installhdrs\" -o \"${ACTION}\" = \"installapi\" ]; then\n    exec ${SRCROOT}/mac/postprocess-framework-headers.sh\nfi\n";
+			shellScript = "if [ \"${XCODE_VERSION_MAJOR}\" -ge \"1140\" -a \"${USE_NEW_BUILD_SYSTEM}\" != \"NO\" ]; 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\nif [ \"${ACTION}\" = \"build\" -o \"${ACTION}\" = \"install\" -o \"${ACTION}\" = \"installhdrs\" -o \"${ACTION}\" = \"installapi\" ]; then\n    exec ${SRCROOT}/mac/postprocess-framework-headers.sh\nfi\n";
 		};
 		1A2180161B5454620046AEC4 /* Add Symlink in /System/Library/PrivateFrameworks */ = {
 			isa = PBXShellScriptBuildPhase;
@@ -12094,7 +12093,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "if [ \"${XCODE_VERSION_MAJOR}\" -ge \"1100\" -a \"${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\nWKFOUNDATION_H=${TARGET_BUILD_DIR}/${PUBLIC_HEADERS_FOLDER_PATH}/WKFoundation.h\n\nif [[ \"${WK_FRAMEWORK_HEADER_POSTPROCESSING_DISABLED}\" == \"YES\" ]]; then\n    UNIFDEF_OPTIONS=\"-UWK_FRAMEWORK_HEADER_POSTPROCESSING_ENABLED\";\nelse\n    UNIFDEF_OPTIONS=\"-DWK_FRAMEWORK_HEADER_POSTPROCESSING_ENABLED\";\nfi\n\nunifdef -B ${UNIFDEF_OPTIONS} -o \"${WKFOUNDATION_H}\".unifdef \"${WKFOUNDATION_H}\"\n\ncase $? in\n0)\n    rm \"${WKFOUNDATION_H}\".unifdef\n    ;;\n1)\n    mv \"${WKFOUNDATION_H}\"{.unifdef,}\n    ;;\n*)\n    exit 1\nesac\n";
+			shellScript = "if [ \"${XCODE_VERSION_MAJOR}\" -ge \"1140\" -a \"${USE_NEW_BUILD_SYSTEM}\" != \"NO\" ]; 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\nWKFOUNDATION_H=${TARGET_BUILD_DIR}/${PUBLIC_HEADERS_FOLDER_PATH}/WKFoundation.h\n\nif [[ \"${WK_FRAMEWORK_HEADER_POSTPROCESSING_DISABLED}\" == \"YES\" ]]; then\n    UNIFDEF_OPTIONS=\"-UWK_FRAMEWORK_HEADER_POSTPROCESSING_ENABLED\";\nelse\n    UNIFDEF_OPTIONS=\"-DWK_FRAMEWORK_HEADER_POSTPROCESSING_ENABLED\";\nfi\n\nunifdef -B ${UNIFDEF_OPTIONS} -o \"${WKFOUNDATION_H}\".unifdef \"${WKFOUNDATION_H}\"\n\ncase $? in\n0)\n    rm \"${WKFOUNDATION_H}\".unifdef\n    ;;\n1)\n    mv \"${WKFOUNDATION_H}\"{.unifdef,}\n    ;;\n*)\n    exit 1\nesac\n";
 		};
 		1ADAE12F1919A90C00F48E21 /* Update Info.plist with version information */ = {
 			isa = PBXShellScriptBuildPhase;
@@ -12222,7 +12221,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "if [ \"${XCODE_VERSION_MAJOR}\" -ge \"1100\" -a \"${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\nWKBASE_H=${TARGET_BUILD_DIR}/${PRIVATE_HEADERS_FOLDER_PATH}/WKBase.h\n\nunifdef -B -D__APPLE__ -UBUILDING_GTK__ -UBUILDING_WPE__ -UUSE_SOUP -o \"${WKBASE_H}\".unifdef \"${WKBASE_H}\"\n\ncase $? in\n0)\n    rm \"${WKBASE_H}\".unifdef\n    ;;\n1)\n    mv \"${WKBASE_H}\"{.unifdef,}\n    ;;\n*)\n    exit 1\nesac\n";
+			shellScript = "if [ \"${XCODE_VERSION_MAJOR}\" -ge \"1140\" -a \"${USE_NEW_BUILD_SYSTEM}\" != \"NO\" ]; 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\nWKBASE_H=${TARGET_BUILD_DIR}/${PRIVATE_HEADERS_FOLDER_PATH}/WKBase.h\n\nunifdef -B -D__APPLE__ -UBUILDING_GTK__ -UBUILDING_WPE__ -UUSE_SOUP -o \"${WKBASE_H}\".unifdef \"${WKBASE_H}\"\n\ncase $? in\n0)\n    rm \"${WKBASE_H}\".unifdef\n    ;;\n1)\n    mv \"${WKBASE_H}\"{.unifdef,}\n    ;;\n*)\n    exit 1\nesac\n";
 		};
 		37E531011B2391090074F0DF /* Copy iOS Sandbox Profiles for Manual Sandboxing */ = {
 			isa = PBXShellScriptBuildPhase;
@@ -12528,7 +12527,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "if [ \"${XCODE_VERSION_MAJOR}\" -ge \"1100\" -a \"${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\nif [ \"${ACTION}\" = \"build\" -o \"${ACTION}\" = \"install\" -o \"${ACTION}\" = \"installhdrs\" -o \"${ACTION}\" = \"installapi\" ]; then\n    for HEADERS_DIRECTORY in \"${PUBLIC_HEADERS_FOLDER_PATH}\" \"${PRIVATE_HEADERS_FOLDER_PATH}\"; do\n        for HEADER_PATH in \"${TARGET_BUILD_DIR}/${HEADERS_DIRECTORY}/\"*.*; do\n            if [[ ! -z `grep '#import <WebKitAdditions/.*>' \"${HEADER_PATH}\"` ]]; then\n                python \"${SRCROOT}/mac/replace-webkit-additions-includes.py\" \"${HE
 ADER_PATH}\" \"${BUILT_PRODUCTS_DIR}\" \"${SDKROOT}\" || exit $?\n            fi\n        done\n    done\nfi\n\n\n";
+			shellScript = "if [ \"${XCODE_VERSION_MAJOR}\" -ge \"1140\" -a \"${USE_NEW_BUILD_SYSTEM}\" != \"NO\" ]; 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\nif [ \"${ACTION}\" = \"build\" -o \"${ACTION}\" = \"install\" -o \"${ACTION}\" = \"installhdrs\" -o \"${ACTION}\" = \"installapi\" ]; then\n    for HEADERS_DIRECTORY in \"${PUBLIC_HEADERS_FOLDER_PATH}\" \"${PRIVATE_HEADERS_FOLDER_PATH}\"; do\n        for HEADER_PATH in \"${TARGET_BUILD_DIR}/${HEADERS_DIRECTORY}/\"*.*; do\n            if [[ ! -z `grep '#import <WebKitAdditions/.*>' \"${HEADER_PATH}\"` ]]; then\n                python \"${SRCROOT}/mac/replace-webkit-additions-includes.py\" \"${HEA
 DER_PATH}\" \"${BUILT_PRODUCTS_DIR}\" \"${SDKROOT}\" || exit $?\n            fi\n        done\n    done\nfi\n\n\n";
 		};
 /* End PBXShellScriptBuildPhase section */
 

Modified: trunk/Source/WebKitLegacy/ChangeLog (259707 => 259708)


--- trunk/Source/WebKitLegacy/ChangeLog	2020-04-08 08:40:19 UTC (rev 259707)
+++ trunk/Source/WebKitLegacy/ChangeLog	2020-04-08 09:12:07 UTC (rev 259708)
@@ -1,3 +1,35 @@
+2020-04-08  Keith Rollin  <[email protected]>
+
+        Enable the use of XCBuild by default in Apple builds
+        https://bugs.webkit.org/show_bug.cgi?id=209890
+        <rdar://problem/44182078>
+
+        Reviewed by Darin Adler.
+
+        Switch from the "legacy" Xcode build system to the "new" build system
+        (also known as "XCBuild"). Switching to the new system speeds up
+        builds by a small percentage, better validates projects for
+        build-related issues (such as dependency cycles), lets WebKit benefit
+        from future improvements in XCBuild such as those coming from the
+        underlying llbuild open source project, and prepares us for any other
+        tools built for this new ecosystem.
+
+        Specific changes:
+
+        - Remove Xcode project and workspace settings that selected the Build
+          system, allowing the default to take hold (which is currently the
+          New build system).
+        - Updated webkitdirs.pm with a terser check for Xcode version.
+        - Update build-webkit and Makefile.shared to be explicit when using
+          the old build system (no longer treat it as a default or fall-back
+          configuration).
+        - Update various xcconfig files similarly to treat the default as
+          using the new build system.
+        - Update various post-processing build steps to check for Xcode 11.4
+          and to no longer treat the default as using the old build system.
+
+        * WebKitLegacy.xcodeproj/project.pbxproj:
+
 2020-03-08  Konstantin Tokarev  <[email protected]>
 
         [CMake] Some fixes for building Mac port

Modified: trunk/Source/WebKitLegacy/WebKitLegacy.xcodeproj/project.pbxproj (259707 => 259708)


--- trunk/Source/WebKitLegacy/WebKitLegacy.xcodeproj/project.pbxproj	2020-04-08 08:40:19 UTC (rev 259707)
+++ trunk/Source/WebKitLegacy/WebKitLegacy.xcodeproj/project.pbxproj	2020-04-08 09:12:07 UTC (rev 259708)
@@ -3170,7 +3170,6 @@
 		0867D690FE84028FC02AAC07 /* Project object */ = {
 			isa = PBXProject;
 			attributes = {
-				DefaultBuildSystemTypeForWorkspace = Original;
 				LastSwiftUpdateCheck = 0700;
 				LastUpgradeCheck = 1000;
 				TargetAttributes = {
@@ -3387,7 +3386,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "if [ \"${XCODE_VERSION_MAJOR}\" -ge \"1100\" -a \"${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 = "if [ \"${XCODE_VERSION_MAJOR}\" -ge \"1140\" -a \"${USE_NEW_BUILD_SYSTEM}\" != \"NO\" ]; 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";
 		};
 /* End PBXShellScriptBuildPhase section */
 

Modified: trunk/Source/WebKitLegacy/mac/ChangeLog (259707 => 259708)


--- trunk/Source/WebKitLegacy/mac/ChangeLog	2020-04-08 08:40:19 UTC (rev 259707)
+++ trunk/Source/WebKitLegacy/mac/ChangeLog	2020-04-08 09:12:07 UTC (rev 259708)
@@ -1,3 +1,35 @@
+2020-04-08  Keith Rollin  <[email protected]>
+
+        Enable the use of XCBuild by default in Apple builds
+        https://bugs.webkit.org/show_bug.cgi?id=209890
+        <rdar://problem/44182078>
+
+        Reviewed by Darin Adler.
+
+        Switch from the "legacy" Xcode build system to the "new" build system
+        (also known as "XCBuild"). Switching to the new system speeds up
+        builds by a small percentage, better validates projects for
+        build-related issues (such as dependency cycles), lets WebKit benefit
+        from future improvements in XCBuild such as those coming from the
+        underlying llbuild open source project, and prepares us for any other
+        tools built for this new ecosystem.
+
+        Specific changes:
+
+        - Remove Xcode project and workspace settings that selected the Build
+          system, allowing the default to take hold (which is currently the
+          New build system).
+        - Updated webkitdirs.pm with a terser check for Xcode version.
+        - Update build-webkit and Makefile.shared to be explicit when using
+          the old build system (no longer treat it as a default or fall-back
+          configuration).
+        - Update various xcconfig files similarly to treat the default as
+          using the new build system.
+        - Update various post-processing build steps to check for Xcode 11.4
+          and to no longer treat the default as using the old build system.
+
+        * Configurations/WebKitLegacy.xcconfig:
+
 2020-04-06  Ross Kirsling  <[email protected]>
 
         Update minimum ICU version to 60.2

Modified: trunk/Source/WebKitLegacy/mac/Configurations/WebKitLegacy.xcconfig (259707 => 259708)


--- trunk/Source/WebKitLegacy/mac/Configurations/WebKitLegacy.xcconfig	2020-04-08 08:40:19 UTC (rev 259707)
+++ trunk/Source/WebKitLegacy/mac/Configurations/WebKitLegacy.xcconfig	2020-04-08 09:12:07 UTC (rev 259708)
@@ -67,7 +67,10 @@
 
 INSTALLHDRS_COPY_PHASE = YES;
 INSTALLHDRS_SCRIPT_PHASE = YES;
-APPLY_RULES_IN_COPY_HEADERS = $(USE_NEW_BUILD_SYSTEM);
+APPLY_RULES_IN_COPY_HEADERS = $(WK_APPLY_RULES_IN_COPY_HEADERS_$(USE_NEW_BUILD_SYSTEM));
+WK_APPLY_RULES_IN_COPY_HEADERS_ = YES;
+WK_APPLY_RULES_IN_COPY_HEADERS_NO = NO;
+WK_APPLY_RULES_IN_COPY_HEADERS_YES = YES;
 PRODUCT_NAME = WebKitLegacy;
 PRODUCT_BUNDLE_IDENTIFIER = com.apple.$(PRODUCT_NAME:rfc1034identifier);
 UMBRELLA_FRAMEWORKS_DIR = $(PRODUCTION_FRAMEWORKS_DIR)/WebKit.framework/Versions/A/Frameworks;

Modified: trunk/Tools/ChangeLog (259707 => 259708)


--- trunk/Tools/ChangeLog	2020-04-08 08:40:19 UTC (rev 259707)
+++ trunk/Tools/ChangeLog	2020-04-08 09:12:07 UTC (rev 259708)
@@ -1,3 +1,39 @@
+2020-04-08  Keith Rollin  <[email protected]>
+
+        Enable the use of XCBuild by default in Apple builds
+        https://bugs.webkit.org/show_bug.cgi?id=209890
+        <rdar://problem/44182078>
+
+        Reviewed by Darin Adler.
+
+        Switch from the "legacy" Xcode build system to the "new" build system
+        (also known as "XCBuild"). Switching to the new system speeds up
+        builds by a small percentage, better validates projects for
+        build-related issues (such as dependency cycles), lets WebKit benefit
+        from future improvements in XCBuild such as those coming from the
+        underlying llbuild open source project, and prepares us for any other
+        tools built for this new ecosystem.
+
+        Specific changes:
+
+        - Remove Xcode project and workspace settings that selected the Build
+          system, allowing the default to take hold (which is currently the
+          New build system).
+        - Updated webkitdirs.pm with a terser check for Xcode version.
+        - Update build-webkit and Makefile.shared to be explicit when using
+          the old build system (no longer treat it as a default or fall-back
+          configuration).
+        - Update various xcconfig files similarly to treat the default as
+          using the new build system.
+        - Update various post-processing build steps to check for Xcode 11.4
+          and to no longer treat the default as using the old build system.
+
+        * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
+        * Scripts/build-webkit:
+        * Scripts/webkitdirs.pm:
+        (canUseXCBuild):
+        * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
+
 2020-04-07  Carlos Garcia Campos  <[email protected]>
 
         [GTK][WPE] WTR: fix handling of WebsiteDataStore

Modified: trunk/Tools/DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj (259707 => 259708)


--- trunk/Tools/DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj	2020-04-08 08:40:19 UTC (rev 259707)
+++ trunk/Tools/DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj	2020-04-08 09:12:07 UTC (rev 259708)
@@ -1012,7 +1012,6 @@
 		08FB7793FE84155DC02AAC07 /* Project object */ = {
 			isa = PBXProject;
 			attributes = {
-				DefaultBuildSystemTypeForWorkspace = Original;
 				LastSwiftUpdateCheck = 0700;
 				LastUpgradeCheck = 1000;
 				TargetAttributes = {

Modified: trunk/Tools/Scripts/build-webkit (259707 => 259708)


--- trunk/Tools/Scripts/build-webkit	2020-04-08 08:40:19 UTC (rev 259707)
+++ trunk/Tools/Scripts/build-webkit	2020-04-08 09:12:07 UTC (rev 259708)
@@ -213,15 +213,12 @@
 if (isAppleCocoaWebKit()) {
     push @options, XcodeOptions();
 
-    if (not defined $xcbuild) {
-        $xcbuild = canUseXCBuild();
-    }
-
-    if ($xcbuild) {
+    if ((not defined $xcbuild or $xcbuild) and canUseXCBuild()) {
         push @options, "-UseNewBuildSystem=YES";
         push @options, "USE_NEW_BUILD_SYSTEM=YES";
     } else {
         push @options, "-UseNewBuildSystem=NO";
+        push @options, "USE_NEW_BUILD_SYSTEM=NO";
     }
 
     sub option($$)

Modified: trunk/Tools/Scripts/webkitdirs.pm (259707 => 259708)


--- trunk/Tools/Scripts/webkitdirs.pm	2020-04-08 08:40:19 UTC (rev 259707)
+++ trunk/Tools/Scripts/webkitdirs.pm	2020-04-08 09:12:07 UTC (rev 259708)
@@ -953,11 +953,8 @@
 
 sub canUseXCBuild()
 {
-    # if (`xcodebuild -version | grep "Build version"` =~ /Build version (\d+)([a-zA-Z])(\d+)([a-zA-Z]?)/) {
-    #     return $1 >= 11;
-    # }
-
-    return 0;
+    determineXcodeVersion();
+    return (eval "v$xcodeVersion" ge v11.4)
 }
 
 my $passedConfiguration;

Modified: trunk/Tools/WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj (259707 => 259708)


--- trunk/Tools/WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj	2020-04-08 08:40:19 UTC (rev 259707)
+++ trunk/Tools/WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj	2020-04-08 09:12:07 UTC (rev 259708)
@@ -1009,7 +1009,6 @@
 		08FB7793FE84155DC02AAC07 /* Project object */ = {
 			isa = PBXProject;
 			attributes = {
-				DefaultBuildSystemTypeForWorkspace = Original;
 				LastSwiftUpdateCheck = 0700;
 				LastUpgradeCheck = 1000;
 				TargetAttributes = {

Modified: trunk/WebKit.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings (259707 => 259708)


--- trunk/WebKit.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings	2020-04-08 08:40:19 UTC (rev 259707)
+++ trunk/WebKit.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings	2020-04-08 09:12:07 UTC (rev 259708)
@@ -2,8 +2,6 @@
 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <dict>
-	<key>BuildSystemType</key>
-	<string>Original</string>
 	<key>IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded</key>
 	<false/>
 </dict>
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to