summaryrefslogtreecommitdiffstats
path: root/WebKitTools/Scripts/webkitdirs.pm
diff options
context:
space:
mode:
authorSteve Block <steveblock@google.com>2010-07-08 12:51:48 +0100
committerSteve Block <steveblock@google.com>2010-07-09 15:33:40 +0100
commitca9cb53ed1119a3fd98fafa0972ffeb56dee1c24 (patch)
treebb45155550ec013adc0ad10f4d7d354c6469b022 /WebKitTools/Scripts/webkitdirs.pm
parentd4b24d9a829ed7de70381c8b99fb75a07ab40466 (diff)
downloadexternal_webkit-ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24.zip
external_webkit-ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24.tar.gz
external_webkit-ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24.tar.bz2
Merge WebKit at r62496: Initial merge by git
Change-Id: Ie3da0770eca22a70a632e3571f31cfabc80facb2
Diffstat (limited to 'WebKitTools/Scripts/webkitdirs.pm')
-rw-r--r--WebKitTools/Scripts/webkitdirs.pm85
1 files changed, 80 insertions, 5 deletions
diff --git a/WebKitTools/Scripts/webkitdirs.pm b/WebKitTools/Scripts/webkitdirs.pm
index 46d2cbf..9f54c3e 100644
--- a/WebKitTools/Scripts/webkitdirs.pm
+++ b/WebKitTools/Scripts/webkitdirs.pm
@@ -1,4 +1,4 @@
-# Copyright (C) 2005, 2006, 2007 Apple Inc. All rights reserved.
+# Copyright (C) 2005, 2006, 2007, 2010 Apple Inc. All rights reserved.
# Copyright (C) 2009 Google Inc. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -50,6 +50,7 @@ BEGIN {
our @EXPORT_OK;
my $architecture;
+my $numberOfCPUs;
my $baseProductDir;
my @baseProductDirOption;
my $configuration;
@@ -229,6 +230,28 @@ sub determineArchitecture
}
}
+sub determineNumberOfCPUs
+{
+ return if defined $numberOfCPUs;
+ if (isLinux()) {
+ # First try the nproc utility, if it exists. If we get no
+ # results fall back to just interpretting /proc directly.
+ $numberOfCPUs = `nproc 2> /dev/null`;
+ if ($numberOfCPUs eq "") {
+ $numberOfCPUs = (grep /processor/, `cat /proc/cpuinfo`);
+ }
+ } elsif (isWindows() || isCygwin()) {
+ if (defined($ENV{NUMBER_OF_PROCESSORS})) {
+ $numberOfCPUs = $ENV{NUMBER_OF_PROCESSORS};
+ } else {
+ # Assumes cygwin
+ $numberOfCPUs = `ls /proc/registry/HKEY_LOCAL_MACHINE/HARDWARE/DESCRIPTION/System/CentralProcessor | wc -w`;
+ }
+ } elsif (isDarwin()) {
+ $numberOfCPUs = `sysctl -n hw.ncpu`;
+ }
+}
+
sub jscPath($)
{
my ($productDir) = @_;
@@ -468,6 +491,12 @@ sub architecture()
return $architecture;
}
+sub numberOfCPUs()
+{
+ determineNumberOfCPUs();
+ return $numberOfCPUs;
+}
+
sub setArchitecture
{
if (my $arch = shift @_) {
@@ -566,7 +595,7 @@ sub builtDylibPathForName
return "$configurationProductDir/libwxwebkit.dylib";
}
if (isGtk()) {
- return "$configurationProductDir/$libraryName/../.libs/libwebkit-1.0.so";
+ return "$configurationProductDir/$libraryName/../.libs/libwebkitgtk-1.0.so";
}
if (isEfl()) {
return "$configurationProductDir/$libraryName/../.libs/libewebkit.so";
@@ -687,8 +716,6 @@ sub determineIsSymbian()
$isSymbian = 1;
return;
}
-
- $isSymbian = defined($ENV{'EPOCROOT'});
}
sub determineIsEfl()
@@ -1260,6 +1287,12 @@ sub buildAutotoolsProject($@)
}
}
+ # Automatically determine the number of CPUs for make only
+ # if make arguments haven't already been specified.
+ if ($makeArgs eq "") {
+ $makeArgs = "-j" . numberOfCPUs();
+ }
+
$prefix = $ENV{"WebKitInstallationPrefix"} if !defined($prefix);
push @buildArgs, "--prefix=" . $prefix if defined($prefix);
@@ -1443,7 +1476,7 @@ sub buildChromiumMakefile($$)
return system qw(rm -rf out);
}
my $config = configuration();
- my $numCpus = (grep /processor/, `cat /proc/cpuinfo`) || 1;
+ my $numCpus = numberOfCPUs();
my @command = ("make", "-fMakefile.chromium", "-j$numCpus", "BUILDTYPE=$config", $target);
print join(" ", @command) . "\n";
return system @command;
@@ -1493,6 +1526,9 @@ sub buildChromium($@)
{
my ($clean, @options) = @_;
+ # We might need to update DEPS or re-run GYP if things have changed.
+ system("perl", "WebKitTools/Scripts/update-webkit-chromium") == 0 or die $!;
+
my $result = 1;
if (isDarwin()) {
# Mac build - builds the root xcode project.
@@ -1610,4 +1646,43 @@ sub debugMiniBrowser
return 1;
}
+sub runWebKitTestRunner
+{
+ if (isAppleMacWebKit()) {
+ my $productDir = productDir();
+ print "Starting WebKitTestRunner with DYLD_FRAMEWORK_PATH set to point to $productDir.\n";
+ $ENV{DYLD_FRAMEWORK_PATH} = $productDir;
+ $ENV{WEBKIT_UNSET_DYLD_FRAMEWORK_PATH} = "YES";
+ my $webKitTestRunnerPath = "$productDir/WebKitTestRunner";
+ if (!isTiger() && architecture()) {
+ return system "arch", "-" . architecture(), $webKitTestRunnerPath, @ARGV;
+ } else {
+ return system $webKitTestRunnerPath, @ARGV;
+ }
+ }
+
+ return 1;
+}
+
+sub debugWebKitTestRunner
+{
+ if (isAppleMacWebKit()) {
+ my $gdbPath = "/usr/bin/gdb";
+ die "Can't find gdb executable. Is gdb installed?\n" unless -x $gdbPath;
+
+ my $productDir = productDir();
+ $ENV{DYLD_FRAMEWORK_PATH} = $productDir;
+ $ENV{WEBKIT_UNSET_DYLD_FRAMEWORK_PATH} = 'YES';
+
+ my $webKitTestRunnerPath = "$productDir/WebKitTestRunner";
+
+ print "Starting WebKitTestRunner under gdb with DYLD_FRAMEWORK_PATH set to point to $productDir.\n";
+ my @architectureFlags = ("-arch", architecture()) if !isTiger();
+ exec $gdbPath, @architectureFlags, $webKitTestRunnerPath or die;
+ return;
+ }
+
+ return 1;
+}
+
1;