- 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 },