Title: [196065] trunk/Tools
Revision
196065
Author
[email protected]
Date
2016-02-03 03:38:13 -0800 (Wed, 03 Feb 2016)

Log Message

[webkitdirs] Clarify logic behind is{PortName} functions.
https://bugs.webkit.org/show_bug.cgi?id=153554

Patch by Konstantin Tokarev <[email protected]> on 2016-02-03
Reviewed by Michael Catanzaro.

* Scripts/webkitdirs.pm:
(prohibitUnknownPort): This function makes determinePortName()
failure fatal.
(determinePortName): Added new function which decides which port are
we building based on command line switches and platform defaults.
(portName): Added getter for determined $portName.
(isEfl): Modified to use portName().
(isGtk): Ditto.
(isWinCairo): Ditto.
(isAppleMacWebKit): Ditto.
(isAppleWinWebKit): Ditto.
(isIOSWebKit): Ditto.
(cmakeBasedPortName): Return portName() with capitalized first letter.
(determineIsEfl): Deleted.
(determineIsGtk): Deleted.
(determineIsWinCairo): Deleted.

* Scripts/build-jsc: Call prohibitUnknownPort().
* Scripts/run-minibrowser: Ditto.
* Scripts/webkitperl/FeatureList.pm: Ditto.
* Scripts/update-webkit: Call determinePortName() instead of
determineIsWinCairo().

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (196064 => 196065)


--- trunk/Tools/ChangeLog	2016-02-03 11:29:25 UTC (rev 196064)
+++ trunk/Tools/ChangeLog	2016-02-03 11:38:13 UTC (rev 196065)
@@ -1,3 +1,33 @@
+2016-02-03  Konstantin Tokarev  <[email protected]>
+
+        [webkitdirs] Clarify logic behind is{PortName} functions.
+        https://bugs.webkit.org/show_bug.cgi?id=153554
+
+        Reviewed by Michael Catanzaro.
+
+        * Scripts/webkitdirs.pm:
+        (prohibitUnknownPort): This function makes determinePortName()
+        failure fatal.
+        (determinePortName): Added new function which decides which port are
+        we building based on command line switches and platform defaults.
+        (portName): Added getter for determined $portName.
+        (isEfl): Modified to use portName().
+        (isGtk): Ditto.
+        (isWinCairo): Ditto.
+        (isAppleMacWebKit): Ditto.
+        (isAppleWinWebKit): Ditto.
+        (isIOSWebKit): Ditto.
+        (cmakeBasedPortName): Return portName() with capitalized first letter.
+        (determineIsEfl): Deleted.
+        (determineIsGtk): Deleted.
+        (determineIsWinCairo): Deleted.
+
+        * Scripts/build-jsc: Call prohibitUnknownPort().
+        * Scripts/run-minibrowser: Ditto.
+        * Scripts/webkitperl/FeatureList.pm: Ditto.
+        * Scripts/update-webkit: Call determinePortName() instead of
+        determineIsWinCairo().
+
 2016-02-02  Dan Bernstein  <[email protected]>
 
         Better fix for Layout Test fast/parser/external-entities-in-xslt.xml is flaky on El Capitan (but fails most of the time)

Modified: trunk/Tools/Scripts/build-jsc (196064 => 196065)


--- trunk/Tools/Scripts/build-jsc	2016-02-03 11:29:25 UTC (rev 196064)
+++ trunk/Tools/Scripts/build-jsc	2016-02-03 11:38:13 UTC (rev 196065)
@@ -37,6 +37,8 @@
 
 sub writeCongrats();
 
+prohibitUnknownPort();
+
 my $shouldRunStaticAnalyzer = 0;
 my $coverageSupport = 0;
 my $showHelp = 0;

Modified: trunk/Tools/Scripts/run-minibrowser (196064 => 196065)


--- trunk/Tools/Scripts/run-minibrowser	2016-02-03 11:29:25 UTC (rev 196064)
+++ trunk/Tools/Scripts/run-minibrowser	2016-02-03 11:38:13 UTC (rev 196065)
@@ -40,6 +40,7 @@
 my $launcherPath;
 my @jhbuildWrapper;
 
+prohibitUnknownPort();
 setConfiguration();
 
 if (isGtk() || isEfl()) {

Modified: trunk/Tools/Scripts/update-webkit (196064 => 196065)


--- trunk/Tools/Scripts/update-webkit	2016-02-03 11:29:25 UTC (rev 196064)
+++ trunk/Tools/Scripts/update-webkit	2016-02-03 11:38:13 UTC (rev 196065)
@@ -43,7 +43,9 @@
 my $quiet = '';
 my $showHelp;
 
-determineIsWinCairo();
+# This call is needed to eat --wincairo argument and avoid unknown option error.
+# FIXME: Allow port options explicitly or make this script port-agnostic.
+determinePortName();
 
 chdirWebKit();
 

Modified: trunk/Tools/Scripts/webkitdirs.pm (196064 => 196065)


--- trunk/Tools/Scripts/webkitdirs.pm	2016-02-03 11:29:25 UTC (rev 196064)
+++ trunk/Tools/Scripts/webkitdirs.pm	2016-02-03 11:38:13 UTC (rev 196065)
@@ -94,6 +94,17 @@
    @EXPORT_OK   = ();
 }
 
