- Revision
- 191793
- Author
- [email protected]
- Date
- 2015-10-30 10:05:58 -0700 (Fri, 30 Oct 2015)
Log Message
[Win] build-jsc and run-_javascript_core-tests do not work
https://bugs.webkit.org/show_bug.cgi?id=150700
Reviewed by Mark Lam.
Correct our build system so that it expects Windows to be using CMake,
and to build the correct sub-projects for our JSC helper scripts.
* Scripts/build-jsc: Make sure to build the testapi harness when
building for Windows.
* Scripts/build-webkit:
(1) Use the existing 'cmakeBasedPortName()'
(2) Use File::Spec rather than hard-coding path delimeters.
(3) Refer to Visual Studio 14.0, rather than the unsupported 12.0.
method rather than hard-coding the name based on conditional.
* Scripts/copy-webkitlibraries-to-product-directory: Don't try to grab
LLVM libraries on Apple Windows build.
* Scripts/run-_javascript_core-tests:
(testapiPath): Use File::Spec rather than hard-coding path delimeters.
* Scripts/run-jsc: Ditto.
* Scripts/webkitdirs.pm:
(cmakeBasedPortName): Update to return the right value for the Apple
Windows port and the WinCairo port.
(isCMakeBuild): Expect CMake build for all Windows ports.
Modified Paths
Diff
Modified: trunk/Tools/ChangeLog (191792 => 191793)
--- trunk/Tools/ChangeLog 2015-10-30 17:04:07 UTC (rev 191792)
+++ trunk/Tools/ChangeLog 2015-10-30 17:05:58 UTC (rev 191793)
@@ -1,3 +1,30 @@
+2015-10-30 Brent Fulgham <[email protected]>
+
+ [Win] build-jsc and run-_javascript_core-tests do not work
+ https://bugs.webkit.org/show_bug.cgi?id=150700
+
+ Reviewed by Mark Lam.
+
+ Correct our build system so that it expects Windows to be using CMake,
+ and to build the correct sub-projects for our JSC helper scripts.
+
+ * Scripts/build-jsc: Make sure to build the testapi harness when
+ building for Windows.
+ * Scripts/build-webkit:
+ (1) Use the existing 'cmakeBasedPortName()'
+ (2) Use File::Spec rather than hard-coding path delimeters.
+ (3) Refer to Visual Studio 14.0, rather than the unsupported 12.0.
+ method rather than hard-coding the name based on conditional.
+ * Scripts/copy-webkitlibraries-to-product-directory: Don't try to grab
+ LLVM libraries on Apple Windows build.
+ * Scripts/run-_javascript_core-tests:
+ (testapiPath): Use File::Spec rather than hard-coding path delimeters.
+ * Scripts/run-jsc: Ditto.
+ * Scripts/webkitdirs.pm:
+ (cmakeBasedPortName): Update to return the right value for the Apple
+ Windows port and the WinCairo port.
+ (isCMakeBuild): Expect CMake build for all Windows ports.
+
2015-10-30 Carlos Garcia Campos <[email protected]>
[JHBuild] Do not try to update the dependencies if jhbuild configuration hasn't changed
Modified: trunk/Tools/Scripts/build-jsc (191792 => 191793)
--- trunk/Tools/Scripts/build-jsc 2015-10-30 17:04:07 UTC (rev 191792)
+++ trunk/Tools/Scripts/build-jsc 2015-10-30 17:05:58 UTC (rev 191793)
@@ -82,6 +82,10 @@
exit 1;
}
+if (isAppleWinWebKit()) {
+ $ftlJIT = 0;
+}
+
checkRequiredSystemConfig();
setConfiguration();
chdirWebKit();
@@ -97,11 +101,18 @@
if (isCMakeBuild()) {
$cmakeArgs .= $forceCLoop ? " -DENABLE_JIT=OFF" : " -DENABLE_JIT=ON";
$cmakeArgs .= $ftlJIT ? " -DENABLE_FTL_JIT=ON" : " -DENABLE_FTL_JIT=OFF";
- # By default we build using all of the available CPUs
- $makeArgs .= ($makeArgs ? " " : "") . "-j" . numberOfCPUs() if $makeArgs !~ /-j\s*\d+/;
+ my $buildTarget = "";
+ unless (isAnyWindows()) {
+ # By default we build using all of the available CPUs
+ $makeArgs .= ($makeArgs ? " " : "") . "-j" . numberOfCPUs() if $makeArgs !~ /-j\s*\d+/;
+ $buildTarget = "jsc $makeArgs";
+ } elsif (canUseNinja()) {
+ $buildTarget .= "jsc testapi";
+ }
+
# This call only returns if nothing wrong happened
- buildCMakeProjectOrExit(0, cmakeBasedPortName(), undef, "jsc $makeArgs", (cmakeBasedPortArguments(), $cmakeArgs));
+ buildCMakeProjectOrExit(0, cmakeBasedPortName(), undef, $buildTarget, (cmakeBasedPortArguments(), $cmakeArgs));
writeCongrats();
exit exitStatus(0);
}
Modified: trunk/Tools/Scripts/build-webkit (191792 => 191793)
--- trunk/Tools/Scripts/build-webkit 2015-10-30 17:04:07 UTC (rev 191792)
+++ trunk/Tools/Scripts/build-webkit 2015-10-30 17:05:58 UTC (rev 191793)
@@ -234,7 +234,7 @@
@projects = ("Source/WebInspectorUI");
}
-if (isCMakeBuild()) {
+if (isCMakeBuild() && !isAnyWindows()) {
# By default we build using all of the available CPUs.
$makeArgs .= ($makeArgs ? " " : "") . "-j" . numberOfCPUs() if $makeArgs !~ /-j\s*\d+/;
@@ -252,15 +252,15 @@
my $baseProductDir = baseProductDir();
if (isAppleWinWebKit() || isWinCairo()) {
chdirWebKit();
- if (exitStatus(generateBuildSystemFromCMakeProject(isWinCairo() ? "WinCairo" : "AppleWin"))) {
- die "Run \"C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/vcvarsall.bat\" before build-webkit when using ninja";
+ if (exitStatus(generateBuildSystemFromCMakeProject(cmakeBasedPortName()))) {
+ die "Run \"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/vcvarsall.bat\" before build-webkit when using ninja";
}
chdirWebKit();
if (canUseNinja()) {
- chdir "WebKitBuild/" . configuration();
+ chdir File::Spec->catdir("WebKitBuild", configuration());
$result = system("ninja");
} else {
- $result = buildVisualStudioProject("WebKitBuild/" . configuration() . "/WebKit.sln", $clean);
+ $result = buildVisualStudioProject(File::Spec->catfile("WebKitBuild", configuration(), "WebKit.sln"), $clean);
}
if (exitStatus($result)) {
my $scriptDir = relativeScriptsDir();
Modified: trunk/Tools/Scripts/copy-webkitlibraries-to-product-directory (191792 => 191793)
--- trunk/Tools/Scripts/copy-webkitlibraries-to-product-directory 2015-10-30 17:04:07 UTC (rev 191792)
+++ trunk/Tools/Scripts/copy-webkitlibraries-to-product-directory 2015-10-30 17:05:58 UTC (rev 191793)
@@ -93,7 +93,7 @@
$productDir = $ENV{BUILT_PRODUCTS_DIR} || productDir();
}
-if (!isIOSWebKit() && !$osxVersion) {
+if (!isIOSWebKit() && !$osxVersion &&!isAnyWindows()) {
$osxVersion = `sw_vers -productVersion | cut -d. -f-2`;
chomp($osxVersion);
}
Modified: trunk/Tools/Scripts/run-_javascript_core-tests (191792 => 191793)
--- trunk/Tools/Scripts/run-_javascript_core-tests 2015-10-30 17:04:07 UTC (rev 191792)
+++ trunk/Tools/Scripts/run-_javascript_core-tests 2015-10-30 17:05:58 UTC (rev 191793)
@@ -145,7 +145,7 @@
push(@buildArgs, argumentsForConfiguration());
print "Running: build-jsc " . join(" ", @buildArgs) . "\n";
- my $buildResult = system "perl", "Tools/Scripts/build-jsc", @buildArgs;
+ my $buildResult = system "perl", File::Spec->catfile("Tools", "Scripts", "build-jsc"), @buildArgs;
if ($buildResult) {
print STDERR "Compiling jsc failed!\n";
exit exitStatus($buildResult);
@@ -171,7 +171,7 @@
my ($productDir) = @_;
my $jscName = "testapi";
$jscName .= "_debug" if configuration() eq "Debug_All";
- return "$productDir/$jscName";
+ return File::Spec->catfile($productDir, $jscName);
}
#run api tests
Modified: trunk/Tools/Scripts/run-jsc (191792 => 191793)
--- trunk/Tools/Scripts/run-jsc 2015-10-30 17:04:07 UTC (rev 191792)
+++ trunk/Tools/Scripts/run-jsc 2015-10-30 17:05:58 UTC (rev 191793)
@@ -44,7 +44,7 @@
setConfiguration();
-my $jsc = jscProductDir() . "/jsc @ARGV";
+my $jsc = File::Spec->catfile(jscProductDir(), "jsc ") . "@ARGV";
my $dyld = jscProductDir();
Modified: trunk/Tools/Scripts/webkitdirs.pm (191792 => 191793)
--- trunk/Tools/Scripts/webkitdirs.pm 2015-10-30 17:04:07 UTC (rev 191792)
+++ trunk/Tools/Scripts/webkitdirs.pm 2015-10-30 17:05:58 UTC (rev 191793)
@@ -253,7 +253,7 @@
}
if (!defined($baseProductDir)) { # Port-specific checks failed, use default
- $baseProductDir = "$sourceDir/WebKitBuild";
+ $baseProductDir = File::Spec->catdir($sourceDir, "WebKitBuild");
}
if (isGit() && isGitBranchBuild()) {
@@ -277,7 +277,7 @@
$ENV{"WEBKIT_OUTPUTDIR"} = $dosBuildPath;
my $unixBuildPath = `cygpath --unix \"$baseProductDir\"`;
chomp $unixBuildPath;
- $baseProductDir = $unixBuildPath;
+ $baseProductDir = $dosBuildPath;
}
}
@@ -1994,7 +1994,6 @@
# parsed for shell metacharacters. In particular, $makeArgs may contain such metacharacters.
my $wrapper = join(" ", wrapperPrefixIfNeeded()) . " ";
return system($wrapper . "$command @args");
-
}
sub cleanCMakeGeneratedProject()
@@ -2040,6 +2039,8 @@
return "Efl" if isEfl();
return "GTK" if isGtk();
return "Mac" if isAppleMacWebKit();
+ return "WinCairo" if isWinCairo();
+ return "AppleWin" if isAppleWinWebKit();
return "";
}
@@ -2051,7 +2052,7 @@
sub isCMakeBuild()
{
- if (isEfl() || isGtk()) {
+ if (isEfl() || isGtk() || isAnyWindows()) {
return 1;
}
determineIsCMakeBuild();