Add option to build-webkit to control whether or not XCBuild is used
authorkrollin@apple.com <krollin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 7 May 2019 21:38:27 +0000 (21:38 +0000)
committerkrollin@apple.com <krollin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 7 May 2019 21:38:27 +0000 (21:38 +0000)
https://bugs.webkit.org/show_bug.cgi?id=197668
<rdar://problem/50549728>

Reviewed by Tim Horton.

Add --[no-]xcbuild to build-webkit to force the use of XCBuild or not.
Also update build-webkit and the makefiles with the foundation for
automatically using XCBuild when the conditions allow it. This latter
facility is currently turned off until Xcode fully supports building
WebKit with XCBuild.

.:

* Makefile.shared:

Tools:

* Scripts/build-webkit:
* Scripts/webkitdirs.pm:
(XcodeOptions):
(canUseXCBuild):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@245037 268f45cc-cd09-0410-ab3c-d52691b4dbfc

ChangeLog
Makefile.shared
Tools/ChangeLog
Tools/Scripts/build-webkit
Tools/Scripts/webkitdirs.pm

index 034a201..890b2d8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+2019-05-07  Keith Rollin  <krollin@apple.com>
+
+        Add option to build-webkit to control whether or not XCBuild is used
+        https://bugs.webkit.org/show_bug.cgi?id=197668
+        <rdar://problem/50549728>
+
+        Reviewed by Tim Horton.
+
+        Add --[no-]xcbuild to build-webkit to force the use of XCBuild or not.
+        Also update build-webkit and the makefiles with the foundation for
+        automatically using XCBuild when the conditions allow it. This latter
+        facility is currently turned off until Xcode fully supports building
+        WebKit with XCBuild.
+
+        * Makefile.shared:
+
 2019-05-06  Christopher Reid  <chris.reid@sony.com>
 
         [CMake] fuse-ld should also be set in module linker flags
index a18547b..85f0cb7 100644 (file)
@@ -44,6 +44,16 @@ ifeq (, $(findstring WK_USE_CCACHE, $(ARGS)))
        endif
 endif
 
+ifeq ($(findstring UseNewBuildSystem,$(ARGS)),)
+       CAN_USE_XCBUILD = $(shell perl -I$(SCRIPTS_PATH) -Mwebkitdirs -e 'print canUseXCBuild()')
+       ifeq ($(CAN_USE_XCBUILD),1)
+               XCODE_OPTIONS += -UseNewBuildSystem=YES
+               XCODE_OPTIONS += USE_NEW_BUILD_SYSTEM=YES
+       else
+               XCODE_OPTIONS += -UseNewBuildSystem=NO
+       endif
+endif
+
 DEFAULT_VERBOSITY := $(shell defaults read org.webkit.BuildConfiguration BuildTranscriptVerbosity 2>/dev/null || echo "default")
 VERBOSITY ?= $(DEFAULT_VERBOSITY)
 
index 7496a70..4a88b5c 100644 (file)
@@ -1,3 +1,22 @@
+2019-05-07  Keith Rollin  <krollin@apple.com>
+
+        Add option to build-webkit to control whether or not XCBuild is used
+        https://bugs.webkit.org/show_bug.cgi?id=197668
+        <rdar://problem/50549728>
+
+        Reviewed by Tim Horton.
+
+        Add --[no-]xcbuild to build-webkit to force the use of XCBuild or not.
+        Also update build-webkit and the makefiles with the foundation for
+        automatically using XCBuild when the conditions allow it. This latter
+        facility is currently turned off until Xcode fully supports building
+        WebKit with XCBuild.
+
+        * Scripts/build-webkit:
+        * Scripts/webkitdirs.pm:
+        (XcodeOptions):
+        (canUseXCBuild):
+
 2019-05-07  Andy Estes  <aestes@apple.com>
 
         run-bindings-tests should test global scope constructor generation
index 659a867..e3e00ad 100755 (executable)
@@ -73,6 +73,7 @@ my $coverageSupport = 0;
 my $shouldRunStaticAnalyzer = 0;
 my $noExperimentalFeatures = 0;
 my $ltoMode = "default";
+my $xcbuild = undef;
 my $startTime = time();
 my $archs32bit = 0;
 my $skipLibraryUpdate = 0;
@@ -115,6 +116,7 @@ Usage: $programName [options] [options to pass to build system]
   --coverage                        Enable code coverage support (Mac only)
   --analyze                         Enable static anaylsis (iOS and Mac only)
   --lto-mode=<mode>                 Set Link Time Optimization mode (full, thin, or none) (LLVM only)
+  --[no-]xcbuild                    Force the use of XCBuild or not
 
   --gtk                             Build the GTK+ port
   --wpe                             Build the WPE port
@@ -153,6 +155,7 @@ my %options = (
     'analyze' => \$shouldRunStaticAnalyzer,
     'no-experimental-features' => \$noExperimentalFeatures,
     'lto-mode=s' => \$ltoMode,
+    'xcbuild!' => \$xcbuild,
     'skip-library-update' => \$skipLibraryUpdate,
     'use-ccache!' => \$useCCache,
 );
@@ -207,6 +210,18 @@ my @options = ();
 
 if (isAppleCocoaWebKit()) {
     push @options, XcodeOptions();
+
+    if (not defined $xcbuild) {
+        $xcbuild = canUseXCBuild();
+    }
+
+    if ($xcbuild) {
+        push @options, "-UseNewBuildSystem=YES";
+        push @options, "USE_NEW_BUILD_SYSTEM=YES";
+    } else {
+        push @options, "-UseNewBuildSystem=NO";
+    }
+
     sub option($$)
     {
         my ($feature, $isEnabled) = @_;
index b1168fe..f0ff81d 100755 (executable)
@@ -849,7 +849,6 @@ sub XcodeOptions
     determineXcodeSDK();
 
     my @options;
-    push @options, "-UseNewBuildSystem=NO";
     push @options, "-UseSanitizedBuildSystemEnvironment=YES";
     push @options, "-ShowBuildOperationDuration=YES";
     push @options, ("-configuration", $configuration);
@@ -895,6 +894,11 @@ sub XcodeStaticAnalyzerOption()
     return "RUN_CLANG_STATIC_ANALYZER=YES";
 }
 
+sub canUseXCBuild()
+{
+    return 0;
+}
+
 my $passedConfiguration;
 my $searchedForPassedConfiguration;
 sub determinePassedConfiguration