build-jsc: allow to build out of tree
authorguijemont@igalia.com <guijemont@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 21 Dec 2017 17:50:30 +0000 (17:50 +0000)
committerguijemont@igalia.com <guijemont@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 21 Dec 2017 17:50:30 +0000 (17:50 +0000)
https://bugs.webkit.org/show_bug.cgi?id=180810

Reviewed by Carlos Alberto Lopez Perez.

* Scripts/build-jsc:

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

Tools/ChangeLog
Tools/Scripts/build-jsc

index 6cf8516..f32e73e 100644 (file)
@@ -1,3 +1,12 @@
+2017-12-21  Guillaume Emont  <guijemont@igalia.com>
+
+        build-jsc: allow to build out of tree
+        https://bugs.webkit.org/show_bug.cgi?id=180810
+
+        Reviewed by Carlos Alberto Lopez Perez.
+
+        * Scripts/build-jsc:
+
 2017-12-20  Jonathan Bedard  <jbedard@apple.com>
 
         webkitpy: simctl cannot handle partial runtime version matches
index c7360b9..396bcac 100755 (executable)
@@ -50,6 +50,7 @@ my $forceCLoop = 0;
 my $cli = 0;
 my $makeArgs = "";
 my @cmakeArgs;
+my $buildDir = "";
 my $copyLibraries = 1;
 my $startTime = time();
 
@@ -82,6 +83,7 @@ Usage: $programName [options] [options to pass to build system]
   --cli                         Build the new jsc command line interface (default: $cli)
   --makeargs=<arguments>        Optional Makefile flags
   --cmakeargs=<arguments>       One or more optional CMake flags (e.g. --cmakeargs="-DFOO=bar -DCMAKE_PREFIX_PATH=/usr/local")
+  --build-dir=<path>            Build out of tree in directory at <path>
 EOF
 
 my %options = (
@@ -93,7 +95,8 @@ my %options = (
     'cli!' => \$cli,
     'copy-libraries!' => \$copyLibraries,
     'makeargs=s' => \$makeArgs,
-    'cmakeargs=s' => \@cmakeArgs
+    'cmakeargs=s' => \@cmakeArgs,
+    'build-dir=s' => \$buildDir
 );
 
 foreach (@features) {
@@ -115,6 +118,11 @@ if (isAppleWinWebKit()) {
     $ftlJIT = 0;
 }
 
+if ($buildDir && !isCMakeBuild()) {
+    print STDERR "--build-dir is currently only supported for cmake builds";
+    exit 1;
+}
+
 if (isJSCOnly() && isWindows()) {
     (system("python Tools/Scripts/update-webkit-wincairo-libs.py") == 0) or die;
     system("python Tools/Scripts/update-vswhere.py");
@@ -135,6 +143,10 @@ if ($forceCLoop) {
 if (isCMakeBuild()) {
     push @cmakeArgs, $forceCLoop ? " -DENABLE_JIT=OFF" : " -DENABLE_JIT=ON";
     push @cmakeArgs, $ftlJIT ? " -DENABLE_FTL_JIT=ON" : " -DENABLE_FTL_JIT=OFF";
+    if ($buildDir) {
+        push @cmakeArgs, " " . sourceDir();
+        setBaseProductDir($buildDir);
+    }
 
     my @featureArgs = cMakeArgsFromFeatures();