+# Ports
+use constant {
+    AppleWin => "AppleWin",
+    GTK      => "GTK",
+    Efl      => "Efl",
+    iOS      => "iOS",
+    Mac      => "Mac",
+    WinCairo => "WinCairo",
+    Unknown  => "Unknown"
+};
+
 use constant USE_OPEN_COMMAND => 1; # Used in runMacWebKitApp().
 use constant INCLUDE_OPTIONS_FOR_DEBUGGING => 1;
 use constant SIMULATOR_DEVICE_STATE_SHUTDOWN => "1";
@@ -124,17 +135,17 @@
 my $iosVersion;
 my $generateDsym;
 my $isCMakeBuild;
-my $isGtk;
-my $isWinCairo;
 my $isWin64;
-my $isEfl;
 my $isInspectorFrontend;
+my $portName;
 my $shouldTargetWebProcess;
 my $shouldUseXPCServiceForWebProcess;
 my $shouldUseGuardMalloc;
 my $shouldNotUseNinja;
 my $xcodeVersion;
 
+my $unknownPortProhibited = 0;
+
 # Variables for Win32 support
 my $programFilesPath;
 my $vcBuildPath;
@@ -1024,28 +1035,73 @@
     return scalar @indicesToRemove > 0;
 }
 
-sub determineIsEfl()
+sub prohibitUnknownPort()
 {
-    return if defined($isEfl);
-    $isEfl = checkForArgumentAndRemoveFromARGV("--efl");
+    $unknownPortProhibited = 1;
 }
 
-sub isEfl()
+sub determinePortName()
 {
-    determineIsEfl();
-    return $isEfl;
+    return if defined $portName;
+
+    my %argToPortName = (
+        efl => Efl,
+        gtk => GTK,
+        wincairo => WinCairo
+    );
+
+    for my $arg (sort keys %argToPortName) {
+        if (checkForArgumentAndRemoveFromARGV("--$arg")) {
+            die "Argument '--$arg' conflicts with selected port '$portName'\n"
+                if defined $portName;
+
+            $portName = $argToPortName{$arg};
+        }
+    }
+
+    return if defined $portName;
+
+    # Port was not selected via command line, use appropriate default value
+
+    if (isAnyWindows()) {
+        $portName = AppleWin;
+    } elsif (isDarwin()) {
+        determineXcodeSDK();
+        if (willUseIOSDeviceSDK() || willUseIOSSimulatorSDK()) {
+            $portName = iOS;
+        } else {
+            $portName = Mac;
+        }
+    } else {
+        if ($unknownPortProhibited) {
+            my $portsChoice = join "\n\t", qw(
+                --efl
+                --gtk
+            );
+            die "Please specify which WebKit port to build using one of the following options:"
+                . "\n\t$portsChoice\n";
+        }
+
+        # If script is run without arguments we cannot determine port
+        # TODO: This state should be outlawed
+        $portName = Unknown;
+    }
 }
 
-sub determineIsGtk()
+sub portName()
 {
-    return if defined($isGtk);
-    $isGtk = checkForArgumentAndRemoveFromARGV("--gtk");
+    determinePortName();
+    return $portName;
 }
 
+sub isEfl()
+{
+    return portName() eq Efl;
+}
+
 sub isGtk()
 {
-    determineIsGtk();
-    return $isGtk;
+    return portName() eq GTK;
 }
 
 # Determine if this is debian, ubuntu, linspire, or something similar.
@@ -1061,16 +1117,9 @@
 
 sub isWinCairo()
 {
-    determineIsWinCairo();
-    return $isWinCairo;
+    return portName() eq WinCairo;
 }
 
-sub determineIsWinCairo()
-{
-    return if defined($isWinCairo);
-    $isWinCairo = checkForArgumentAndRemoveFromARGV("--wincairo");
-}
-
 sub isWin64()
 {
     determineIsWin64();
@@ -1191,12 +1240,12 @@
 
 sub isAppleMacWebKit()
 {
-    return isDarwin() && !isGtk();
+    return (portName() eq Mac) || isIOSWebKit();
 }
 
 sub isAppleWinWebKit()
 {
-    return (isCygwin() || isWindows()) && !isWinCairo() && !isGtk();
+    return portName() eq AppleWin;
 }
 
 sub iOSSimulatorDevicesPath
@@ -1259,8 +1308,7 @@
 
 sub isIOSWebKit()
 {
-    determineXcodeSDK();
-    return isAppleMacWebKit() && (willUseIOSDeviceSDK() || willUseIOSSimulatorSDK());
+    return portName() eq iOS;
 }
 
 sub determineNmPath()
@@ -2062,12 +2110,7 @@
 
 sub cmakeBasedPortName()
 {
-    return "Efl" if isEfl();
-    return "GTK" if isGtk();
-    return "Mac" if isAppleMacWebKit();
-    return "WinCairo" if isWinCairo();
-    return "AppleWin" if isAppleWinWebKit();
-    return "";
+    return ucfirst portName();
 }
 
 sub determineIsCMakeBuild()

Modified: trunk/Tools/Scripts/webkitperl/FeatureList.pm (196064 => 196065)


--- trunk/Tools/Scripts/webkitperl/FeatureList.pm	2016-02-03 11:29:25 UTC (rev 196064)
+++ trunk/Tools/Scripts/webkitperl/FeatureList.pm	2016-02-03 11:38:13 UTC (rev 196065)
@@ -154,6 +154,8 @@
     $ftlJITSupport,
 );
 
+prohibitUnknownPort();
+
 my @features = (
     { option => "3d-rendering", desc => "Toggle 3D Rendering support",
       define => "ENABLE_3D_TRANSFORMS", default => (isAppleMacWebKit() || isIOSWebKit() || isGtk() || isEfl()), value => \$threeDTransformsSupport },
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to